Tipo de sampler

Use la siguiente sintaxis para declarar el estado del sampler, así como el estado de comparación de ejemplo.

Diferencias entre Direct3D 9 y Direct3D 10 y versiones posteriores:
Esta es la sintaxis de un sampler en Direct3D 9.
sampler Name = SamplerType{ Texture = <texture_variable> ; [state_name = state_value;] ... };

La sintaxis de un sampler en Direct3D 10 y versiones posteriores se cambia ligeramente para admitir objetos de textura y matrices de muestreador.

SamplerType Name[Index]{ [state_name = state_value;] ... };

Parámetros

Sampler

Solo Direct3D 9. Palabra clave requerida.

Nombre

Cadena ASCII que identifica de forma única el nombre de la variable de ejemplo.

[Index]

Direct3D 10 y versiones posteriores solo. Tamaño de matriz opcional; entero positivo mayor o igual que 1.

SamplerType

[in] El tipo de sampler, que es uno de los siguientes: sampler, sampler1D, sampler2D, sampler3D, samplerCUBE, sampler_state, SamplerState.

Diferencias entre Direct3D 9 y Direct3D 10 y versiones posteriores:

  • Direct3D 10 y versiones posteriores admiten un tipo de ejemplo adicional: SamplerComparisonState.

Textura = <texture_variable>;

Solo Direct3D 9. Variable de textura. La palabra clave Texture es necesaria en el lado izquierdo; el nombre de la variable pertenece al lado derecho de la expresión dentro de los corchetes angulares.

state_name = state_value

[in] Asignaciones de estado opcionales. El lado izquierdo de una asignación es un nombre de estado, el lado derecho es el valor de estado. Todas las asignaciones de estado deben aparecer dentro de un bloque de instrucciones (entre corchetes). Cada instrucción se separa con un punto y coma. En la tabla siguiente se enumeran los posibles nombres de estado.

// sampler state
AddressU
AddressV
AddressW
BorderColor
Filter
MaxAnisotropy
MaxLOD
MinLOD
MipLODBias

// sampler-comparison state
ComparisonFunc

El lado derecho de cada expresión es el valor asignado a cada estado. Consulte la estructura de D3D11_SAMPLER_DESC para conocer los valores de estado posibles para Direct3D 11. Hay una relación de 1 a 1 entre los nombres de estado y los miembros de la estructura. Consulte el ejemplo siguiente.

Comentarios

Al implementar un efecto, el estado del muestreador es uno de varios tipos de estado que es posible que tenga que configurar en la canalización para la representación. Para obtener una lista de todos los estados posibles que puede establecer en un efecto, consulte:

Ejemplo

Diferencias entre Direct3D 9 y Direct3D 10:
Este es un ejemplo parcial de un sampler de Direct3D 9 del ejemplo BasicHLSL.
sampler MeshTextureSampler = 
sampler_state
{
    Texture = <g_MeshTexture>;
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
};

Este es un ejemplo parcial de un sampler de Direct3D 10 de BasicHLSL10 Sample.

SamplerState MeshTextureSampler
{
    Filter = MIN_MAG_MIP_LINEAR;
    AddressU = Wrap;
    AddressV = Wrap;
};

Este es un ejemplo parcial de la declaración del estado de comparación de ejemplo y la llamada a un sampler de comparación en Direct3D 10.

SamplerComparisonState ShadowSampler
{
   // sampler state
   Filter = COMPARISON_MIN_MAG_LINEAR_MIP_POINT;
   AddressU = MIRROR;
   AddressV = MIRROR;

   // sampler comparison state
   ComparisonFunc = LESS;
};
        
float3 vModProjUV;
  ...
float fShadow = g_ShadowMap.SampleCmpLevelZero( ShadowSampler, vModProjUV.xy, vModProjUV.z);

Consulte también

Tipos de datos (DirectX HLSL)