Описание стандартного PBR шейдера в Unity 5

Всем добрый день. Сегодня я перевел для своих нужд урок Unity 5 Standard Shader (https://www.youtube.com/watch?v=fD_ho_ofY6A) и решил поделится написанным по итогам изучения конспектом. Надеюсь кому-то будет полезно. (все картинки взяты из урока)


Unity 5 Standard Shader


Производительность

Если текстура не вставлена в слот – она не грузит шейдер и не влияет на производительность.

Режимы

Шейдер может использовать 2 режима – стандартный (metalness) и specular модель.

В первом случае (в графе Shader выбрано - Standard) определяется насколько поверхность близка к металлу при помощи карты «metallic» (туда вставляется черно\белая маска). 

Во втором режиме - Specular (в графе Shader выбрано - Standard (Specular) определяется отражение поверхности.

1 ряд – металлик, 2-й specular.

Rendering Mode

Opaque – обычный режим.

Cutout– обрезка по альфе, Альфа канал альбедо отвечает за обрезку (маскирование) части текстуры. Если альфа канал имеет градиент, слайдер AlphaCutoff используется для настройки формы обрезки. (основываясь на яркости маски)

Fade– похож на Transparent, но при этом прозрачный материал НЕ сохраняет отражения. т.о. скрываемый материал будет абсолютно прозрачен.

Transparent – прозрачные материалы (стекло). Альфа канал альбедо отвечает за степень прозрачности. (прозрачный материал сохраняет отражения)



Metalness

При режиме «металлик», текстурные карты в слотах Albedo, Metallic, Emission – опциональны. Albedo, Emission могут просто использовать цвет, вместо текстуры.

Цвет недоступен в настройках Emission, пока она равна 0.

Albedo – цвет поверхности. Тут используется опциональная текстура и цвет. Цвет в шейдере используется для окрашивания текстурной карты. Если текстурной карты нет, будет взят просто цвет. Белый оставляет текстуру без изменений.

Metallic – может использовать слайдер, вместо текстуры.  Значение слайдера от 0 до 1.  Это определяет металлическую природу поверхности.  Smoothness определяет насколько отражение размыто или четко. (это характеризуется гладкостью поверхности либо микро деталями размывающими отражение света). Значение слайдера тоже от 0 до 1. 

Более низкие значения размывают отражения приближая его к диффузному. Более высокие дают более четкие отражения.

(Smoothness находится в альфа канале Metalness)

При этом для определения металл\неметалл используется Red (красный канал) текстуры. Хотя визуализировать карту и работать над ней проще в 3х каналах.

Пример:


Specular

Параметр Specular также может быть, как текстурой, так и цветовым значением. Используется для определения отражающей способности материала. Несмотря на то, что значение может быть цветным в реальном мире это встречается редко (исключая металлы). Обычно это очень темный серый цвет.

Если текстура Specular не используется общую Smoothness можно установить слайдером. (легче увидеть если убрать текстуру альбедо)

Normal – определяет поверхность модели. Слайдер задает положительные или отрицательные значения.

Heightmap – простая ч\б карта высот. Дополняет карту нормалей. За силу эффекта отвечает слайдер.

Occlusion – карта отвечающая за количество АО добавляемого к материалу.  

Используется для исключения света в скрытых или углублённых зон модели. АО исключает specular и  reflection.

Emission – самосвечение. (добавляется к Global Illumination сцены). Сила может определятся слайдером. Форма – текстурной картой. (ч\б и цветной) Цвет может задаваться как простым значением так и полностью цветной текстурой.


Тут можно изменить настройки с запеченных lightmap на realtime.

DetailMask– дают контроль над дополнительными картами. (тайлинг и смещение). Это нужно для добавления дополнительных тайлящихся текстурных деталей.

Сюда вставляется Detail Albedo \ Normal map. Они в итоге накладываются на основные текстуры, добавляя детализации.


548 0 850 6
0
RENDER.RU