gather4(sm5 - asm)
쌍선형 필터링 작업에 사용할 4개의 텍셀을 수집하고 단일 레지스터로 압축합니다. 이 명령은 배열을 포함하여 2D 또는 CubeMap 텍스처에서만 작동합니다. 샘플러의 주소 지정 모드만 사용되며 모든 밉 피라미드의 최상위 수준이 사용됩니다.
gather4[_aoffimmi(u,v)] dest[.mask], srcAddress[.swizzle], srcResource[.swizzle], srcSampler[.select_component] |
---|
항목 | 설명 |
---|---|
dest |
[in] 작업 결과의 주소입니다. |
srcAddress |
[in] 텍스처 좌표 집합입니다. |
srcResource |
[in] 텍스처 레지스터입니다. |
srcSampler |
[in] 샘플러 레지스터입니다. |
설명
이 명령은 샘플 명령처럼 동작하지만 필터링된 샘플은 생성되지 않습니다. 필터링에 영향을 주는 네 개의 샘플은 쿼리된 위치의 왼쪽 아래에 있는 샘플부터 시계 반대 방향으로 xyzw에 배치됩니다. 이는 (u,v) 텍스처 좌표 델타가 (-,+),(+,+),(+,-),(-,-)인 위치에서 점 샘플링과 동일합니다. 여기에서 델타의 크기는 항상 텍셀의 절반입니다.
CubeMap 텍스처의 경우 쌍선형 공간이 가장자리에 걸쳐 있으면 인접한 면의 텍셀이 사용됩니다. 모서리는 샘플 명령과 동일한 규칙을 사용합니다. 즉, 알 수 없는 모서리는 세 개의 임핑 면 모서리의 평균으로 간주됩니다.
형식 목록에 표현되는 gather4에 적용되는 텍스처 형식 제한이 있습니다.
srcResource에 스위즐을 사용하면 반환된 값이 대상에 기록되기 전에 임의로 스위즐할 수 있습니다.
srcSampler의 .select_component가 4개의 텍셀을 읽을 원본 텍스처(r/g/b/a)의 구성 요소를 선택합니다.
float32 구성 요소가 있는 형식의 경우 페치되는 값이 정규화, 비정규화, +-0 또는 +-INF이면 셰이더에 변경되지 않은 상태로 반환됩니다. NaN은 NaN으로 반환되지만 NaN의 정확한 비트 표현은 변경될 수 있습니다. TextureCubes의 경우 누락된 4번째 텍셀의 일부 합성은 모서리에서 발생해야 하므로 합성된 텍셀에 대해 변경되지 않은 비트를 반환하는 것은 적용되지 않으며 비정상 값을 플러시할 수 있습니다.
하드웨어 구현의 경우 텍셀에서 직접 샘플을 검색하고 가중치가 0인 텍셀 읽기를 건너뛰는 기존 쌍선형 필터링의 최적화는 이 명령으로 활용할 수 없습니다. gather4는 항상 요청된 모든 텍셀을 반환합니다.
이 명령은 다음 셰이더 단계에 적용됩니다.
꼭짓점 | Hull | 도메인 | 기하 도형 | 픽셀 | 컴퓨팅 |
---|---|---|---|---|---|
X | X | X | X | X | X |
최소 셰이더 모델
이 명령은 다음 셰이더 모델에서 지원됩니다.
셰이더 모델 | 지원됨 |
---|---|
셰이더 모델 5 | 예 |
셰이더 모델 4.1 | 아니요 |
셰이더 모델 4 | 아니요 |
셰이더 모델 3(DirectX HLSL) | 아니요 |
셰이더 모델 2(DirectX HLSL) | 아니요 |
셰이더 모델 1(DirectX HLSL) | 아니요 |