Staram się więc to obejść z dość technicznego punktu widzenia.
Gdy dodasz do swojego modułu cieniującego mapę Uderzenie, Normalną lub Przemieszczenie, nie powinny one być korygowane gamma. Ale powinny być rozproszone tekstury. Ale dlaczego?
Gdy zapisujesz plik w 8-bitowej (lub 16-bitowej liczbie całkowitej) w formacie JPEG, PNG lub TIFF, wypalają one gamma 0,4545 (1 / 2,2). Kamera przechwytuje światło z realnego świata (to jest liniowe) a podczas zapisywania zdjęcia w formacie JPEG dodawana jest wartość gamma 1 / 2.2, jako sposób na kompresję informacji do 8-bitów, a następnie podczas oglądania obrazu na monitorze, który dodaje gamma 2,2, dzięki czemu luminancja znów jest liniowa.
Tak więc, gdy używasz rozproszonych tekstur (takich jak zdjęcia), musisz „usunąć” tę gamma 1 / 2.2, aby uczynić ją liniową (zwaną linearyzacją), więc teraz tekstura wygląda ciemniej, ale wartości te są poprawne z matematycznego punktu widzenia, więc renderer będzie dokonać poprawnych obliczeń. Uwaga dodatkowa: oprogramowanie zastosowało współczynnik gamma wyświetlacza 2,2, aby upewnić się, że tekstury wyglądają poprawnie, tylko dla wewnętrznych obliczeń, że są one zlinearyzowane. Ale kiedy tworzę mapę wypukłości w Photoshopie i zapisuję ją jako JPG lub PNG, wówczas gamma 1 / 2.2 jest również wypalana na tym obrazie, więc dlaczego ta mapa wypukłości również nie musi zostać zlinearyzowana?
Jeśli załaduję mapę wypukłości w 3ds Max z gamma wejściową wynoszącą 2,2, tak jak w przypadku tekstury rozproszonej, rozproszenie wygląda dobrze, ale wypukłość wygląda źle, więc muszę ustawić gamma wejściową na 1,0 dla wypukłości, aby aby wyglądało to dobrze, ale jak powiedziałem: dlaczego oba pliki obrazów mają wypaloną gamma 1 / 2.2, prawda?
JPG, PNG lub jakiekolwiek inne 8-bitowe formaty obrazów nie są ze sobą powiązane z gamma 1 / 2.2. Po prostu przechowują wartości od 0-255. Sposób interpretacji tych danych zależy od oprogramowania, które odczytuje i zapisuje te pliki. Ciekawostką jest to, że większość programów do edycji obrazów domyślnie korzysta z przestrzeni kolorów gamma. Wszystkie pędzle, efekty, filtry, a nawet próbnik kolorów działają w przestrzeni gamma. Wystarczy spojrzeć na odcienie szarości na próbniku kolorów w Photoshopie. Nie są zgodne z rozkładem liniowym.
Konsekwencją jest to, że Photoshop nie dokonuje konwersji między gamma a liniową przestrzenią kolorów podczas otwierania lub zapisywania obrazu (domyślnie), tylko podczas jego wyświetlania. Oznacza to, że możesz równie łatwo używać go do tworzenia lub edycji danych liniowych, takich jak mapa wysokości, jak możesz edytować zdjęcia. Mapa wypukłości nie wygląda poprawnie po załadowaniu z korekcją gamma, ponieważ nie została z nią zapisana.
źródło
Wprowadzenie
To zależy od sposobu tworzenia mapy! Zanim przejdziesz dalej, rozważ następujące kwestie i pozwól mu się zatopić:
Teraz mapa wypukłości jest dość trudna do narysowania za pomocą aplikacji do malowania. Ponieważ trudno go zobaczyć, nawet jeśli byłeś poprawnie liniowy. W rezultacie używasz takich rzeczy, jak patrzenie na wartości. Teraz jest haczyk:
Wykonanie mapy nierówności / przemieszczeń
Ok, więc teraz opisałem, że dane można interpretować. Ale dlaczego miałbyś interpretować dane jako liniowe? Ponieważ wtedy możesz lepiej zaprojektować swój profil boczny. Zobacz, co możesz zrobić, to pomyśleć o 100% kryciu pędzla jako docelowej wysokości, którą chcesz wyrzeźbić lub nałożyć na warstwę. Następnie możesz użyć narzędzia krzywe do zaprojektowania kształtu pędzla stempla (ponieważ uważasz, że dane są liniowe).
Zdjęcie 1 : Pieczęć przyssawki.
Teraz, jeśli zrobisz coś takiego, twój obraz będzie liniowy, pomimo tego, co wszyscy ci mówią. Zdecydowałeś się odrzucić reguły dotyczące obrazów, które mówią inaczej. I dlatego obraz jest liniowy , autor wybiera liniowość, aby łatwiej było z nim pracować.
Obraz 2 : Ten sam obraz został przesunięty i zinterpretowany liniowo (uwaga: trochę skalowałem wysokość, aby dopasować do mojego domyślnego rozmiaru bb), działając zgodnie z przeznaczeniem.
Technicznie liniowy jest lepszy.
Mapa syntetyczna nie przynosi korzyści w postaci kompresji niektórych wartości kosztem innych. Liniowy jest z natury lepszy, ponieważ w ten sposób rozprzestrzenianie się guza jest lepsze. Dlatego marnowałbyś zasoby, kodując je w sposób poprawiony gamma.
Po drugie, obraz nie musi określać, w jakiej przestrzeni kolorów jest. Po prostu edytory obrazów przyjmą, że jest zakodowany w sRGB. Nie masz powodu, aby dokonywać takiej samej interpretacji, brak informacji oznacza po prostu: „Nikt nie zadał sobie trudu, aby zapisać to, co myśleli”. Więc może należy wskazać, że powinieneś oznaczyć go liniowo. Ale oto rub ... twój komputer nie ma łatwo dostępnego profilu liniowego.
Co z Photoshopem i rozmyciem?
To jest trudne. Photoshop stara się wykonać sporo pracy, aby upewnić się, że nie musisz nic wiedzieć o tych rzeczach. I tu strzelasz sobie w stopę. Se Photoshop nie jest przeznaczony do tworzenia tekstur, służy do edycji obrazów, a nie losowych danych. Ponieważ rozmycie na obrazie jest inne liniowe i nieliniowe, nie będzie działać w oparciu o nieprawidłowe dane.
Ale możesz zrobić jedną z 2 rzeczy, aby to naprawić:
Wniosek
Powodem, dla którego masz z tym problem, jest
Punkt pierwszy jest szczególnie mylący. Wiem tylko, że WSZYSTKIE moje mapy wypukłości i przemieszczeń są w rzeczywistości liniowe. Ale nie wiem, jakie są twoje mapy. Szanse są liniowe, ponieważ prawie powszechnie rozumie się, że dane są liniowe. Nawet ludzie, którzy nie wiedzą o gamma, z jakiegoś powodu robią to liniowo w przypadku nierówności / przemieszczenia (ponieważ jest to łatwe i takie są twoje obrazy, dopóki ktoś nie powie inaczej).
źródło
Even people who do not know about gamma tend to do it linear for bump/displacement for some reason
Prawdopodobnie dlatego, że te mapy są generowane.W rzeczywistości, jeśli twoja mapa wypukłości lub przemieszczenia została zapisana z tą korekcją gamma 0,45, to jest źle. Mapy te zawierają informacje geometryczne, a nie kolor, i jako takie powinny być po prostu zakodowane liniowo.
W przypadku pokrewnego problemu i poprawki dla Adobe Photoshop zobacz ten slajd: https://docs.google.com/presentation/d/1vS5nAAnXbZ8Pt6-dXxy-xEXDkjfjXTmNnthNGccorl0/edit#slide=id.g14b3e28660_0_8
źródło