Ich versuche, in Unity einen Ice-Shader zu schreiben, der gut und zumindest halbrealistisch aussieht.
Wenn die folgende Aufnahme ( bei Google gefunden ) CG wäre, welche würde der Shader enthalten? (die vordergrundhöhle). Ich könnte mich irren, aber es sieht so aus, als hätte es sogar ein anderes Beleuchtungsmodell als das Standard-Diffusmodell.
Antworten:
Eis ist lichtdurchlässig, daher glaube ich, dass das Wichtigste, was Sie in Ihrem Shader simulieren müssen, um realistische Ergebnisse zu erzielen, die Streuung unter der Oberfläche oder kurz SSS ist. SSS beschreibt im Wesentlichen, wie Lichtstrahlen die Oberfläche von durchscheinenden Objekten durchdringen und darunter streuen und dabei unregelmäßig mehrfach reflektiert werden, bevor sie schließlich durch einen anderen Ort austreten.
Hier ist ein Bild, von dem ich denke, dass es den Effekt gut demonstriert:
Aus dem Bild in Ihrer Frage können wir auch ersehen, dass Eis ziemlich reflektierend ist. Daher sollten Sie es wahrscheinlich auch mit einer Art Umgebungsabbildung für Reflexionen kombinieren und die Spiegelung verbessern , um die Glanzlichter zu verstärken.
Sie können auch andere Dinge ausprobieren, z. B. ein bisschen Brechung hinzufügen, eine Art Rauschtextur überlagern , um ein bisschen Variation hinzuzufügen, oder sogar eine Art Bump-Mapping oder Verschiebungs-Mapping für sehr kleine und subtile Details.
Ressourcen
Einige andere Ressourcen, die ich beim Schreiben der Antwort gefunden habe:
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
quelle
Einer meiner Studenten hat dies vor ein paar Jahren gemacht (mit Renderman), aber viele Hintergrundinformationen in der Arbeit http://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc09/Salas/index.html
quelle