TraceRay 함수

가속 구조에서 적중을 검색하기 위해 광선을 보냅니다.

Syntax

이 내장 함수 정의는 다음 함수 템플릿과 동일합니다.

Template<payload_t>
void TraceRay(RaytracingAccelerationStructure AccelerationStructure,
              uint RayFlags,
              uint InstanceInclusionMask,
              uint RayContributionToHitGroupIndex,
              uint MultiplierForGeometryContributionToHitGroupIndex,
              uint MissShaderIndex,
              RayDesc Ray,
              inout payload_t Payload);

매개 변수

AccelerationStructure

사용할 최상위 가속 구조입니다. NULL 가속 구조를 지정하면 강제로 누락됩니다.

RayFlags

ray_flag 값의 유효한 조합입니다. 정의된 광선 플래그만 시스템에 의해 전파됩니다. 즉, RayFlags 셰이더 내장 함수에 표시됩니다.

InstanceInclusionMask

부호 없는 정수이며, 그 중 아래쪽 8비트는 각 instance InstanceMask를 기반으로 기하 도형 인스턴스를 포함하거나 거부하는 데 사용됩니다. 예:

if(!((InstanceInclusionMask & InstanceMask) & 0xff)) { //ignore intersection }

RayContributionToHitGroupIndex

적중 그룹 인덱싱을 위해 셰이더 테이블 내의 주소 지정 계산에 추가할 오프셋을 지정하는 부호 없는 정수입니다. 이 값의 아래쪽 4비트만 사용됩니다.

MultiplierForGeometryContributionToHitGroupIndex

GeometryContributionToHitGroupIndex를 곱할 보폭을 지정하는 부호 없는 정수입니다. 이는 앱에서 기하 도형을 하위 수준 가속 구조로 제공한 0 기반 인덱스에 불과합니다. 이 승수 값의 아래쪽 16비트만 사용됩니다.

MissShaderIndex

셰이더 테이블 내에서 누락 셰이더의 인덱스를 지정하는 부호 없는 정수입니다.

Ray

추적할 광선을 나타내는 RayDesc 입니다.

Payload

사용자가 정의한 광선 페이로드는 광선 추적 중에 호출된 셰이더에 의해 입력 및 출력 모두에 액세스했습니다. TraceRay가 완료되면 호출자도 페이로드에 액세스할 수 있습니다.

반환 값

void

설명

이 함수는 다음 레이트레이싱 셰이더 형식에서 호출할 수 있습니다.

추가 정보

Direct3D 12 광선 추적 HLSL 참조