Advertisement
Guest User

Untitled

a guest
Feb 10th, 2025
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.27 KB | None | 0 0
  1. FMaterialClosestHitPayload TraceMaterialRay(
  2. in RaytracingAccelerationStructure TLAS,
  3. in uint RayFlags,
  4. in uint InstanceInclusionMask,
  5. in FRayDesc Ray,
  6. // Payload Inputs
  7. inout FRayCone RayCone,
  8. in bool bEnableSkyLightContribution,
  9. in bool bIgnoreTranslucentMaterials)
  10. {
  11. const uint RayContributionToHitGroupIndex = RAY_TRACING_SHADER_SLOT_MATERIAL;
  12. const uint MultiplierForGeometryContributionToShaderIndex = RAY_TRACING_NUM_SHADER_SLOTS;
  13. const uint MissShaderIndex = 0;
  14.  
  15. FPackedMaterialClosestHitPayload PackedPayload = (FPackedMaterialClosestHitPayload)0;
  16.  
  17. // Set payload inputs
  18.  
  19. PackedPayload.SetRayCone(RayCone);
  20.  
  21. if (bEnableSkyLightContribution)
  22. {
  23. // Enable Sky Light contribution in the payload if requested
  24. PackedPayload.SetEnableSkyLightContribution();
  25. }
  26.  
  27. if (bIgnoreTranslucentMaterials)
  28. {
  29. PackedPayload.SetIgnoreTranslucentMaterials();
  30. }
  31.  
  32. // Trace the ray
  33.  
  34. TraceRay(
  35. TLAS,
  36. RayFlags,
  37. InstanceInclusionMask,
  38. RayContributionToHitGroupIndex,
  39. MultiplierForGeometryContributionToShaderIndex,
  40. MissShaderIndex,
  41. Ray.GetNativeDesc(),
  42. PackedPayload);
  43.  
  44. // Unpack the payload
  45.  
  46. FMaterialClosestHitPayload Payload = UnpackRayTracingPayload(PackedPayload, Ray);
  47.  
  48. RayCone = Payload.GetRayCone();
  49.  
  50. return Payload;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement