샘플러 유형
샘플러 상태와 샘플러 비교 상태를 선언하려면 다음 구문을 사용합니다.
Direct3D 9와 Direct3D 10 이상 간의 차이점: Direct3D 9의 샘플러 구문은 다음과 같습니다.
Direct3D 10 이상에서 샘플러의 구문은 텍스처 개체 및 샘플러 배열을 지원하도록 약간 변경됩니다.
|
매개 변수
-
sampler
-
Direct3D 9에만 해당됩니다. 필수 키워드입니다.
-
Name
-
샘플러 변수 이름을 고유하게 식별하는 ASCII 문자열입니다.
-
[Index]
-
Direct3D 10 이상에만 해당됩니다. 선택적 배열 크기로 1보다 크거나 같은 양의 정수입니다.
-
SamplerType
-
[in] 샘플러 형식은 sampler, sampler1D, sampler2D, sampler3D, samplerCUBE, sampler_state, SamplerState 중 하나입니다.
Direct3D 9와 Direct3D 10 이상 간의 차이점:
- Direct3D 10 이상에서는 한 가지 샘플러 유형 SamplerComparisonState를 추가로 지원합니다.
-
Texture = <texture_variable>;
-
Direct3D 9에만 해당됩니다. 텍스처 변수입니다. 왼쪽에는 Texture 키워드가 필요합니다. 변수 이름은 꺾쇠 괄호 안에 있는 식의 오른쪽에 속합니다.
-
state_name = state_value
-
[in] 선택적 상태 할당입니다. 할당의 왼쪽은 상태 이름이고, 오른쪽은 상태 값입니다. 모든 상태 할당은 문 블록 내에 나타나야 합니다(중괄호 안). 각 문은 세미콜론으로 구분됩니다. 다음 표에서는 가능한 상태 이름을 나열합니다.
// sampler state AddressU AddressV AddressW BorderColor Filter MaxAnisotropy MaxLOD MinLOD MipLODBias // sampler-comparison state ComparisonFunc
각 식의 오른쪽은 각 상태에 할당된 값입니다. Direct3D 11의 가능한 상태 값은 D3D11_SAMPLER_DESC 구조체를 참조하세요. 상태 이름과 구조체의 멤버 간에는 일 대 일의 관계가 있습니다. 다음 예제를 참조하세요.
설명
효과를 구현할 때 샘플러 상태는 렌더링을 위해 파이프라인에서 설정해야 할 수 있는 여러 유형의 상태 중 하나입니다. 효과에 설정할 수 있는 가능한 모든 상태의 목록은 다음을 참조하세요.
예
Direct3D 9와 Direct3D 10의 차이점 다음은 BasicHLSL 샘플의 Direct3D 9 샘플러의 부분 예제입니다.
다음은 BasicHLSL10 샘플의 Direct3D 10 샘플러의 부분 예제입니다.
|
다음은 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);