Sintaxis de variable de efecto (Direct3D 10)

Una variable de efecto se declara con la siguiente sintaxis.

Sintaxis

DataTypeVariableName [ : SemanticName ] <Annotations>;

Nombre Descripción
DataType Cualquier tipo básico o de textura .
VariableName Cadena ASCII que identifica de forma única el nombre de la variable de efecto.
SemanticName Cadena ASCII que denota información adicional sobre cómo se debe usar una variable. Una semántica es una cadena ASCII que puede ser un valor del sistema predefinido o una cadena de usuario personalizado.
anotaciones Uno o más fragmentos de información proporcionada por el usuario (metadatos) que el sistema de efectos omite. Para obtener sintaxis, vea Annotation Syntax (Direct3D 10) (Sintaxis de anotación [Direct3D 10]).

 

Una variable de efecto que se declara fuera de todas las funciones, se considera global en el ámbito; las variables declaradas dentro de una función son locales para esa función.

Ejemplo

El ejemplo BasicHLSL10 usa variables globales sin semántica para colores de materiales, propiedades de luz y matrices de transformación.

En este ejemplo se muestran las variables de efecto globales.

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

En este ejemplo se muestran las variables de efecto que son locales para una función de sombreador.

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

    // shader body
}

En este ejemplo se muestran los parámetros de función que tienen semántica.

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

En este ejemplo se muestra cómo declarar una variable de textura.

Texture2D g_MeshTexture;            // Color texture for mesh

El muestreo de una textura se realiza con un muestreador de texturas. Para configurar un sampler en un efecto, consulte el tipo de sampler.

Formato de efecto