Realistyczne renderowanie: jakie procesy ludzkiego oka i mózgu muszę wziąć pod uwagę?

12

Renderowanie fotorealistyczne ma na celu renderowanie obrazu tak, jak uchwyciłby go prawdziwy aparat . Choć jest to już ambitny cel, w niektórych scenariuszach możesz chcieć pójść o krok dalej: renderuj obraz tak, jak uchwyciłby go ludzkie oko , a nawet człowiek . Można to nazwać renderingiem wizjonistycznym lub percepcyjno- realistycznym , ale jeśli ktoś mógłby wymyślić chwytliwszy termin (lub powiedzieć, że już istnieje), doceniłbym to.

Oto kilka przykładów, aby wyjaśnić moją kwestię. Gdy robisz zdjęcie aparatem o niskim poziomie oświetlenia, masz dobry obiektyw lub słyszysz szum. Dla ludzkiego obserwatora zaczyna się widzenie skotopowe i daje efekt Purkinjego (kolory są przesunięte w kierunku niebieskiego). Ten efekt zależy od informacji o luminancji HDR, które są tracone, gdy wyświetlam obraz na wyświetlaczu LDR. Ponadto ludzki mózg może wykorzystywać informacje o głębokości do „filtrowania” postrzeganego obrazu - informacje, które są tracone w ostatecznym renderowaniu (nie stereo).

Zebranie wyczerpującej listy jest prawdopodobnie nieuchwytnym celem. Czy mógłbyś zasugerować niektóre z efektów oka i mózgu, które musiałbym rozważyć?

David Kuri
źródło
Słyszałem raz, że mamy taki sam hałas jak w aparatach, ponieważ szum jest w rzeczywistości fizyczny, a nie tylko elektryczny. (tzn. wcale nie ma tak wielu fotonów). Ale mózg to wymazuje, używając, jak sądzę, czasowego antyaliasingu. (tzn. widzimy z dużą ilością rozmycia w nocy).
v.oddou
Nie do końca rozumiem. Jeśli renderujesz obraz w słabym świetle i symulujesz efekt Purkinjego, nie będzie on wyglądał realistycznie, ponieważ ludzkie oko doda własny efekt, prawda?
Yves Daoust
1
@YvesDaoust Ponieważ obraz jest wyświetlany na monitorze LDR w nieznanych warunkach oświetleniowych, prawdopodobnie nie. Mówiąc najprościej, obraz widziany na ekranie będzie jaśniejszy, więc łatwiej będzie go dostrzec. Gdybyśmy korzystali z monitora HDR i moglibyśmy dokładnie odtworzyć wartości luminancji sceny nocnej (i mieć ciemne pomieszczenie), masz rację.
David Kuri
1
Nie ma nic złego w tym, do czego dążysz, ale obawiam się, że wydaje mi się to zbyt ogólne, ponieważ istnieje tak wiele efektów, które musimy wziąć pod uwagę. Nie mogłem tego napisać w formacie SE, ponieważ rzeczywiście byłoby to błędne. Jeśli jednak dostosujesz swój zakres nieco w stylu „Czy możesz zasugerować niektóre z efektów, które powinienem wziąć pod uwagę”, łatwiej byłoby zacząć.
joojaa
@joojaa Zmieniłem pytania zgodnie z sugestią, dzięki.
David Kuri

Odpowiedzi:

5

możesz pójść o krok dalej: renderuj obraz tak, jak uchwyciłby go ludzkie oko, a nawet człowiek.

Istnieją dwa sposoby interpretacji tego. Zrobię oba.


Interpretacja 1: Renderuj obraz, który wygląda percepcyjnie realistycznie.

Pod koniec dnia twój obraz nadal musi gdzieś zostać wyświetlony . Oto klucz: chcesz wyrenderować swój obraz w taki sposób, że gdy * wyświetlisz * ten obraz na konkretnym urządzeniu wyświetlającym, będzie on wytwarzał takie samo wrażenie, jak oryginalny obraz radiometryczny.

Oto jak rozpakować ten pomysł.

W prawdziwym świecie widma radiometryczne (tj. Rzeczywiste rozkłady światła) dostają się do oka i stymulują około 1 cztery receptory światła. Pobudzenie receptorów wywołuje wrażenie koloru, które kojarzymy z obrazami.

Podczas renderowania nie mamy arbitralnej kontroli nad produkowanymi przez nas widmami. Na szczęście, ponieważ (zwykle) mamy tylko trzy stożki, z których każdy wytwarza tylko wartość skalarną, widzenie kolorów można odtworzyć przy użyciu dokładnie trzech kolorów podstawowych. Najważniejsze jest to, że możesz wywołać dowolne wrażenie koloru, używając liniowej kombinacji tylko trzech długości fali (do kilku kolorów, które mogą być ujemne, w takim przypadku po prostu używasz różnych kolorów podstawowych).

Nie masz wyboru podstawowych. Prawie wszystkie kolorowe urządzenia wyświetlające używają standardu sRGB, który zapewnia trzy podstawowe (które zwykle nie mają jednej długości fali). W porządku, bo okazuje się, że wszystko jest abstrakcyjne i nie musisz się tym przejmować.

Aby wyjaśnić bałagan, który jest percepcyjnie dokładnym renderowaniem, oto algorytm:

  1. Renderuj obraz przy użyciu poprawnych obliczeń radiometrycznych. Śledzisz poszczególne długości fali światła lub wiązki długości fal. Cokolwiek. Na koniec masz obraz, który reprezentuje widmo odebrane w każdym punkcie.
  2. Przy każdym pikselu bierzesz renderowane widmo i konwertujesz je do przestrzeni kolorów CIE XYZ . Działa to jako integracja iloczynu widma ze standardowymi funkcjami obserwatora (patrz definicja CIE XYZ) .
  3. To daje trzy wartości skalarne, którymi są kolory CIE XYZ.
  4. Użyj transformacji macierzowej, aby przekonwertować to na liniowy RGB, a następnie użyj transformacji liniowej / mocy, aby przekonwertować liniowy RGB na sRGB .
  5. Konwertuj z zmiennoprzecinkowego na uint8 i zapisuj, blokując wartości poza zakresem (monitor nie może ich reprezentować).
  6. Wyślij piksele uint8 do bufora ramki.
  7. Wyświetlacz przyjmuje kolory sRGB, dokonuje odwrotnej transformacji, aby uzyskać trzy podstawowe wartości o szczególnej intensywności. Każdy skaluje wyjście dowolnego elementu obrazu, za który jest odpowiedzialny. Elementy obrazu świecą, tworząc spektrum. To spektrum będzie (mam nadzieję) metamerem dla pierwotnego renderowanego spektrum.
  8. Widmo postrzegasz tak, jak widmo renderowane.

Interpretacja 2: Próba symulacji danych końcowych, które ludzkie oko może otrzymać do celów wizualizacji lub kompensacji za wyświetlacze LDR.

Ten, jak sądzę, ma mniej użyteczne znaczenie. Zasadniczo próbujesz stworzyć obraz, który poprawia sposób postrzegania go przez mózg dla zabawy / zysku.

Na przykład w tym roku na SIGGRAPH był artykuł, w którym symulowano powidoki i redukcję kolorów, aby obrazy wyglądały inaczej percepcyjnie. Oczywiście jedynym powodem, dla którego to robią, jest to, że wszystkie wyświetlacze, z którymi pracujemy, to zakres niskiej dynamiki (LDR). Chodzi o to, aby zasymulować efekty, które ktoś może zobaczyć, gdy zostanie wystawiony na rzeczywisty obraz o wysokiej dynamice (HDR) jako rzeczywiste dane obrazu.

W praktyce okazuje się, że nie działa to zbyt dobrze. Na przykład powidoki widzimy powidoki z powodu bardzo jasnego bodźca wyczerpującego kolorowe komórki. Jeśli zamiast tego spróbujesz stymulować efekt za pomocą fałszywego powidoku, może to wyglądać podobnie - ale ponieważ jest to zupełnie inny mechanizm, nie jest zbyt przekonujący.

Tego rodzaju grafika jest w literaturze niedoświadczona, jeśli chcesz spróbować. Wspomniany artykuł jest przykładem mniej więcej najnowocześniejszego podejścia, jakie mamy. Myślę jednak, że obecny konsensus jest taki, że naprawdę nie warto próbować symulować (przynajmniej w tym momencie), ponieważ w najlepszym razie zbliżasz się do rzeczywistych efektów widzenia, zastępując różne, i że to nie jest tak naprawdę praca.


1 pręt + 3 * stożki, zwykły przypadek. Przybliżone, ponieważ ludzie mogą mieć zaledwie zerowe funkcjonalne receptory światła aż do domniemanych maksimum siedmiu (przy czym najwyższa kiedykolwiek zaobserwowana to pięć).

imallett
źródło
Dzięki za odpowiedź. Uważam to jednak za niekompletne. Twoje stwierdzenie z interpretacji 1 „Widzisz widmo tak, jak postrzegałeś renderowane widmo” jest prawdopodobnie błędne. Podczas postrzegania prawdziwego spektrum efekty włączają się, że nie działają, gdy używasz opisanej konwersji (np. Będziesz musiał użyć standardowego obserwatora skotopowego w warunkach słabego oświetlenia, jak wspomniano w Jameson, Hurvich: Visual Psychophysics). Opisałeś pomysł renderowania spektralnego. Interpretacja 2 jest tym, o czym chcę dowiedzieć się więcej. Papier będzie dobry na początek, dzięki za to.
David Kuri
4

Jeśli chodzi o percepcję, istnieje również kwestia tego, na co jesteśmy prawie ślepi (pod względem właściwości lub artefaktów), i tego, co narzuciliśmy.

Na przykład, jeśli chodzi o dźwięk, masz kontrast lub częstotliwości, które czynią Cię mniej świadomym lub nieświadomym innych treści (stary papier SIGGRAPH ilustrował, w jaki sposób tekstura może maskować rozdzielczość siatki), a także wszystkie aspekty czasowe (szukaj „zmień ślepotę”). Podobnie szczegóły powierzchni, normalne, BRDF mogą, ale nie muszą być widoczne w zależności od wartości i wartości względnych.

Ponieważ nasz system percepcyjny ma tendencję do dostosowywania się lokalnie i globalnie, dla niskich wartości częstotliwości ważne jest, aby mieć maksymalne i minimalne wartości we właściwych miejscach, ale ich dokładna wartość nie zostanie zauważona.

Czasami może istnieć poznanie, tak jak pozwalasz na wiele błędów w chmurach i drzewach, ale na pewno mniej na ludzkich twarzach. (Czasami możesz obniżyć to do statystyk parametru dla danej kategorii).

Dlatego wolę używać słowa „wiarygodny” niż „fotorealistyczny”.

Przeciwnie, jesteśmy bardzo wrażliwi na artefakty, takie jak fałszywe piksele lub migające piksele, ultra wrażliwi na korelacje, takie jak fronty błędu tylko 1 poziomu szarości, niepożądane wzory, takie jak mora, aliasing lub zły losowy itp.

Nawiasem mówiąc, jest to jeden z powodów, dla których rozwiązania optymalizujące sumowanie wszystkiego w prostej energii mogą być bardzo złym pomysłem spostrzegawczo mówiąc, ponieważ we wszystkich paradoksalnych sytuacjach może to być podatne na koncentrację błędów w liniach lub punktach. Z tego samego powodu ludzie na początku globalnego oświetlenia byli naprawdę rozczarowani faktem, że dokładne rozwiązania energetyczne były mniej akceptowane niż przybliżone cienie antyaliasingowe (a następnie pochodziły z drzewa czworokątnego opartego na siatkowych metodach adaptacyjnych).

(Całkiem ogólny) przegląd percepcji grafiki można znaleźć w tym kursie SigAsia'11 „Percepcja grafiki, wizualizacji, środowisk wirtualnych i animacji”

Fabrice NEYRET
źródło