DirectX Raytracing 入门指南
1. 编译着色器
首先,我们需要编译射线追踪着色器。以下是编译着色器的代码示例:
// Get the shader bytecode result.
result->GetResult(blob);
// Compiled shader DXIL bytecode
IDxcBlob *rgsBytecode, *missBytecode, *chsBytecode, *ahsBytecode;
// Call our helper function to compile the ray tracing shaders.
CompileShader(library, compiler, L"RayGen.hlsl", &rgsBytecode);
CompileShader(library, compiler, L"Miss.hlsl", &missBytecode);
CompileShader(library, compiler, L"ClosestHit.hlsl", &chsBytecode);
CompileShader(library, compiler, L"AnyHit.hlsl", &ahsBytecode);
上述代码中,我们定义了不同类型的着色器字节码指针,并调用 CompileShader
函数来编译相应的着色器。
2. 射线追踪管道状态对象(RTPSO)
2.1 RTPSO 概述
由于射线可以与场