다음을 통해 공유


SampleCmp(DirectX HLSL 텍스처 개체)

텍스처를 샘플링하고 단일 성분을 지정된 비교 값과 비교합니다.

float Object.SampleCmp(
SamplerComparisonState S,
float Location,
float CompareValue,
[int Offset]
);
 

비교는 텍스처에 저장된 첫 번째 성분과 메서드에 전달된 비교 값 간의 단일 성분 비교입니다.

이 메서드는 픽셀 셰이더에서만 호출할 수 있습니다. 꼭짓점 또는 기하 도형 셰이더에서는 지원되지 않습니다.

매개 변수

Object

모든 texture-object 형식(Texture2DMS, Texture2DMSArray 또는 Texture3D 제외)입니다.

S

[in] 샘플러 상태와 비교 상태(비교 함수 및 비교 필터)를 더한 샘플러 비교 상태입니다. 자세한 내용과 예는 샘플러 형식을 참조하세요.

Location

[in] 텍스처 좌표입니다. 인수 형식은 텍스처-개체 형식에 따라 달라집니다.

텍스처-개체 형식 매개 변수 유형
Texture1D float
Texture1DArray, Texture2D float2
Texture2DArray¹, TextureCube float3
TextureCubeArray¹ float4

CompareValue

비교 값으로 사용할 부동 소수점 값입니다.

Offset

[in] 모든 텍스처 개체 형식에 사용할 수 있는 선택적 텍스처 좌표 오프셋입니다. 오프셋은 샘플링 전에 위치에 적용됩니다. 텍스처 오프셋은 정적이어야 합니다. 인수 형식은 텍스처-개체 형식에 따라 달라집니다. 자세한 내용은 텍스처 좌표 오프셋 적용을 참조하세요.

텍스처-개체 형식 매개 변수 유형
Texture1D, Texture1DArray int
Texture2D, Texture2DArray¹ int2
TextureCube, TextureCubeArray¹ 지원되지 않음

반환 값

[0..1] 범위의 부동 소수점 값을 반환합니다.

필터 모드의 샘플러 구성에 따라 가져온 각 텍셀에 대해 SampleCmp는 셰이더의 z 값(입력의 세 번째 성분)을 텍셀 값(비교에 통과하면 1, 그렇지 않으면 0)과 비교합니다. 그런 다음 SampleCmp는 일반 텍스처 필터링(평균이 아님)에서와 같이 각 텍셀에 대한 이러한 0과 1 결과를 혼합하고 결과 [0..1] 값을 셰이더에 반환합니다.

설명

비교 필터링은 백분율에 가까운 깊이 필터링에 유용한 기본 필터링 작업을 제공합니다.

부호 있는 정규화 또는 부호 없는 정규화된 형식 대신 부동 소수점 리소스에서 이 메서드를 사용하는 경우 비교 값이 0.0과 1.0 사이에서 자동으로 클램프되지 않습니다. 따라서 일반적인 섀도잉 기술에는 비교 값의 수동 클램프가 필요할 수 있습니다.

정수 miplevel에서만 오프셋을 사용합니다. 그렇지 않으면 하드웨어 구현 또는 드라이버 설정에 따라 다른 결과를 가져올 수 있습니다.

최소 셰이더 모델

이 함수는 다음 셰이더 모델에서 지원됩니다.

vs_4_0 vs_4_1² ps_4_0 ps_4_1² gs_4_0 gs_4_1²
x
  1. Texture2DArray 및 TextureCubeArray는 셰이더 모델 4.1 이상에서 사용할 수 있습니다.
  2. 셰이더 모델 4.1은 Direct3D 10.1 이상에서 사용할 수 있습니다.

참고

Direct3D 기능 수준 9에 대한 섀도 버퍼 구현에 설명된 기술을 사용할 때 SampleCmp는 ps 4_0_level_9_1 및 4_0_level_9_3에서도 사용할 수 있습니다.

텍스처 개체