Jak renderować realistyczny lód?

45

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.

wprowadź opis zdjęcia tutaj

Daniel Pendergast
źródło
Oto samouczek dotyczący DirectX 11 przy użyciu HLSL i C ++. Może uda ci się zebrać zasady. Ponadto, gdzie widziałeś, że obraz był CG? Jest zgłaszany jako prawdziwy.
MichaelHouse
Nie powiedziałem, że tak. Powiedziałem „jeśli” to było. i dzięki! Sprawdzę to
Daniel Pendergast
9
Zjawisko to nazywane jest rozpraszaniem podpowierzchniowym. Jest to spowodowane tym, że światło przenika przez powierzchnię materiału i jest rozpraszane przez środek samego materiału. Dlatego na przykład ludzkie uszy wyglądają na czerwone, gdy są podświetlone. Oto post na blogu wyjaśniający czyjąś próbę odtworzenia z nim efektu lodu.
Ach, przepraszam, że przegapiłem „jeśli”.
MichaelHouse
@ Byte56, Nie ma problemu
Daniel Pendergast

Odpowiedzi:

53

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:

wprowadź opis zdjęcia tutaj

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:

David Gouveia
źródło
Możesz także zajrzeć do Ambient Occlusion ( en.wikipedia.org/wiki/Ambient_occlusion ), aby zasymulować zaciemnienie w skałach, ponieważ zwykle trudno jest uzyskać właściwy efekt, używając tylko cieni.
Koarl