Bake: displacement 3

Czyli jak zapamiętać geometrię w teksturze, a potem odtworzyć ją na meshu.

Pokazuję jak można wypalić w teksturze większe deformacje geometryczne, i jak potem użyć takiej tekstury, aby deformacje odtworzyć. Można dzięki tej technice zredukować liczbę wierzchołków potrzebną do precyzyjnego odtworzenia geometrii obiektu. W odróżnieniu od normalmap, ta technika rzeczywiście przesuwa wierzchołki mesha powodując jego deformację.

3 thoughts on “Bake: displacement

  1. Odpowiedz noizex Maj 7,2013 15:00

    Używa się tego np. w grach gdzie displacementowi towarzyszy tesselation. Całość odbywa się w shaderach które są do tego przystosowane – dzięki takiej operacji podstawowy mesh może mieć bardzo mało vertexów, co jest dużym zyskiem pod względem ilości danych które musisz wysłać / przechowywać na GPU chociażby. Na nowszych kartach które supportują tesselation shadery generujesz w locie gęstszą siatkę i nakładasz na nią displacement z tekstury co daje w efekcie bardzo skomplikowany model z którym GPU radzi sobie doskonale, natomiast bazą do niego jest low res model.

    Tu masz to wyjaśnione z obrazkiem: http://www.nvidia.com/object/tessellation.html

  2. Odpowiedz Mentoris Wrz 13,2012 09:19

    Przyznam się, ze nie bardzo rozumiem sensu tej operacji. Przecież, żeby na drugim planie odwzorować geometrię, to też jest potrzebna większa rozdzielczość plana. Gdzie jest tutaj zysk w wierzchołkach?

    • Odpowiedz piotao Wrz 13,2012 12:07

      Faktycznie, podczas wypiekania potrzebujesz mesha o wysokiej rozdzielczości. Natomiast później robisz mesha o małej rozdzielczości, nakładasz na niego teksturę wypieczoną poprzednio i udajesz, że on ma wysoką rozdzielczość, a tak naprawdę to ma niską. Na tym polega zysk całej operacji.

A Ty co o tym myślisz?