Как сделать реалистичный лед?

45

Я пытаюсь написать ледяной шейдер в Unity, который выглядит хорошо и хотя бы полуреалистично.

Если бы следующий снимок ( найденный в Google ) был CG, что бы включил его шейдер? (передний план пещеры). Я могу ошибаться, но похоже, что у него даже другая модель освещения, чем у рассеянного по умолчанию.

введите описание изображения здесь

Даниэль Пендергаст
источник
Вот учебник для DirectX 11 с использованием HLSL и C ++. Может быть, вы можете подобрать принципы. Кроме того, где вы увидели, что изображение было CG? Сообщается, что это реально.
MichaelHouse
Я не сказал, что это было. Я сказал "если" это было. и спасибо! Я проверю это
Даниэль Пендергаст
9
Это явление называется подповерхностным рассеянием. Это вызвано тем, что свет проникает через поверхность материала и рассеивается через среду самого материала. Вот почему, например, человеческие уши выглядят красными при подсветке. Вот сообщение в блоге, объясняющее чью-то попытку воссоздать ледяной эффект.
Ах, извините, я пропустил "если".
MichaelHouse
@ Byte56, нет проблем
Даниэль Пендергаст

Ответы:

53

Лед является полупрозрачным, поэтому я считаю, что самая важная вещь, которую вы должны смоделировать в своем шейдере, чтобы получить реалистичные результаты, это подповерхностное рассеяние или SSS для краткости. SSS в основном описывает, как лучи света проникают сквозь поверхность полупрозрачных объектов и рассеиваются под ней, неоднократно отражаясь нерегулярно, прежде чем, наконец, пройти через другое место.

Вот картинка, которая, на мой взгляд, хорошо демонстрирует эффект:

введите описание изображения здесь

Из рисунка в вашем вопросе мы также видим, что лед довольно отражающий, так что вы, вероятно, также захотите объединить его с неким отображением среды для отражений, а также тонизировать зеркальность , чтобы усилить блики.

Вы также можете попробовать другие вещи, такие как добавление небольшого преломления , наложение некоторой текстуры шума, чтобы добавить немного вариаций, или даже какое-то отображение рельефа или смещения для очень маленьких и тонких деталей.

Ресурсы

Некоторые другие ресурсы, которые я нашел при написании ответа:

Дэвид Гувея
источник
Возможно, вы также захотите заглянуть в Ambient Occlusion ( en.wikipedia.org/wiki/Ambient_occlusion ), чтобы смоделировать потемнение в скалах, потому что обычно довольно трудно сделать правильный выбор, используя только тени.
Koarl