Реклама Код демонстрационного скрипта (смотрите раздел Main()) применяет шейдер к оболочке
каркаса при запуске (вызов функции iShaderSet()) и затем, во время исполнения
Шейдеры программы, просто изменяет параметр прозрачности (альфа), чтобы сделать оболочку
каркаса постепенно исчезающей.
Функции редактора
Примечание: опция Использовать пользовательский шейдер должна быть установлена в
CamChase диалоговом окне свойств оболочки каркаса прежде, чем пользовательский шейдер может
быть применен к оболочке каркаса.
SketchUp
Lightwave При написании Ваших собственных шейдеров для 3D Rad, первое правило заключается в
том, чтобы помнить о том, что ваш код HLSL должен включать технологии визуализации и
Мультиплеер для оболочечных (скелетно анимированных), и для необолочечных (статических)
каркасов.
События
В скрипте примера Вы можете видеть, что есть два отдельных объявления технологии,
Устойчивость называемых technique Skinning и technique NoSkinning. Эти объявления должны
присутствовать в Вашем разделе кода HLSL.
Основы AngelScript
Справка программы Вы можете определить минимальную модель шейдера (аппаратного), необходимую для
обработки Вашего шейдера, используя синтаксис compile vs_X_X для вершинного
шейдера, и синтаксис compile ps_X_X для пиксельного шейдера.
"X_X" - это версия модели шейдера. В примере я использовал "1_1", что значит, что
шейдер потребует по меньшей мере, видеокарты, поддерживающей модель шейдера 1.1.
Это делает мой шейдер работающим практически на любом компьютере потому, что
модель шейдера 1.1 поддерживается практически всеми видеокартами.
Помните о том, что набор функций HLSL, который Вы можете использовать в Вашем коде
шейдера, будет изменяться, когда Вы будете изменять версию модели шейдера. Так,
например, при программировании для шейдера модели "1_1", у Вас есть ограниченный
набор функций HLSL по сравнению с программированием для модели шейдера "2_0" или
"3_0".
Очевидно, что написание шейдера "3_0" приведет к сбою визуализации Вашей оболочки
каркаса на компьютере, который поддерживает, например, только модель шейдера до 2.0.
Однако, так как Вы можете добавить несколько разделов HLSL к Вашему скрипту
(определить несколько шейдеров в одном скрипте), Вы можете написать разный шейдер
для каждой различной модели шейдера (аппаратной), на которую Вы хотите нацелится.
Параметры шейдера
------------------------------------------------------------
float4x3 amPalette[MATRIX_PALETTE_SIZE_DEFAULT];
texture diffuseMap;
int boneCount = 2;
------------------------------------------------------------
------------------------------------------------------------
texture environmentMap;
float environmentMapBlend = 0.25;
texture normalMap;
float bumpScale = 1.0f;
------------------------------------------------------------
Шейдеры постпроцессинга
Набор функция iShader...() также может быть использован для применения созданных
пользователем шейдеров постпроцессинга к любому объекту следящей камеры в Вашем
проекте.
Все, что Вам нужно сделать, как только Вы написали должный шейдер постпроцессинга
внутри тегов "/*HLSLSTART name" и "HLSLEND*/" - это вызвать iShaderSet() и все другие
функции iShader...(), передав дескриптор на объект следящей камеры в качестве первого
параметра, вместо оболочки каркаса.