Sintaxe de variável de efeito (Direct3D 10)

Uma variável de efeito é declarada com a sintaxe a seguir.

Sintaxe

DataTypeVariableName [ : SemanticName ] <Anotações>;

Nome Descrição
Tipo de dados Qualquer tipo básico ou de textura .
VariableName Uma cadeia de caracteres ASCII que identifica exclusivamente o nome da variável de efeito.
SemanticName Uma cadeia de caracteres ASCII que indica informações adicionais sobre como uma variável deve ser usada. Uma semântica é uma cadeia de caracteres ASCII que pode ser um valor de sistema predefinido ou uma cadeia de caracteres de usuário personalizado.
Anotações Uma ou mais partes de informações fornecidas pelo usuário (metadados) que são ignoradas pelo sistema de efeito. Para obter sintaxe, consulte Sintaxe de anotação (Direct3D 10).

 

Uma variável de efeito declarada fora de todas as funções é considerada global no escopo; variáveis declaradas dentro de uma função são locais para essa função.

Exemplo

O exemplo BasicHLSL10 usa variáveis globais sem semântica para cores de material, propriedades leves e matrizes de transformação.

Este exemplo ilustra variáveis de efeito global.

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

Este exemplo ilustra variáveis de efeito que são locais para uma função de sombreador.

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

    // shader body
}

Este exemplo ilustra parâmetros de função que têm semântica.

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

Este exemplo ilustra a declaração de uma variável de textura.

Texture2D g_MeshTexture;            // Color texture for mesh

A amostragem de uma textura é feita com um amostrador de textura. Para configurar um sampler em um efeito, consulte o tipo de sampler.

Formato de efeito