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::HairPPLLRasterPass Class Reference

#include <HairPPLLRasterPass.h>

Inherits AZ::Render::Hair::HairGeometryRasterPass.

Public Member Functions

 AZ_RTTI (HairPPLLRasterPass, "{6614D7DD-24EE-4A2B-B314-7C035E2FB3C4}", HairGeometryRasterPass)
 
 AZ_CLASS_ALLOCATOR (HairPPLLRasterPass, SystemAllocator)
 
- Public Member Functions inherited from AZ::Render::Hair::HairGeometryRasterPass
 AZ_RTTI (HairGeometryRasterPass, "{0F07360A-A286-4060-8C62-137AFFA50561}", RasterPass)
 
 AZ_CLASS_ALLOCATOR (HairGeometryRasterPass, SystemAllocator)
 
bool AddDrawPackets (AZStd::list< Data::Instance< HairRenderObject > > &hairObjects)
 
void SchedulePacketBuild (HairRenderObject *hairObject)
 The following will be called when an object was added or shader has been compiled.
 
Data::Instance< RPI::Shader > GetShader ()
 
void SetFeatureProcessor (HairFeatureProcessor *featureProcessor)
 
virtual bool IsEnabled () const override
 

Static Public Member Functions

static RPI::Ptr< HairPPLLRasterPassCreate (const RPI::PassDescriptor &descriptor)
 Creates a HairPPLLRasterPass.
 
- Static Public Member Functions inherited from AZ::Render::Hair::HairGeometryRasterPass
static RPI::Ptr< HairGeometryRasterPassCreate (const RPI::PassDescriptor &descriptor)
 Creates a HairGeometryRasterPass.
 

Protected Member Functions

 HairPPLLRasterPass (const RPI::PassDescriptor &descriptor)
 
- Protected Member Functions inherited from AZ::Render::Hair::HairGeometryRasterPass
 HairGeometryRasterPass (const RPI::PassDescriptor &descriptor)
 
void OnShaderReinitialized (const RPI::Shader &shader) override
 
void OnShaderAssetReinitialized (const Data::Asset< RPI::ShaderAsset > &shaderAsset) override
 
void OnShaderVariantReinitialized (const AZ::RPI::ShaderVariant &shaderVariant) override
 
void SetShaderPath (const char *shaderPath)
 
bool LoadShaderAndPipelineState ()
 
bool AcquireFeatureProcessor ()
 
void BuildShaderAndRenderData ()
 
bool BuildDrawPacket (HairRenderObject *hairObject)
 
void CompileResources (const RHI::FrameGraphCompileContext &context) override
 

Additional Inherited Members

- Protected Attributes inherited from AZ::Render::Hair::HairGeometryRasterPass
HairFeatureProcessorm_featureProcessor = nullptr
 
Data::Instance< RPI::Shader > m_shader = nullptr
 
AZStd::string m_shaderPath = "dummyShaderPath"
 
RPI::PassDescriptor m_passDescriptor
 
const RHI::PipelineState * m_pipelineState = nullptr
 
RPI::ViewPtr m_currentView = nullptr
 
AZStd::mutex m_mutex
 
AZStd::unordered_set< HairRenderObject * > m_newRenderObjects
 
bool m_initialized = false
 

Detailed Description

A HairPPLLRasterPass is used for the hair fragments fill render after the data went through the skinning and simulation passes. The output of this pass is the general list of fragment data that can now be traversed for depth resolve and lighting. The Fill pass uses the following Srgs:

  • PerPassSrg shared by all hair passes for the shared dynamic buffer and the PPLL buffers
  • PerMaterialSrg - used solely by this pass to alter the vertices and apply the visual hair properties to each fragment.
  • HairDynamicDataSrg (PerObjectSrg) - shared buffers views for this hair object only.
  • PerViewSrg and PerSceneSrg - as per the data from Atom.

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