SampleCmp (objeto de textura HLSL directx)
Amostra uma textura e compara um único componente com o valor de comparação especificado.
float Object.SampleCmp(
Float Location, float CompareValue, [int Offset] |
A comparação é uma comparação de componente único entre o primeiro componente armazenado na textura e o valor de comparação passado para o método .
Esse método só pode ser invocado de um sombreador de pixel; Não há suporte para ele em um sombreador de vértice ou geometria.
Parâmetros
-
Objeto
-
Qualquer tipo de objeto de textura (exceto Texture2DMS, Texture2DMSArray ou Texture3D).
-
S
-
[in] Um estado de comparação de amostra, que é o estado do sampler mais um estado de comparação (uma função de comparação e um filtro de comparação). Consulte o tipo de amostra para obter detalhes e um exemplo.
-
Localização
-
[in] As coordenadas de textura. O tipo de argumento depende do tipo texture-object.
Tipo de Texture-Object Tipo de parâmetro Texture1D FLOAT Texture1DArray, Texture2D float2 Texture2DArray¹, TextureCube float3 TextureCubeArray¹ float4 -
CompareValue
-
Um valor de ponto flutuante a ser usado como um valor de comparação.
-
Deslocamento
-
[in] Um deslocamento de coordenada de textura opcional, que pode ser usado para qualquer tipo de objeto de textura; o deslocamento é aplicado ao local antes da amostragem. Os deslocamentos de textura precisam ser estáticos. O tipo de argumento depende do tipo texture-object. Para obter mais informações, consulte Aplicando deslocamentos de coordenadas de textura.
Tipo de Texture-Object Tipo de parâmetro Texture1D, Texture1DArray INT Texture2D, Texture2DArray¹ int2 TextureCube, TextureCubeArray¹ Sem suporte
Valor Retornado
Retorna um valor de ponto flutuante no intervalo [0..1].
Para cada texel buscado (com base na configuração do sampler do modo de filtro), SampleCmp executa uma comparação do valor z (3º componente de entrada) do sombreador em relação ao valor texel (1 se a comparação for aprovada; caso contrário, 0). SampleCmp combina esses resultados 0 e 1 para cada texel como na filtragem de textura normal (não uma média) e retorna o valor resultante [0,.1] para o sombreador.
Comentários
A filtragem de comparação fornece uma operação básica de filtragem que é útil para filtragem de profundidade mais próxima de porcentagem.
Ao usar esse método em um recurso de ponto flutuante (em vez de um formato normalizado com sinal ou normalizado sem sinal), o valor de comparação não é fixado automaticamente entre 0,0 e 1,0. Portanto, um grampo manual do valor de comparação pode ser necessário para técnicas comuns de sombreamento.
Use um deslocamento somente em um miplevel inteiro; caso contrário, você poderá obter resultados diferentes dependendo da implementação de hardware ou das configurações do driver.
Modelo de sombreador mínimo
Essa função tem suporte nos seguintes modelos de sombreador.
vs_4_0 | vs_4_1² | ps_4_0 | ps_4_1² | gs_4_0 | gs_4_1² |
---|---|---|---|---|---|
x¹ | x |
- Texture2DArray e TextureCubeArray estão disponíveis no Modelo de Sombreador 4.1 ou superior.
- O Modelo de Sombreador 4.1 está disponível no Direct3D 10.1 ou superior.
Observação
SampleCmp também está disponível em ps 4_0_level_9_1 e 4_0_level_9_3 quando você usa as técnicas descritas em Implementando buffers de sombra para o nível 9 do recurso Direct3D.