Files
UnrealEngine/Engine/Plugins/FX/Niagara/Source/NiagaraShader/Public/NiagaraGPUSceneUtils.h
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

47 lines
1.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "GPUSceneWriter.h"
#include "RHI.h"
#include "RHIDefinitions.h"
#include "NiagaraMeshVertexFactory.h"
#include "SceneView.h"
DECLARE_UNIFORM_BUFFER_STRUCT(FSceneUniformParameters, RENDERER_API)
class FNiagaraGPUSceneUtils
{
public:
BEGIN_SHADER_PARAMETER_STRUCT(FUpdateMeshParticleInstancesParams, NIAGARASHADER_API)
SHADER_PARAMETER_STRUCT_REF(FViewUniformShaderParameters, View)
SHADER_PARAMETER_RDG_UNIFORM_BUFFER(FSceneUniformParameters, Scene)
SHADER_PARAMETER_STRUCT_INCLUDE(FGPUSceneWriterParameters, GPUSceneWriterParameters)
SHADER_PARAMETER_STRUCT_INCLUDE(FNiagaraMeshCommonParameters, Common)
SHADER_PARAMETER(uint32, PrimitiveId)
SHADER_PARAMETER(uint32, ParticleCount)
SHADER_PARAMETER_SRV(Buffer<uint>, GPUParticleCountBuffer)
SHADER_PARAMETER(uint32, GPUParticleCountOffset)
SHADER_PARAMETER(int, MeshIndex)
SHADER_PARAMETER(int, MeshIndexDataOffset)
SHADER_PARAMETER(int, RendererVisibility)
SHADER_PARAMETER(int, VisibilityTagDataOffset)
SHADER_PARAMETER(FVector3f, LocalBoundingCenter)
SHADER_PARAMETER(FVector2f, DistanceCullRangeSquared)
SHADER_PARAMETER(FVector4f, LODScreenSize)
SHADER_PARAMETER(int, bNeedsPrevTransform)
END_SHADER_PARAMETER_STRUCT()
static NIAGARASHADER_API void AddUpdateMeshParticleInstancesPass(
FRDGBuilder& GraphBuilder,
FUpdateMeshParticleInstancesParams& Params,
ERHIFeatureLevel::Type FeatureLevel,
bool bPreciseMotionVectors
);
};