SampleCmp(DirectX HLSL 텍스처 개체)
텍스처를 샘플링하고 단일 성분을 지정된 비교 값과 비교합니다.
float Object.SampleCmp(
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¹ | x |
- Texture2DArray 및 TextureCubeArray는 셰이더 모델 4.1 이상에서 사용할 수 있습니다.
- 셰이더 모델 4.1은 Direct3D 10.1 이상에서 사용할 수 있습니다.
참고
Direct3D 기능 수준 9에 대한 섀도 버퍼 구현에 설명된 기술을 사용할 때 SampleCmp는 ps 4_0_level_9_1 및 4_0_level_9_3에서도 사용할 수 있습니다.