Jak ułatwić artystom tworzenie treści dla renderera HDR ? Jakie rodzaje narzędzi należy zapewnić i jakie przepływy pracy należy zmienić, przechodząc z LDR na HDR?
Pamiętaj, że nie pytam o techniczne aspekty implementacji renderera HDR, ale o najlepsze praktyki tworzenia materiałów i oświetlenia w HDR. Trochę googlowałem, ale wydaje się, że w Internecie nie ma zbyt wiele na ten temat. Czy ktoś może wskazać mi jakieś dobre zasoby na ten temat lub podzielić się swoimi doświadczeniami?
Niektóre szczególne punkty:
- Oświetlenie - w jaki sposób artyści oświetlenia mogą wybrać jasne kolory HDR? Czy mają standardowy próbnik kolorów LDR, a następnie mnożnik? Czy mnożnik w przestrzeni gamma czy liniowej? Może zamiast mnożnika jest to logarytmiczna luminancja? Lub fizyczny poziom jasności, taki jak liczba lumenów? Skąd będą wiedzieć, jaki mnożnik / luminancja / jasność jest „poprawna” dla danego światła?
- Materiały - w jaki sposób artyści tekstur mogą tworzyć kolorowe mapy, takie jak neony, ekrany telewizyjne, skyboksy itp.? Czy możesz namalować jeden jako zwykły obraz LDR (8 bitów na kanał) i zastosować mnożnik (lub log-luminancję itp.)? Czy istnieją przypadki, w których konieczne jest rzeczywiste malowanie obrazów HDR? Jeśli tak, jak sobie z tym poradzisz w Photoshopie (lub innym oprogramowaniu)?
Odpowiedzi:
Myślę, że wciąż jesteśmy w jakiś sposób w „czasach jaskiniowców”, które Patrick Hugues opisuje w swoich komentarzach.
Nie chcesz szczegółów na temat implementacji renderera, ale i tak pozwolę sobie wyjaśnić: zrozumiesz dlaczego. HDR w silnikach gier polega głównie na „szerszych” wartościach renderowania (bufor ramki). Zazwyczaj zmiennoprzecinkowe 16 bitów, które może przekroczyć 1,0, zamiast 8 bitowych liczb całkowitych, które dają nam tylko 256 wartości w zakresie [0,1]. To wyjście jest następnie konwertowane na LDR za pomocą mapera tonów , dzięki czemu ekran może go wyświetlić. Dla mnie prawdziwym „twórcą HDR” byłoby ulepszenie tego mapera tonów, więc będziesz chciał dać jak najwięcej kontroli swoim artystom. Będzie zaangażowany jakiś moduł cieniujący, więc albo masz artystów technicznych, którzy mogą sobie z tym poradzić, albo na stałe go zakodujesz i ujawniasz najbardziej przydatne parametry.
Nie jestem pewien, czy koniecznie potrzebujesz 16-bitowych lampek, z wyjątkiem może stworzenia lampek emitujących „bielsze niż białe”. Ale jeśli chcesz, w dowolnym edytorze używanym do oświetlenia, potrzebujesz pewnego rodzaju próbnika kolorów lub kilku suwaków, które dają te wartości zmiennoprzecinkowe. Och, jeśli chcesz GUI, prawdopodobnie zaczniesz od wartości zmiennoprzecinkowych zwykłego tekstu w pliku.
Tekstury HDR (16 bitów na kanał) istnieją, ale nie są powszechnie używane, być może dlatego, że zajęłoby to o wiele więcej pamięci niż zwykłe tekstury LDR (8 bitów na kanał). Podejrzewam również, że istnieją większe ograniczenia sprzętowe w konsolach obecnej generacji, więc większość silników dużych gier nie przesadza z tym. Na przykład wydaje się, że nieco trudniej jest zaimportować teksturę HDR do użycia z UDK . Niemniej jednak, aby stworzyć 16-bitowe tekstury, potrzebujesz oprogramowania, które je obsługuje, takiego jak Photoshop . Są prawdopodobnie inne, ale nie wydaje się to tak częste, np
jegobyła to od dawna prośba o GIMPto jest nadal w toku. Będziesz także musiał użyć 16-bitowego formatu obrazu, takiego jak PNG.źródło
jak powiedział Lorancou, tak naprawdę nie tworzysz treści HDR, ponieważ generalnie są one dynamiczne do ilości światła. Ale prawdopodobnie mógłbyś to naśladować w lightmapie, która wymagałaby po prostu modyfikacji dowolnych shaderów wstępnego obliczania, aby to uwzględnić.
źródło
Cóż, trzy lata później i właśnie napisałem wpis na blogu o tworzeniu treści HDR , więc teraz mogę odpowiedzieć na własne pytanie. :)
Podsumowując
źródło