Files
UnrealEngine/Engine/Source/Runtime/Renderer/Public/RayTracingShaderBindingLayout.h
2025-05-18 13:04:45 +08:00

30 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "RHIDefinitions.h"
#if RHI_RAYTRACING
#include "RHICommandList.h"
#include "RHIResources.h"
class FShaderBindingLayout;
class FViewInfo;
namespace RayTracing
{
// Get shader resource table desc used for all raytracing shaders which is shared between all shaders in the RTPSO
RENDERER_API const FShaderBindingLayout* GetShaderBindingLayout(EShaderPlatform ShaderPlatform);
// Setup the runtime static uniform buffer bindings on the command list if enabled
RENDERER_API TOptional<FScopedUniformBufferStaticBindings> BindStaticUniformBufferBindings(const FViewInfo& View, FRHIUniformBuffer* SceneUniformBuffer, FRHIUniformBuffer* NaniteRayTracingUniformBuffer, FRHICommandList& RHICmdList);
UE_DEPRECATED(5.6, "Must provide NaniteRayTracingUniformBuffer (accessible using Nanite::GetPublicGlobalRayTracingUniformBuffer()).")
inline TOptional<FScopedUniformBufferStaticBindings> BindStaticUniformBufferBindings(const FViewInfo& View, FRHIUniformBuffer* SceneUniformBuffer, FRHICommandList& RHICmdList)
{
return BindStaticUniformBufferBindings(View, SceneUniformBuffer, nullptr, RHICmdList);
}
}
#endif // RHI_RAYTRACING