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

#include <HairGeometryRasterPass.h>

Inherits RPI::RasterPass, and RPI::ShaderReloadNotificationBus::Handler.

Inherited by AZ::Render::Hair::HairPPLLRasterPass, AZ::Render::Hair::HairShortCutGeometryDepthAlphaPass, and AZ::Render::Hair::HairShortCutGeometryShadingPass.

Public Member Functions

 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< HairGeometryRasterPassCreate (const RPI::PassDescriptor &descriptor)
 Creates a HairGeometryRasterPass.
 

Protected Member Functions

 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
 

Protected Attributes

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 HairGeometryRasterPass is used for the render of the hair geometries. This is the base class that can be inherited - for example by the HiarPPLLRasterPass and have only the specific class data handling added on top.

Member Data Documentation

◆ m_newRenderObjects

AZStd::unordered_set<HairRenderObject*> AZ::Render::Hair::HairGeometryRasterPass::m_newRenderObjects
protected

List of new render objects introduced this frame so that their in order to identify that their PerObject (dynamic) Srg needs binding to the resources. Done once per every new object introduced / requires update.


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