광선 생성 셰이더
TraceRay를 호출하여 광선을 생성하는 셰이더입니다. 각 광선에 대한 초기 사용자 정의 광선 페이로드는 TraceRay 호출 사이트에 제공됩니다. 호출 가능 셰이더를 호출하기 위해 광선 생성 셰이더에서 CallShader를 사용할 수도 있습니다.
DispatchRays는 광선 생성 셰이더 호출의 그리드를 호출합니다. 광선 생성 셰이더의 각 호출(스레드)은 전체 그리드에서 해당 위치를 알고, TraceRay를 통해 임의의 광선을 생성할 수 있으며, 다른 호출과 독립적으로 작동합니다. 서로에 대해 정의된 스레드 실행 순서는 없습니다.
셰이더 유형 특성
[shader("raygeneration")]
예제
struct SceneConstantStructure { ... };
ConstantBuffer<SceneConstantStructure> SceneConstants;
RaytracingAccelerationStructure MyAccelerationStructure : register(t3);
struct MyPayload { ... };
[shader("raygeneration")]
void raygen_main()
{
RayDesc myRay = {
SceneConstants.CameraOrigin,
SceneConstants.TMin,
computeRayDirection(SceneConstants.LensParams, DispatchRaysIndex(),
DispatchRaysDimensions()),
SceneConstants.TMax};
MyPayload payload = { ... }; // init payload
TraceRay(
MyAccelerationStructure,
SceneConstants.RayFlags,
SceneConstants.InstanceInclusionMask,
SceneConstants.RayContributionToHitGroupIndex,
SceneConstants.MultiplierForGeometryContributionToHitGroupIndex,
SceneConstants.MissShaderIndex,
myRay,
payload);
WriteFinalPixel(DispatchRaysIndex(), payload);
}
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기