Advertisement
Guest User

Untitled

a guest
Feb 10th, 2025
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1.  
  2. #include "/Engine/Private/Common.ush"
  3. #include "/Engine/Private/RayTracing/RayTracingCommon.ush"
  4. #include "/Engine/Private/RayTracing/RayTracingHitGroupCommon.ush"
  5.  
  6.  
  7. RWTexture2D<float4> outTex;
  8. RaytracingAccelerationStructure TLAS;
  9.  
  10. RAY_TRACING_ENTRY_RAYGEN(RayTraceTestRGS)
  11. {
  12. // reconstruct camera direction with a small (far) device z
  13. uint2 PixelCoord = DispatchRaysIndex().xy + View.ViewRectMin.xy;
  14. float3 WorldPosition;
  15. float3 CameraDirection;
  16. ReconstructTranslatedWorldPositionAndCameraDirectionFromDeviceZ(PixelCoord, 0.1f, WorldPosition, CameraDirection);
  17.  
  18. // setup ray, simply shoot a long distance
  19. FRayDesc Ray;
  20. Ray.Origin = WorldPosition;
  21. Ray.Direction = CameraDirection;
  22. Ray.TMin = 0.0f;
  23. Ray.TMax = 9999;
  24.  
  25. //Payload Struct
  26. FMaterialClosestHitPayload Payload = (FMaterialClosestHitPayload) 0;
  27.  
  28. // SETTINGS
  29. const uint InstanceInclusionMask = RAY_TRACING_MASK_OPAQUE;
  30. const bool bEnableSkyLightContribution = false;
  31. const bool bIgnoreTranslucentMaterials = false;
  32. uint RayFlags = RAY_FLAG_FORCE_OPAQUE | RAY_FLAG_CULL_BACK_FACING_TRIANGLES;
  33. FRayCone RayCone = (FRayCone)0;
  34.  
  35. // TraceRay for FMaterialClosestHitPayload
  36. FMaterialClosestHitPayload Payload = TraceMaterialRay(
  37. TLAS,
  38. RayFlags,
  39. InstanceInclusionMask,
  40. Ray,
  41. RayCone,
  42. bEnableSkyLightContribution,
  43. bIgnoreTranslucentMaterials);
  44.  
  45. if (Payload.IsHit())
  46. outTex[PixelCoord] = 1.0f;
  47. else
  48. outTex[PixelCoord] = 0.0f;
  49. }
  50.  
  51. [shader("miss")]
  52. void RayTraceTestMS(inout FMaterialClosestHitPayload data)
  53. {
  54. data.SetMiss();
  55. }
  56.  
  57. [shader("closesthit")]
  58. void RayTraceTestCHS(inout FMaterialClosestHitPayload data, BuiltInTriangleIntersectionAttributes attribs)
  59. {
  60. data.HitT = RayTCurrent();
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement