Files
UnrealEngine/Engine/Plugins/FX/Niagara/Shaders/Private/Stateless/NiagaraStatelessSimulationExample1.usf
2025-05-18 13:04:45 +08:00

48 lines
2.3 KiB
HLSL

// Copyright Epic Games, Inc. All Rights Reserved.
// 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, UniqueIndex) \
PARTICLE_ATTRIBUTE_OUTPUT_IMPLICIT(float, MaterialRandom) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, Position) \
PARTICLE_ATTRIBUTE_OUTPUT(float4, Color) \
PARTICLE_ATTRIBUTE_OUTPUT(float, RibbonWidth) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, Scale) \
PARTICLE_ATTRIBUTE_OUTPUT(float2, SpriteSize) \
PARTICLE_ATTRIBUTE_OUTPUT(float, SpriteRotation) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, Velocity) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, PreviousPosition) \
PARTICLE_ATTRIBUTE_OUTPUT(float, PreviousRibbonWidth) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, PreviousScale) \
PARTICLE_ATTRIBUTE_OUTPUT(float2, PreviousSpriteSize) \
PARTICLE_ATTRIBUTE_OUTPUT(float, PreviousSpriteRotation) \
PARTICLE_ATTRIBUTE_OUTPUT(float3, PreviousVelocity) \
PARTICLE_ATTRIBUTE_TRANSIENT(float, CameraOffset) \
PARTICLE_ATTRIBUTE_TRANSIENT(float4, DynamicMaterialParameter0) \
PARTICLE_ATTRIBUTE_TRANSIENT(float4, DynamicMaterialParameter1) \
PARTICLE_ATTRIBUTE_TRANSIENT(float4, DynamicMaterialParameter2) \
PARTICLE_ATTRIBUTE_TRANSIENT(float4, DynamicMaterialParameter3) \
PARTICLE_ATTRIBUTE_TRANSIENT(int, MeshIndex) \
PARTICLE_ATTRIBUTE_TRANSIENT(float4, MeshOrientation) \
PARTICLE_ATTRIBUTE_TRANSIENT(float3, SpriteFacing) \
PARTICLE_ATTRIBUTE_TRANSIENT(float3, SpriteAlignment) \
PARTICLE_ATTRIBUTE_TRANSIENT(float, SubImageIndex) \
PARTICLE_ATTRIBUTE_TRANSIENT(float, PreviousCameraOffset) \
PARTICLE_ATTRIBUTE_TRANSIENT(float4, PreviousMeshOrientation) \
PARTICLE_ATTRIBUTE_TRANSIENT(float3, PreviousSpriteFacing) \
PARTICLE_ATTRIBUTE_TRANSIENT(float3, PreviousSpriteAlignment) \
// Defines modules and order of execution
#define PARTICLE_MODULES \
PARTICLE_MODULE(InitializeParticle) \
PARTICLE_MODULE(ShapeLocation) \
PARTICLE_MODULE(ScaleColor) \
PARTICLE_MODULE(ScaleSpriteSize) \
PARTICLE_MODULE(RotateAroundPoint) \
PARTICLE_MODULE(CalculateAccurateVelocity) \
#include "NiagaraStatelessSimulationTemplate.ush"