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.
Tópicos relacionados