Поделиться через


Синтаксис переменной эффекта (Direct3D 10)

Переменная эффекта объявляется с помощью следующего синтаксиса.

Синтаксис

DataTypeVariableName [ : SemanticName ] <Заметки>;

Имя Описание
DataType Любой базовый тип или тип текстуры .
VariableName Строка ASCII, однозначно идентифицирующая имя переменной эффекта.
SemanticName Строка ASCII, обозначающая дополнительные сведения об использовании переменной. Семантика — это строка ASCII, которая может быть предопределенной строкой system-value или пользовательской строкой.
Заметки Один или несколько фрагментов предоставленных пользователем сведений (метаданных), которые игнорируются системой эффектов. Синтаксис см. в разделе Синтаксис заметки (Direct3D 10).

 

Переменная эффекта, объявленная вне всех функций, считается глобальной в область; переменные, объявленные в функции, являются локальными для этой функции.

Пример

В примере BasicHLSL10 используются глобальные переменные без семантики для цветов материала, свойств света и матриц преобразования.

В этом примере показаны глобальные переменные эффекта.

float4 g_MaterialAmbientColor;      // Material's ambient color
float4 g_MaterialDiffuseColor;      // Material's diffuse color
float3 g_LightDir[3];               // Light's direction in world space
float4x4 g_mWorld;                  // World matrix for object

В этом примере показаны переменные эффекта, которые являются локальными для функции шейдера.

VS_OUTPUT RenderSceneVS( ... )
{
    float3 vNormalWorldSpace;
    float4 vAnimatedPos;

    // shader body
}

В этом примере показаны параметры функции с семантикой.

VS_OUTPUT RenderSceneVS( float4 vPos : SV_POSITION,
                         float3 vNormal : NORMAL,
                         float2 vTexCoord0 : TEXCOORD0,
                         uniform int nNumLights,
                         uniform bool bTexture,
                         uniform bool bAnimate )
{
  ...
}

В этом примере показано объявление переменной текстуры.

Texture2D g_MeshTexture;            // Color texture for mesh

Выборка текстуры выполняется с помощью выборки текстур. Сведения о настройке выборки в эффекте см. в разделе Тип выборки.

Формат эффекта