Co to znaczy „piec światła”?

36

Co to znaczy upiec lightmapę? Słyszałem o tym w Unity3d i ponownie znalazłem wtyczkę LightUp do szkicowania, która wypala lightmap.

Z tego, co obserwuję, wypalona mapa świetlna nadaje obiektowi 3D znacznie bardziej realistyczny charakter. Czy celem jest wypalenie światła na obiekcie, aby uzyskać animację cg, którą widzisz na wstępnie renderowanych animacjach?

Kim Jong Woo
źródło
Również za każdym razem, gdy coś upiec, czy to fizykę, oświetlenie, czy cokolwiek innego. Oznacza to, że skonfigurowałeś coś, co będzie długo renderować / przetwarzać w czasie rzeczywistym, lub chcesz, aby grało w ten sam sposób za każdym razem, więc robisz to tylko raz i zapisujesz wyniki do późniejszego użycia, a ponieważ wszystkie obliczenia są wykonywane, a wyświetlanie tego, co zostało upieczone, jest szybkie i zawsze takie samo we wszystkich rozgrywkach.
AttackingHobo
AttackingHobo, to świetny sposób, aby to ująć. Teraz to rozumiem. Ale ciekawe, jak upieczono by fizykę? Czy Luxrender produkuje fotorealistyczne rendery, ponieważ potrafią obliczyć fizykę światła?
Kim Jong Woo,
1
Fizykę można upiec w przypadku złożonych scen, symulując i przechowując wszystkie pozycje obiektów oraz obroty itp. Dla każdego pomiaru czasu. Następnie zamiast ponownie przeliczać wszystkie wartości na żywo, są one po prostu odtwarzane z zapisanych wartości.
AttackingHobo

Odpowiedzi:

53

Gdy masz w grze statyczne (nieruchome) światło, masz dwie opcje renderowania tego światła. Możesz to zrobić tak samo jak dynamiczne światło; to znaczy, przeprowadź go przez potok cieniowania, który obliczy jego wpływ na wszystko wokół niego, każdą ramkę, w drodze do ekranu. Jest to oczywiście dość drogie. Lub redaktor może upiec światło na scenie.

To, co zawsze myślałem o pieczeniu, było być może prostszą wersją: w zasadzie edytor po prostu bierze tekstury wszystkiego wokół światła, oblicza wpływ światła na te tekstury (rozjaśnia je, może je pokoloruje, cienie itp.) i zapisuje je jako tekstury zastępcze do użycia. Więc wszystkie tekstury wokół „światła” wyglądają, jakby miały na sobie światło, ale w czasie wykonywania nie ma światła z punktu widzenia obliczeń; zasadniczo jest to złudzenie optyczne.

Jednak jedność wydaje się generować lightmapę . Jest to podobne do powyższego pojęcia, ale wypalone oświetlenie jest przechowywane osobno zamiast modyfikowania podstawowej tekstury, i zakładam, że moduł cieniujący łączy te dwa elementy w czasie wykonywania. Miałoby to tę zaletę, że zachowałoby przewagę tekstur kafelkowych (tj. Niskie zużycie pamięci), ponieważ nie miałyby światła wypalonego bezpośrednio w nich, dlatego mogłyby pozostać kafelkami, a moduł cieniujący byłby bardzo lekki, szczególnie w porównaniu do obróbki światło jako dynamiczne.

Światło oczywiście musi być statyczne, aby to działało; oznacza to, że nie można go przesunąć podczas gry, ponieważ światło zostało wypalone w teksturach. Ponadto na żadnych dynamicznych obiektach w pokoju (takich jak postać gracza) nie będzie świeciło światło, dlatego musi istnieć jakiś wyjątek, w którym światło jest renderowane dla obiektów dynamicznych, ale nie jest (ponownie) renderowane na statyczna sceneria.

Ricket
źródło
12
Przez większość czasu, ponieważ oświetlenie jest miękkie, mapę świetlną można zapisać w niższej rozdzielczości niż reszta tekstur, nadal wygląda dobrze, ale renderuje się szybciej i zajmuje mniej pamięci.
AttackingHobo
+1, to jest naprawdę miła i obszerna odpowiedź, dziękuję. :)
Xeo