Renderowanie w jednostkach radiometrycznych czy fotometrycznych?


10

W tradycyjnym renderowaniu typowe jest wykonywanie wszystkich obliczeń za pomocą jednostek radiometrycznych, zarówno jako pełne spektralne renderowanie, jak i komponentowe (XYZ, RGB itp.).

Ponieważ jednak współczesne renderowanie dodaje więcej modeli fizycznych, artyści mogą wygodnie określać wartości w bardziej znanych jednostkach fotometrycznych, na przykład natężenie światła w lumenach.

wprowadź opis zdjęcia tutaj

Aby utrzymać rurociąg w jednym typie jednostki, możesz wykonać jedną z następujących czynności:

  1. Konwertuj jednostki fotometryczne na jednostki radiometryczne przy użyciu skuteczności świetlnej
  2. Zachowaj cały strumień renderowania w jednostkach fotometrycznych
    • Sébastian Lagarde bardzo dobrze prezentuje ten pomysł w notatkach z prezentacji swojej prezentacji Siggraph 2014 Przenoszenie odmrożenia do PBR

Moje pytania to:

  1. Czy są jakieś wady renderowania wyłącznie w jednostkach fotometrycznych?
    • O ile mi wiadomo, jednostki fotometryczne to tylko jednostki radiometryczne nastawione na ludzkie oko. Biorąc pod uwagę, że ostateczny obraz zobaczymy okiem, nie uważam tego za problem.
  2. Frostbite to silnik oparty na komponentach RGB. Czy renderer spektralny miałby jakieś dodatkowe wady, ponieważ renderowałby wyłącznie w jednostkach fotometrycznych?

Odpowiedzi:


9

Można używać jednostek fotometrycznych jako ogólnej skali do ustawiania jasności światła. Jest jednak subtelność techniczna, o której powinieneś wiedzieć. Zacytuję z postu na blogu, który napisałem na ten temat w zeszłym roku :

W przypadku obrazów RGB ważne jest, aby pamiętać, że nasze urządzenia wyświetlające zachowują się bardziej radiometrycznie niż fotometrycznie. Wartość czerwonego piksela 255 i wartość zielonego piksela 255, oba powodują, że piksel na ekranie generuje w przybliżeniu równe ilości strumienia promieniowania (watów) - nie równe ilości strumienia świetlnego. Z tego samego powodu aparaty cyfrowe rejestrują wartości pikseli odpowiadające strumieniowi promieniowania, a nie strumieniowi światła.

Dlatego musimy używać współczynników luma podczas konwersji obrazów do skali szarości lub obliczania jasności piksela, aby uzyskać percepcyjnie dokładny wynik; oznacza to również, że renderowanie obrazów RGB przebiega bardziej naturalnie w jednostkach radiometrycznych niż w jednostkach fotometrycznych.

Innymi słowy, zależność długości fali jednostek fotometrycznych jest inna niż można się spodziewać. W zwykłych przestrzeniach kolorów RGB biel ma (1, 1, 1) i ma z grubsza płaskie spektrum radiometryczne; ale w rzekomym „fotometrycznym RGB” (1, 1, 1) nie byłby biały; byłby to kolor purpurowawy, z mniejszą energią w zakresie zielonym, a większym w zakresie czerwonym i niebieskim. Podobny problem dotyczyłby rendererów widmowych próbujących zmierzyć wszystkie swoje przedziały w jednostkach fotometrycznych zależnych od długości fali, ale nawet gorzej, ponieważ promienie potrzebne do wygenerowania danej luminancji rozchodzą się w kierunku obu końców widma widzialnego, gdzie funkcja wydajności świetlnej człowieka idzie do zero.

Tak więc, jeśli chcesz użyć jednostek fotometrycznych, IMO lepiej „trochę oszukać” i nie używać prawdziwych jednostek fotometrycznych zależnych od długości fali, ale po prostu użyj niektórych stałych długości fali (takich jak zielony 555 nm, który jest szczytem ludzkiej światłości funkcja wydajności), a może średnia dla widma, jako jednostka odniesienia i zastosuj tę pojedynczą jednostkę do pomiaru wszystkich długości fali. To sprawi, że będziesz mieć mniej problemów podczas importowania kolorów i widm RGB z innych źródeł oraz podczas generowania ich jako danych wyjściowych.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.