Я пытаюсь написать ледяной шейдер в Unity, который выглядит хорошо и хотя бы полуреалистично.
Если бы следующий снимок ( найденный в Google ) был CG, что бы включил его шейдер? (передний план пещеры). Я могу ошибаться, но похоже, что у него даже другая модель освещения, чем у рассеянного по умолчанию.
Ответы:
Лед является полупрозрачным, поэтому я считаю, что самая важная вещь, которую вы должны смоделировать в своем шейдере, чтобы получить реалистичные результаты, это подповерхностное рассеяние или SSS для краткости. SSS в основном описывает, как лучи света проникают сквозь поверхность полупрозрачных объектов и рассеиваются под ней, неоднократно отражаясь нерегулярно, прежде чем, наконец, пройти через другое место.
Вот картинка, которая, на мой взгляд, хорошо демонстрирует эффект:
Из рисунка в вашем вопросе мы также видим, что лед довольно отражающий, так что вы, вероятно, также захотите объединить его с неким отображением среды для отражений, а также тонизировать зеркальность , чтобы усилить блики.
Вы также можете попробовать другие вещи, такие как добавление небольшого преломления , наложение некоторой текстуры шума, чтобы добавить немного вариаций, или даже какое-то отображение рельефа или смещения для очень маленьких и тонких деталей.
Ресурсы
Некоторые другие ресурсы, которые я нашел при написании ответа:
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
источник
Один из моих учеников сделал это несколько лет назад (с использованием renderman), но много тезисов в диссертации http://nccastaff.bournemouth.ac.uk/jmacey/MastersProjects/MSc09/Salas/index.html
источник