Mamy już kompletny silnik światła. Zostało pytanie równie praktyczne: jak w ogóle zorganizować milion obiektów, kamerę i światła w jedną strukturę, którą ten silnik przetestuje.
Koło samochodu nie ma sensownej „pozycji w świecie” zapisanej na trwałe — ma pozycję względem nadwozia, nadwozie względem węzła całego samochodu, a ten dopiero względem świata. Gdy samochód rusza, każde koło porusza się automatycznie, bo dziedziczy transformację rodzica, a ten swojego. To jest dosłownie ten sam mechanizm co parent/child w outlinerze Mayi albo Blendera.
Las z dziesięciu tysięcy drzew nie potrzebuje dziesięciu tysięcy kopii geometrii i BVH w pamięci. Instancing przechowuje jedną „master” siatkę z jednym BVH, a każde wystąpienie w scenie to tylko odniesienie do niej plus własna macierz transformacji (pozycja, rotacja, skala).
↓ Dodatek I — dwa różne budżety kosztu geometriiŻeby to zadziałało bez kopiowania geometrii, promień testowany przeciw instancji jest transformowany odwrotną macierzą instancji do jej lokalnej przestrzeni — i tam trafia w dokładnie tę samą siatkę i BVH, co każda inna instancja.
Instancje w Blenderze, Houdinim (copy-to-points) czy Unrealu (Instanced Static Mesh) to dosłownie ten mechanizm — dlatego rozsypanie dziesięciu tysięcy kopii tego samego kamienia kosztuje ułamek pamięci dziesięciu tysięcy unikalnych siatek.
W pipeline'ach opartych o USD — Solaris i Karma w Houdinim, Arnold czy RenderMan wpięte przez Hydrę — ten mechanizm ma dwie osobne nazwy, które warto rozróżniać. Native instancing to dokładnie powyższe: wiele prymitywów wskazujących na tę samą geometrię. PointInstancer idzie dalej i trzyma tysiące transformacji jako tablice punktów, bez tworzenia osobnego węzła na każdą kopię — dzięki temu las z miliona drzew nie rozdyma samego pliku sceny, nie tylko pamięci renderera.
Import z OBJ, FBX, glTF czy USD sprowadza się do wypełnienia dokładnie tych struktur: pozycje wierzchołków (Rozdział 2), normalne (Rozdział 4), UV (Rozdział 9) i hierarchia transformacji z tego rozdziału. Żaden z tych formatów nie wymaga nowej matematyki — tylko innego układu bajtów na dysku.
Scenę mamy już zorganizowaną. W następnym rozdziale wracamy do samego światła — ale tym razem przechodzącego przez materię: mgła, dym i rozpraszanie podpowierzchniowe, czyli wolumetria.