Próbuję napisać moduł do cieniowania lodu w Unity, który wygląda dobrze i przynajmniej częściowo realistycznie.
Jeśli poniższy strzał ( znaleziony w Google ) to CG, co zawiera jego moduł cieniujący? (jaskinia na pierwszym planie). Mogę się mylić, ale wygląda na to, że ma nawet inny model oświetlenia niż domyślny rozproszony.
Odpowiedzi:
Lód jest półprzezroczysty, więc uważam, że najważniejszą rzeczą, którą musisz symulować w swoim shaderze, aby uzyskać realistyczne wyniki, byłoby rozproszenie pod powierzchnią lub w skrócie SSS. SSS zasadniczo opisuje, w jaki sposób promienie światła przenikają przez powierzchnię półprzezroczystych obiektów i rozpraszają się pod nią, odbijając się wielokrotnie w nieregularny sposób, zanim ostatecznie opuściły inne miejsce.
Oto zdjęcie, które moim zdaniem dobrze pokazuje efekt:
Od obrazu w swoim pytaniu możemy też zobaczyć, że lód jest bardzo refleksyjny, więc prawdopodobnie będziesz także chcą połączyć go z jakimś mapowania środowiska do refleksji, a także ton w górę Specularity w celu wzmocnienia podkreśla.
Możesz także spróbować innych rzeczy, takich jak dodanie odrobiny załamania , nakładanie pewnego rodzaju tekstury szumu, aby dodać odrobinę zmienności, a nawet pewnego rodzaju mapowanie wypukłości lub mapowanie przesunięcia dla bardzo małych i subtelnych szczegółów.
Zasoby
Kilka innych zasobów, które znalazłem podczas pisania odpowiedzi:
http://http.developer.nvidia.com/GPUGems/gpugems_ch16.html
http://graphics.ucsd.edu/~henrik/papers/fast_bssrdf/
http://www.jamiemccarter.com/Subsurface_Scattering_%26_Reflections_without_Rays.html
http://www.blender.org/development/release-logs/blender-244/subsurface-scattering/
http://littlecolourbakery.com/pages/research.html
źródło
Jeden z moich studentów zrobił to kilka lat temu (używając rendermana), ale dużo tła w pracy magisterskiej http://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc09/Salas/index.html
źródło