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.
Temas relacionados