SampleCmp (objeto de textura HLSL de DirectX)

Muestra una textura y compara un único componente con el valor de comparación especificado.

float Object.SampleCmp(
SamplerComparisonState S,
ubicación float,
float CompareValue,
[int Offset]
);
 

La comparación es una comparación de un solo componente entre el primer componente almacenado en la textura y el valor de comparación pasado al método .

Este método solo se puede invocar desde un sombreador de píxeles; no se admite en un sombreador de vértices o geometrías.

Parámetros

Objeto

Cualquier tipo de objeto de textura (excepto Texture2DMS, Texture2DMSArray o Texture3D).

S

[in] Un estado de comparación de ejemplo, que es el estado del muestreador más un estado de comparación (una función de comparación y un filtro de comparación). Consulte el tipo de sampler para obtener más información y un ejemplo.

Ubicación

[in] Coordenadas de textura. El tipo de argumento depende del tipo de objeto de textura.

tipo de Texture-Object Tipo de parámetro
Texture1D FLOAT
Texture1DArray, Texture2D float2
Texture2DArray¹, TextureCube float3
TextureCubeArray¹ float4

CompareValue

Valor de punto flotante que se va a usar como valor de comparación.

Compensar

[in] Un desplazamiento de coordenadas de textura opcional, que se puede usar para cualquier tipo de objeto de textura; el desplazamiento se aplica a la ubicación antes del muestreo. Los desplazamientos de textura deben ser estáticos. El tipo de argumento depende del tipo de objeto de textura. Para obtener más información, consulta Aplicación de desplazamientos de coordenadas de textura.

tipo de Texture-Object Tipo de parámetro
Texture1D, Texture1DArray int
Texture2D, Texture2DArray¹ int2
TextureCube, TextureCubeArray¹ No compatible

Valor devuelto

Devuelve un valor de punto flotante en el intervalo [0..1].

Para cada elemento de textura capturado (basado en la configuración del muestreador del modo de filtro), SampleCmp realiza una comparación del valor z (componente 3 de entrada) del sombreador con el valor de textura (1 si la comparación pasa; de lo contrario, 0). SampleCmp combina estos resultados 0 y 1 para cada elemento de textura como en el filtrado de textura normal (no un promedio) y devuelve el valor [0..1] resultante al sombreador.

Comentarios

El filtrado de comparación proporciona una operación de filtrado básica que resulta útil para el filtrado de profundidad más cercana al porcentaje.

Cuando se usa este método en un recurso de punto flotante (en lugar de un formato normalizado con signo o sin signo), el valor de comparación no se fija automáticamente entre 0,0 y 1,0. Por lo tanto, una fijación manual del valor de comparación puede ser necesaria para técnicas comunes de sombreado.

Use un desplazamiento solo en un miplevel entero; de lo contrario, puede obtener resultados diferentes en función de la implementación de hardware o la configuración del controlador.

Modelo de sombreador mínimo

Esta función se admite en los siguientes modelos de sombreador.

vs_4_0 vs_4_1² ps_4_0 ps_4_1² gs_4_0 gs_4_1²
x
  1. Texture2DArray y TextureCubeArray están disponibles en Shader Model 4.1 o superior.
  2. El modelo de sombreador 4.1 está disponible en Direct3D 10.1 o superior.

Nota

SampleCmp también está disponible en ps 4_0_level_9_1 y 4_0_level_9_3 cuando se usan las técnicas que se describen en Implementación de búferes de sombras para el nivel de característica 9 de Direct3D.

Texture-Object