샘플(DirectX HLSL 텍스처 개체)

텍스처를 샘플합니다.

<Template Type> Object.Sample( sampler_state S, float Location [, int Offset] );

매개 변수

항목 설명
개체
모든 텍스처 개체 형식(Texture2DMS 및 Texture2DMSArray 제외).
S
[in] 샘플러 상태입니다. 상태 할당을 포함하는 효과 파일에 선언된 개체입니다.
위치
[in] 텍스처 좌표입니다. 인수 형식은 텍스처 개체 형식에 따라 달라집니다.
Texture-Object 형식 매개 변수 유형
Texture1D float
Texture1DArray, Texture2D float2
Texture2DArray, Texture3D, TextureCube float3
TextureCubeArray float4

오프셋

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

Texture-Object 형식 매개 변수 유형
Texture1D, Texture1DArray int
Texture2D, Texture2DArray int2
Texture3D int3
TextureCube, TextureCubeArray 지원되지 않음

반환 값

단일 또는 다중 구성 요소 벡터일 수 있는 텍스처의 템플릿 형식입니다. 형식은 텍스처의 DXGI_FORMAT 기반으로합니다.

최소 셰이더 모델

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

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

예제

이 부분 코드 예제는 BasicHLSL11 샘플의 BasicHLSL11.fx 파일을 기반으로 합니다.

// Object Declarations
Texture2D g_MeshTexture;            // Color texture for mesh

SamplerState MeshTextureSampler
{
    Filter = MIN_MAG_MIP_LINEAR;
    AddressU = Wrap;
    AddressV = Wrap;
};

struct VS_OUTPUT
{
    float4 Position   : SV_POSITION; // vertex position 
    float4 Diffuse    : COLOR0;      // vertex diffuse color (note that COLOR0 is clamped from 0..1)
    float2 TextureUV  : TEXCOORD0;   // vertex texture coords 
};

VS_OUTPUT In;

// Shader body calling the intrinsic function
   ...
        Output.RGBColor = g_MeshTexture.Sample(MeshTextureSampler, In.TextureUV) * In.Diffuse;

설명

텍스처 샘플링은 텍셀 위치를 사용하여 텍셀 값을 조회합니다. 오프셋은 조회 전에 위치에 적용할 수 있습니다. 샘플러 상태에는 샘플링 및 필터링 옵션이 포함됩니다. 이 메서드는 픽셀 셰이더 내에서 호출할 수 있지만 꼭짓점 셰이더 또는 기하 도형 셰이더에서는 지원되지 않습니다.

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

텍셀 위치 계산

텍스처 좌표는 정규화된 텍스처 공간이라고도 하는 텍스처 데이터를 참조하는 부동 소수점 값입니다. 주소 래핑 모드는 [0...1] 범위 외부의 텍스처 좌표를 수정하기 위해 이 순서(텍스처 좌표 + 오프셋 + 래핑 모드)로 적용됩니다.

텍스처 배열의 경우 위치 매개 변수의 추가 값은 텍스처 배열에 대한 인덱스를 지정합니다. 이 인덱스는 표준 텍스처 좌표의 정규화된 공간 대신 크기가 조정된 부동 소수 자릿수 값으로 처리됩니다. 정수 인덱스로의 변환은 다음 순서로 수행됩니다(float + round-to-nearest-even 정수 + 배열 범위에 클램프).

텍스처 좌표 오프셋 적용

오프셋 매개 변수는 텍스처 좌표를 텍셀 공간으로 수정합니다. 텍스처 좌표가 정규화된 부동 소수점 숫자이지만 오프셋은 정수 오프셋을 적용합니다. 또한 텍스처 오프셋은 정적이어야 합니다.

반환되는 데이터 형식은 텍스처 형식에 따라 결정됩니다. 예를 들어 텍스처 리소스가 DXGI_FORMAT_A8B8G8R8_UNORM_SRGB 형식으로 정의된 경우 샘플링 작업은 샘플링된 텍셀을 감마 2.0에서 1.0으로 변환하고 필터링하고 결과를 [0..1] 범위의 부동 소수점 값으로 씁니다.

Texture-Object