Files
UnrealEngine/Engine/Plugins/FX/Niagara/Shaders/Private/Stateless/NiagaraStatelessSimulationDefault.usf
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

94 lines
5.2 KiB
HLSL

// Copyright Epic Games, Inc. All Rights Reserved.
#include "/Plugin/FX/Niagara/Private/NiagaraQuaternionUtils.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/NiagaraStatelessCommon.ush"
// Defines all paricles attributes
// - PARTICLE_ATTRIBUTE_OUTPUT - Defines an output variable
// - PARTICLE_ATTRIBUTE_OUTPUT_IMPLICIT - Defines an output variable which is already part of the main particle payload (i.e. always present)
// - PARTICLE_ATTRIBUTE_TRANSIENT - Defines an output that is temporary and not output
#define PARTICLE_ATTRIBUTES \
PARTICLE_ATTRIBUTE_OUTPUT_IMPLICIT(int, UniqueID) \
PARTICLE_ATTRIBUTE_OUTPUT_IMPLICIT(float, MaterialRandom) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, Position) \
PARTICLE_ATTRIBUTE_OUTPUT(float, CameraOffset) \
PARTICLE_ATTRIBUTE_OUTPUT(float4, Color) \
PARTICLE_ATTRIBUTE_OUTPUT(float4, DynamicMaterialParameter) \
PARTICLE_ATTRIBUTE_OUTPUT(float4, DynamicMaterialParameter1) \
PARTICLE_ATTRIBUTE_OUTPUT(float4, DynamicMaterialParameter2) \
PARTICLE_ATTRIBUTE_OUTPUT(float4, DynamicMaterialParameter3) \
PARTICLE_ATTRIBUTE_OUTPUT(int, MeshIndex) \
PARTICLE_ATTRIBUTE_OUTPUT(float4, MeshOrientation) \
PARTICLE_ATTRIBUTE_OUTPUT(float, RibbonWidth) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, Scale) \
PARTICLE_ATTRIBUTE_OUTPUT(float2, SpriteSize) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, SpriteFacing) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, SpriteAlignment) \
PARTICLE_ATTRIBUTE_OUTPUT(float, SpriteRotation) \
PARTICLE_ATTRIBUTE_OUTPUT(float, SubImageIndex) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, Velocity) \
PARTICLE_ATTRIBUTE_OUTPUT(float, PreviousCameraOffset) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, PreviousPosition) \
PARTICLE_ATTRIBUTE_OUTPUT(float4, PreviousMeshOrientation) \
PARTICLE_ATTRIBUTE_OUTPUT(float, PreviousRibbonWidth) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, PreviousScale) \
PARTICLE_ATTRIBUTE_OUTPUT(float2, PreviousSpriteSize) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, PreviousSpriteFacing) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, PreviousSpriteAlignment) \
PARTICLE_ATTRIBUTE_OUTPUT(float, PreviousSpriteRotation) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, PreviousVelocity) \
// Defines modules and order of execution
#define PARTICLE_MODULES \
/* Initializer Modules */ \
PARTICLE_MODULE(InitializeParticle) \
PARTICLE_MODULE(InitialMeshOrientation) \
PARTICLE_MODULE(ShapeLocation) \
/* Before Solve */ \
PARTICLE_MODULE(Null) /* AddVelocity */ \
PARTICLE_MODULE(Null) /* AccelerationForce */ \
PARTICLE_MODULE(Null) /* CurlNoiseForce */ \
PARTICLE_MODULE(Null) /* Drag */ \
PARTICLE_MODULE(Null) /* GravityForce */ \
PARTICLE_MODULE(SolveVelocitiesAndForces) \
/* Post Solve */ \
PARTICLE_MODULE(CameraOffset) \
PARTICLE_MODULE(Null) /* DecalAttributes */ \
PARTICLE_MODULE(DynamicMaterialParameters) \
PARTICLE_MODULE(Null) /* LightAttributes */ \
PARTICLE_MODULE(MeshIndex) \
PARTICLE_MODULE(MeshRotationRate) \
PARTICLE_MODULE(ScaleColor) \
PARTICLE_MODULE(ScaleRibbonWidth) \
PARTICLE_MODULE(ScaleSpriteSize) \
PARTICLE_MODULE(ScaleSpriteSizeBySpeed) \
PARTICLE_MODULE(ScaleMeshSize) \
PARTICLE_MODULE(ScaleMeshSizeBySpeed) \
PARTICLE_MODULE(SpriteFacingAndAlignment) \
PARTICLE_MODULE(SpriteRotationRate) \
PARTICLE_MODULE(SubUVAnimation) \
#include "/Plugin/FX/Niagara/Private/Stateless/Template/GenerateCS_PreModules.ush"
//#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_CalculateAccurateVelocity.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_CameraOffset.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_DynamicMaterialParameters.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_InitializeParticle.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_InitialMeshOrientation.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_MeshIndex.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_MeshRotationRate.ush"
//#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_RotateAroundPoint.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_ShapeLocation.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_ScaleColor.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_ScaleRibbonWidth.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_ScaleSpriteSize.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_ScaleSpriteSizeBySpeed.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_ScaleMeshSize.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_ScaleMeshSizebySpeed.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_SolveVelocitiesAndForces.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_SpriteFacingAndAlignment.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_SpriteRotationRate.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Modules/NiagaraStatelessModule_SubUVAnimation.ush"
#include "/Plugin/FX/Niagara/Private/Stateless/Template/GenerateCS_PostModules.ush"