Open 3D Engine AtomTressFX Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::Render::Hair::HairFeatureProcessor Class Referencefinal

#include <HairFeatureProcessor.h>

Inherits RPI::FeatureProcessor, HairGlobalSettingsRequestBus::Handler, and AZ::TickBus::Handler.

Public Member Functions

 AZ_RTTI (AZ::Render::Hair::HairFeatureProcessor, "{5F9DDA81-B43F-4E30-9E56-C7C3DC517A4C}", AZ::RPI::FeatureProcessor)
 
void UpdateHairSkinning ()
 
bool Init (RPI::RenderPipeline *pipeline)
 
bool IsInitialized ()
 
void Activate () override
 
void Deactivate () override
 
void AddRenderPasses (RPI::RenderPipeline *renderPipeline) override
 
void Simulate (const FeatureProcessor::SimulatePacket &packet) override
 
void Render (const FeatureProcessor::RenderPacket &packet) override
 
void OnTick (float deltaTime, AZ::ScriptTimePoint time) override
 
int GetTickOrder () override
 
void AddHairRenderObject (Data::Instance< HairRenderObject > renderObject)
 
bool RemoveHairRenderObject (Data::Instance< HairRenderObject > renderObject)
 
void OnRenderPipelineChanged (AZ::RPI::RenderPipeline *pipeline, AZ::RPI::SceneNotification::RenderPipelineChangeType changeType) override
 
Data::Instance< HairSkinningComputePassGetHairSkinningComputegPass ()
 
Data::Instance< HairPPLLRasterPassGetHairPPLLRasterPass ()
 
Data::Instance< RPI::Shader > GetGeometryRasterShader ()
 
void FillHairMaterialsArray (std::vector< const AMD::TressFXRenderParams * > &renderSettings)
 Update the hair objects materials array.
 
Data::Instance< RPI::Buffer > GetPerPixelListBuffer ()
 
HairUniformBuffer< AMD::TressFXShadeParams > & GetMaterialsArray ()
 
void ForceRebuildRenderData ()
 
void SetAddDispatchEnable (bool enable)
 
void SetEnable (bool enable)
 
bool CreatePerPassResources ()
 
void GetHairGlobalSettings (HairGlobalSettings &hairGlobalSettings) override
 
void SetHairGlobalSettings (const HairGlobalSettings &hairGlobalSettings) override
 

Static Public Member Functions

static void Reflect (AZ::ReflectContext *context)
 

Detailed Description

The HairFeatureProcessor (FP) is the glue between the various hair components / entities in the scene and their passes / shaders. The FP will keep track of all active hair objects, will run their skinning update iteration and will then populate them into each of the passes to be computed and rendered. The overall process involves update, skinning, collision, and simulation compute, fragment raster fill, and final frame buffer OIT resolve. The last part can be switched to support the smaller foot print pass version that instead of fragments list (PPLL) will use fill screen buffers to approximate OIT layer resolve.


The documentation for this class was generated from the following file: