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

46 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
/*=============================================================================
RaytracingOptions.h declares ray tracing options for use in rendering
=============================================================================*/
#pragma once
#include "UniformBuffer.h"
#include "RenderGraph.h"
#include "SceneRendering.h"
BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT(FSkyLightData, RENDERER_API)
SHADER_PARAMETER(uint32, SamplesPerPixel)
SHADER_PARAMETER(float, MaxRayDistance)
SHADER_PARAMETER(float, MaxNormalBias)
SHADER_PARAMETER(float, MaxShadowThickness)
SHADER_PARAMETER(int, bTransmission)
END_GLOBAL_SHADER_PARAMETER_STRUCT()
BEGIN_SHADER_PARAMETER_STRUCT(FWritableSkyLightVisibilityRaysData, )
SHADER_PARAMETER_RDG_BUFFER_UAV(RWStructuredBuffer<SkyLightVisibilityRays>, OutSkyLightVisibilityRays)
SHADER_PARAMETER(FIntVector, SkyLightVisibilityRaysDimensions)
END_SHADER_PARAMETER_STRUCT()
BEGIN_SHADER_PARAMETER_STRUCT(FSkyLightVisibilityRaysData, )
SHADER_PARAMETER_RDG_BUFFER_SRV(StructuredBuffer<SkyLightVisibilityRays>, SkyLightVisibilityRays)
SHADER_PARAMETER(FIntVector, SkyLightVisibilityRaysDimensions)
END_SHADER_PARAMETER_STRUCT()
#if RHI_RAYTRACING
int32 GetRayTracingSkyLightDecoupleSampleGenerationCVarValue();
class FPathTracingSkylight;
bool SetupSkyLightParameters(
FRDGBuilder& GraphBuilder, FScene* Scene, const FViewInfo& View,
bool bEnableSkylight,
FPathTracingSkylight* SkylightParameters,
FSkyLightData* SkyLight);
void SetupSkyLightVisibilityRaysParameters(FRDGBuilder& GraphBuilder, const FViewInfo& View, FSkyLightVisibilityRaysData* OutSkyLightVisibilityRaysData);
#endif // RHI_RAYTRACING