다음을 통해 공유


샘플(DirectX HLSL 텍스처 개체)

텍스처를 샘플링합니다.

<템플릿 형식> Object.Sample( sampler_state S, float Location [, int Offset] );

매개 변수

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

Offset

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

텍스처-개체 형식 매개 변수 유형
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;

설명

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

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

텍셀 위치 계산

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

텍스처 배열의 경우 위치 매개 변수의 추가 값은 텍스처 배열에 대한 인덱스를 지정합니다. 이 인덱스는 표준 텍스처 좌표에 대한 정규화된 공간 대신 스케일링된 부동 소수점 값으로 처리됩니다. 정수 인덱스로의 변환은 부동 소수점+가장 가까운 정수로 반올림+배열 범위로 제한 순서로 진행됩니다.

텍스처 좌표 오프셋 적용

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

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

텍스처 개체