Tipo de sampler

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

Diferencias entre Direct3D 9 y Direct3D 10 y versiones posteriores:
Esta es la sintaxis de un sampler en Direct3D 9.
sampler NameSamplerType = { 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 muestras.

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 sampler.

[Index]

Direct3D 10 y versiones posteriores solo. Tamaño de matriz opcional; un 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 sampler 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. Consulta la estructura D3D11_SAMPLER_DESC para conocer los posibles valores de estado de 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 sampler 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 de BasicHLSL Sample.
sampler MeshTextureSampler = 
sampler_state
{
    Texture = <g_MeshTexture>;
    MipFilter = LINEAR;
    MinFilter = LINEAR;
    MagFilter = LINEAR;
};

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

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 muestras 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);

Vea también

Tipos de datos (DirectX HLSL)