Files
UnrealEngine/Engine/Shaders/Private/RayTracing/RayTracingDebugCHS.usf
2025-05-18 13:04:45 +08:00

36 lines
1.0 KiB
HLSL

// Copyright Epic Games, Inc. All Rights Reserved.
#include "../Common.ush"
#include "../Hash.ush"
#include "RayTracingCommon.ush"
#include "RayTracingDebugUtils.ush"
#include "RayTracingHitGroupCommon.ush"
RAY_TRACING_ENTRY_CLOSEST_HIT(RayTracingDebugMainCHS,
FRayTracingDebugPayload, Payload,
FRayTracingIntersectionAttributes, Attributes)
{
Payload.HitT = RayTCurrent();
const uint GPUSceneInstanceId = GetInstanceUserData();
const FInstanceSceneData InstanceSceneData = GetInstanceSceneData(GPUSceneInstanceId);
Payload.InstanceHash = MurmurAdd(InstanceSceneData.PrimitiveId, InstanceSceneData.RelativeId);
Payload.TriangleIndex = PrimitiveIndex();
Payload.WorldNormal = GetGeometryNormalFromTriangleBaseAttributes(PrimitiveIndex());
Payload.InstanceIndex = InstanceIndex();
Payload.GeometryIndex = GeometryIndex();
Payload.ScenePrimitiveIndex = InstanceSceneData.PrimitiveId;
}
RAY_TRACING_ENTRY_ANY_HIT(RayTracingDebugAHS,
FRayTracingDebugPayload, Payload,
FRayTracingIntersectionAttributes, Attributes)
{
Payload.TriangleHitCountPerRay += 1;
}