vitacite
|
Среда, 22.03.2017, 12:11
|
|
Сложные материалы: (источник мануалы BIS для Арма)
Super shader. Это сложный материал, который содержит все наши стандартные технологии шейдеров (такие как нормальные, зеркальные, эмбиентные, детализированные и т.д.). Кроме того, он присутствует на входной карте Френеля, определяющей каким будет отражение Shader Glass. BIS рекомендует использовать его вообще для всех обычных объектов, которые используются в Arma3. Для для тех объектов которые по какой-то причине не могут использовать Super Shader рекомендуется использовать процедурно-генерированные текстуры. Материал активируется ссылкой на типы шейдеров.
Код PixelShaderID="Super"; VertexShaderID="Super"; и содержит стадии (этапы) Stage, описываемые ниже. Если мы хотим, чтобы какой-либо этап был проигнорирован, то указываем значения по-умолчанию: (так же приведены в описании).
Stage 1: Карта нормалей. Карта использует текстуры нормалей с суффиксами _NO или _NOHQ. Они нужны чтобы симулировать(подделать) освещение для ударов, вмятин, шума низкополигональных поверхностей, придать им реалистичность и объемность. Значения R, G, B для каждого пикселя на карте соответствуют углу X, Y, Z нормали к поверхности в этом пикселе. Значение по-умолчанию: Код texture="#(argb,8,8,3)color(0.5,0.5,1,1)"; Stage2: DetailTexture: Карта деталей (Карта подробностей) Карты подробностей добавляют к диффузионной карте (собственно основной текстуре модели) внутри одной стадии, другую повторяющуюся текстуру, чтобы достичь большей тонкости для близкого обзора на больших поверхностях, что было бы слишком сложным для покрытия с увеличенным разрешением текстуры. Т.е. детали которые видны вблизи. DetailTexture используются текстуры с суффиксом _DT имеют текстуру, сохраненную внутри альфа-канала (компоненты RGB игнорируются, когда эта текстура преобразуется из TGA в PAA). Из-за особенностей способа позволяющего смешать карту деталей с диффузной картой, необходимо чтобы средний цвет текстуры для карты деталей составлял 50% серого цвета. В противном случае, это может привести к заметному изменению яркости текстуры (MipMapping применяется с расстоянием и углом).
Значение по-умолчанию: Код texture="#(argb,8,8,3)color(0.5,0.5,0.5,0)";
Stage3: Macro map (суффикс текстуры _MC) Макрокарта, Макротекстура.. Макро текстура содержит альтернативные данные для базовой текстуры. Смешивание базовой текстуры и макрокарты для каждой конкретной точки выбирается альфа-каналом макрокарты. (1 означает только макроструктуру, 0 означает только базовую текстуру). RGB вычисляется как LERP с базовой картой. Детальная карта применяется к концу (последней), поэтому накладывает оригинал и карту макроса.
Код texture="#(argb,8,8,3)color(0,0,0,0)";
Stage4: AmbientShadow map: Карта окружающих теней (суффикс текстуры _AS). Эмбиентная теневая текстура содержит информацию о том, «сколько окружающего света находится в заданном месте». Белый цвет (1) означает полное окружающее освещение. 0 означает отсутствие. Фактически, эта (RBG) текстура использует только один канал, в своих интересах, - это канал G (зеленый) - поэтому важно, чтобы в этом канале информация была правильная. Остальные каналы не имеют значения, и в них можно скопировать содержимое зеленого.
Значение по умолчанию: Код texture="#(argb,8,8,3)color(0,1,1,1)"; Stage5: SpecularMap Зеркальная карта типа _SMDI (суффикс _SM не поддерживается). Карты _SMDI представляют собой оптимизированные по битовой глубине зеркальные карты. Каждый канал в 24-битной (RGB) SMDI-карте имеет другую функцию. R - должен быть установлен в 1 для всех пикселей; G -канал функционирует, как зеркальная карта; B - канал функционирует, как зеркальная карта мощности; (также известная как карта глянца, где черный означает очень грубую [матовую] поверхность, а белые гладкую [блестящую] поверхность).
Stage6: Fresnel function: Так называемая функция Френеля. Функция Френеля вводится как процедурная текстура в следующем виде:
Код texture = "# (ai, 64,64,1) fresnel (N, K)". Где N и K являются входами для уравнения Френеля, которое основывается на их основах и для данного угла может определять, насколько отражает под заданным углом. N и K являются постоянными для данного материала и известны для отдельных элементов. Следующая таблица включает сводку основных материалов и их настройки. В таблице показаны значения отдельных волномеров, которые можно было найти. Видимый спектр составляет приблизительно 400 мкм-800 мкм.
Больше информации можно найти тут...
Stage7: Environmental map. Карта окружения. Эта технология позволяет отображать окружающую среду в отражении на той или иной поверхности. Отраженная окружающая среда статична, и только изменяет освещение в соответствии с временем суток. Какая текстура, такая и окружающая среда. В нашем случае она называется Environmental map и отображает проекцию полусферы на плоскость. Пример материала с SuperShader-ом, в собранном виде:
Код ambient[]={1.000000,1.000000,1.000000,1.000000}; diffuse[]={1.000000,1.000000,1.000000,1.000000}; forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000}; emmisive[]={0.000000,0.000000,0.000000,1.000000}; specular[]={0.700000,0.700000,0.700000,1.000000}; specularPower=180.000000; PixelShaderID="Super"; VertexShaderID="Super";
class Stage1 { texture="ca\weapons\data\aimpoint_NOHQ.paa"; uvSource="tex"; };
class Stage2 { texture="#(argb,8,8,3)color(0.5,0.5,0.5,0)"; uvSource="tex"; };
class Stage3 { texture="#(argb,8,8,3)color(0,0,0,0)"; uvSource="tex"; };
class Stage4 { texture="#(argb,8,8,3)color(0,1,1,1)"; uvSource="tex"; };
class Stage5 { texture="ca\weapons\data\aimpoint_SMDI.paa"; uvSource="tex"; };
class Stage6 { texture="#(ai,64,64,1)fresnel(1.3,7)"; uvSource="none"; };
class Stage7 { texture="ca\air\data\env_co.paa"; uvSource="none"; };
|
|
Автор темы
|
|
|
|
|