Tipo de sampler

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

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 muestreador en Direct3D 10 y versiones posteriores 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 Required.

Nombre

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

[Índice]

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

SamplerType

[en el tipo 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 = <variable de textura _>;

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 entre corchetes angulares.

state _ name = state _ value

[en ] 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 llaves). 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 D3D11 _ SAMPLER _ DESC para ver 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.

Observaciones

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, vea:

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 muestreador de Direct3D 10 del ejemplo BasicHLSL10.

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

Este es un ejemplo parcial de declarar el estado de comparación del muestreador y llamar a un muestreador 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)