Тип шейдера
Синтаксис для объявления переменной шейдера в эффекте изменен с Direct3D 9 на Direct3D 10.
Тип шейдера для Direct3D 10
Объявите переменную шейдера в проходе эффекта (в Direct3D 10) с помощью синтаксиса типа шейдера:
SetPixelShader Compile( ShaderTarget, ShaderFunction ); SetGeometryShader Compile( ShaderTarget, ShaderFunction ); SetVertexShader Compile( ShaderTarget, ShaderFunction ); |
Параметры
Элемент | Описание |
---|---|
SetXXXShader |
Вызов API Direct3D, который создает объект шейдера. Может быть: SetPixelShader , SetGeometryShader или SetVertexShader. |
ШейдерЦель |
Модель шейдера для компиляции. Это допустимо для любого целевого объекта, включая все целевые объекты Direct3D 9 и целевые объекты модели 4 шейдера : vs_4_0, gs_4_0 и ps_4_0. |
ШейдерФункции |
Строка ASCII, содержащая имя функции точки входа шейдера; это функция, которая начинает выполнение при вызове шейдера. (...) представляет аргументы шейдера; Это те же аргументы, которые передаются в API создания шейдера: VSSetShader , GSSetShader или PSSetShader. |
Пример
Ниже приведен пример создания вершинного шейдера и объекта шейдера пикселей, скомпилированных для конкретной модели шейдера. В примере Direct3D 10 нет геометрического шейдера, поэтому для указателя задано значение NULL.
// Direct3D 10
technique10 Render
{
pass P0
{
SetVertexShader( CompileShader( vs_4_0, VS() ) );
SetGeometryShader( NULL );
SetPixelShader( CompileShader( ps_4_0, PS() ) );
}
}
Тип шейдера для Direct3D 9
Объявите переменную шейдера в проходе эффекта (для Direct3D 9) с помощью синтаксиса типа шейдера:
PixelShader = compile ShaderTarget ShaderFunction(...); VertexShader = compile ShaderTarget ShaderFunction(...); |
Параметры
Элемент | Описание |
---|---|
XXXShader |
Переменная шейдера, представляющая скомпилированный шейдер. Может быть: PixelShader или VertexShader. |
ШейдерЦель |
Модель шейдера для компиляции; зависит от типа переменной шейдера. |
ShaderFunction(...) |
Строка ASCII, содержащая имя функции точки входа шейдера; это функция, которая начинает выполнение при вызове шейдера. (...) представляет аргументы шейдера; Это те же аргументы, которые передаются в API создания шейдера: SetVertexShader или SetPixelShader. |
Пример
Ниже приведен пример вершинного шейдера и объекта шейдера пикселей, скомпилированных для конкретной модели шейдера.
// Direct3D 9
technique RenderSceneWithTexture1Light
{
pass P0
{
VertexShader = compile vs_2_0 RenderSceneVS( 1, true, true );
PixelShader = compile ps_2_0 RenderScenePS( true );
}
}