暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

ComputeRaygenShader.hlsl 1010B

1234567891011121314151617181920212223242526
  1. #define WIDTH_OFFSET 0
  2. #define HEIGHT_OFFSET 1
  3. #define DEPTH_OFFSET 2
  4. StructuredBuffer<uint> g_Dimensions;
  5. #ifndef UNIFIED_RT_RAYGEN_FUNC_NAME
  6. #define UNIFIED_RT_RAYGEN_FUNC_NAME RayGenExecute
  7. #endif
  8. #pragma kernel MainRayGenShader
  9. [numthreads(UNIFIED_RT_GROUP_SIZE_X, UNIFIED_RT_GROUP_SIZE_Y, 1)]
  10. void MainRayGenShader(
  11. in uint3 gidx: SV_DispatchThreadID,
  12. in uint lidx : SV_GroupIndex)
  13. {
  14. if (gidx.x >= g_Dimensions[WIDTH_OFFSET] || gidx.y >= g_Dimensions[HEIGHT_OFFSET] || gidx.z >= g_Dimensions[DEPTH_OFFSET])
  15. return;
  16. UnifiedRT::DispatchInfo dispatchInfo;
  17. dispatchInfo.dispatchThreadID = gidx;
  18. dispatchInfo.dispatchDimensionsInThreads = int3(g_Dimensions[WIDTH_OFFSET], g_Dimensions[HEIGHT_OFFSET], g_Dimensions[DEPTH_OFFSET]);
  19. dispatchInfo.localThreadIndex = lidx;
  20. dispatchInfo.globalThreadIndex = gidx.x + gidx.y * g_Dimensions[WIDTH_OFFSET] + gidx.z * (g_Dimensions[WIDTH_OFFSET] * g_Dimensions[HEIGHT_OFFSET]);
  21. UNIFIED_RT_RAYGEN_FUNC_NAME(dispatchInfo);
  22. }