|
C3D_API | ForwardRenderTechniquePass (RenderTechnique *parent, crg::FramePass const &pass, crg::GraphContext &context, crg::RunnableGraph &graph, RenderDevice const &device, castor::String const &typeName, crg::ImageViewIdArray targetImage, crg::ImageViewIdArray targetDepth, RenderNodesPassDesc const &renderPassDesc, RenderTechniquePassDesc const &techniquePassDesc) |
| Constructeur.
|
|
C3D_API void | accept (RenderTechniqueVisitor &visitor) override |
| Fonction d'acceptation de visiteur.
|
|
C3D_API ComponentModeFlags | getComponentsMask () const override |
|
C3D_API void | accept (RenderTechniqueVisitor &visitor) override |
| Fonction d'acceptation de visiteur.
|
|
C3D_API void | update (CpuUpdater &updater) override |
| Met à jour la passe de rendu, au niveau CPU.
|
|
C3D_API PipelineFlags | createPipelineFlags (PassComponentCombine components, BlendMode colourBlendMode, BlendMode alphaBlendMode, RenderPassTypeID renderPassTypeId, LightingModelID lightingModelId, BackgroundModelID backgroundModelId, VkCompareOp alphaFunc, VkCompareOp blendAlphaFunc, TextureCombine const &textures, SubmeshFlags const &submeshFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, bool invertNormals, uint32_t passLayerIndex, GpuBufferOffsetT< castor::Point4f > const &morphTargets) const override |
| Crée les indicateurs de pipeline pour la configuration donnée.
|
|
C3D_API ShaderFlags | getShaderFlags () const override |
|
C3D_API void | countNodes (RenderInfo &info) const override |
| Enregistre les comptes de noeuds dans le RenderInfo donné.
|
|
C3D_API bool | areValidPassFlags (PassComponentCombine const &passFlags) const override |
|
C3D_API bool | isPassEnabled () const override |
|
Engine * | getEngine () const |
|
Scene const & | getScene () const |
|
RenderTechnique const & | getTechnique () const |
|
C3D_API | ~RenderNodesPass () override |
| Destructeur.
|
|
virtual C3D_API void | update (CpuUpdater &updater) |
| Met à jour la passe de rendu, au niveau CPU.
|
|
C3D_API ShaderPtr | getTaskShaderSource (PipelineFlags const &flags) const |
| Récupère le source du task shader qui correspond aux indicateurs donnés.
|
|
C3D_API ShaderPtr | getMeshShaderSource (PipelineFlags const &flags) const |
| Récupère le source du mesh shader qui correspond aux indicateurs donnés.
|
|
C3D_API ShaderPtr | getVertexShaderSource (PipelineFlags const &flags) const |
| Récupère le source du vertex shader qui correspond aux indicateurs donnés.
|
|
C3D_API ShaderPtr | getHullShaderSource (PipelineFlags const &flags) const |
| Récupère le source du hull shader qui correspond aux indicateurs donnés.
|
|
C3D_API ShaderPtr | getDomainShaderSource (PipelineFlags const &flags) const |
| Récupère le source du domain shader qui correspond aux indicateurs donnés.
|
|
C3D_API ShaderPtr | getGeometryShaderSource (PipelineFlags const &flags) const |
| Récupère le source du geometry shader qui correspond aux indicateurs donnés.
|
|
C3D_API ShaderPtr | getPixelShaderSource (PipelineFlags const &flags) const |
| Récupère le source du pixel shader qui correspond aux indicateurs donnés.
|
|
C3D_API SubmeshFlags | adjustFlags (SubmeshFlags flags) const |
| Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.
|
|
C3D_API PassComponentCombine | adjustFlags (PassComponentCombine flags) const |
| Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.
|
|
C3D_API ProgramFlags | adjustFlags (ProgramFlags flags) const |
| Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.
|
|
C3D_API SceneFlags | adjustFlags (SceneFlags flags) const |
| Ajuste les flags donnés pour qu'ils correspondent aux pré-requis de la passe.
|
|
C3D_API TextureCombine | adjustFlags (TextureCombine texturesFlags) const |
| Filtre les indicateurs de textures donnés en utilisant ceux voulus par cette passe.
|
|
C3D_API PipelineFlags | createPipelineFlags (PassComponentCombine components, BlendMode colourBlendMode, BlendMode alphaBlendMode, RenderPassTypeID renderPassTypeId, LightingModelID lightingModelId, BackgroundModelID backgroundModelId, VkCompareOp alphaFunc, VkCompareOp blendAlphaFunc, TextureCombine const &textures, SubmeshFlags const &submeshFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, bool invertNormals, uint32_t passLayerIndex, GpuBufferOffsetT< castor::Point4f > const &morphTargets) const |
| Crée les indicateurs de pipeline pour la configuration donnée.
|
|
C3D_API PipelineFlags | createPipelineFlags (Pass const &pass, TextureCombine const &textures, SubmeshFlags const &submeshFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, GpuBufferOffsetT< castor::Point4f > const &morphTargets) const |
| Crée les indicateurs de pipeline pour la configuration donnée.
|
|
C3D_API RenderPipeline & | prepareBackPipeline (PipelineFlags pipelineFlags, ashes::PipelineVertexInputStateCreateInfoCRefArray const &vertexLayouts, ashes::DescriptorSetLayout const *meshletDescriptorLayout) |
| Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en back face culling.
|
|
C3D_API RenderPipeline & | prepareFrontPipeline (PipelineFlags pipelineFlags, ashes::PipelineVertexInputStateCreateInfoCRefArray const &vertexLayouts, ashes::DescriptorSetLayout const *meshletDescriptorLayout) |
| Prépare le pipeline qui correspond aux indicateurs donnés, pour les noeuds en front face culling.
|
|
C3D_API void | initialiseAdditionalDescriptor (RenderPipeline &pipeline, ShadowMapLightTypeArray const &shadowMaps, GpuBufferOffsetT< castor::Point4f > const &morphTargets) |
| Initialise l'ensemble de descripteurs additionnels.
|
|
C3D_API void | setIgnoredNode (SceneNode const &node) |
| Définit le noeud ignoré.
|
|
C3D_API void | countNodes (RenderInfo &info) const |
| Enregistre les comptes de noeuds dans le RenderInfo donné.
|
|
C3D_API bool | isValidPass (Pass const &pass) const |
|
C3D_API bool | isValidRenderable (RenderedObject const &object) const |
|
C3D_API bool | isValidNode (SceneNode const &node) const |
|
C3D_API bool | hasNodes () const |
|
C3D_API Scene & | getScene () const |
|
C3D_API SceneNode const * | getIgnoredNode () const |
|
C3D_API bool | isMeshShading () const |
|
C3D_API NodePtrByPipelineMapT< SubmeshRenderNode > const & | getSubmeshNodes () const |
|
C3D_API ObjectNodesPtrByPipelineMapT< SubmeshRenderNode > const & | getInstancedSubmeshNodes () const |
|
C3D_API NodePtrByPipelineMapT< BillboardRenderNode > const & | getBillboardNodes () const |
|
C3D_API std::pair< uint32_t, uint32_t > | fillPipelinesIds (castor::ArrayView< uint32_t > nodesPipelinesIds) const |
|
C3D_API PipelineBufferArray const & | getPassPipelineNodes () const |
|
C3D_API uint32_t | getPipelineNodesIndex (PipelineBaseHash const &hash, ashes::BufferBase const &buffer) const |
|
C3D_API uint32_t | getDrawCallsCount () const |
|
bool | isOrderIndependent () const |
|
SceneCuller & | getCuller () const |
|
CameraUbo const & | getMatrixUbo () const |
|
uint32_t | getPipelinesCount () const |
|
bool | isDirty () const |
|
bool | forceTwoSided () const |
|
RenderFilters | getRenderFilters () const |
|
castor::String const & | getTypeName () const |
|
RenderPassTypeID | getTypeID () const |
|
bool | filtersStatic () const |
|
bool | filtersNonStatic () const |
|
bool | handleStatic () const |
|
virtual C3D_API | ~RenderTechniquePass ()=default |
|
virtual C3D_API void | accept (RenderTechniqueVisitor &visitor) |
| Fonction d'acceptation de visiteur.
|
|
virtual C3D_API void | update (CpuUpdater &updater) |
| Met à jour la passe de rendu, au niveau CPU.
|
|
virtual C3D_API PipelineFlags | createPipelineFlags (PassComponentCombine components, BlendMode colourBlendMode, BlendMode alphaBlendMode, RenderPassTypeID renderPassTypeId, LightingModelID lightingModelId, BackgroundModelID backgroundModelId, VkCompareOp alphaFunc, VkCompareOp blendAlphaFunc, TextureCombine const &textures, SubmeshFlags const &submeshFlags, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, bool invertNormals, uint32_t passLayerIndex, GpuBufferOffsetT< castor::Point4f > const &morphTargets) const =0 |
| Crée les indicateurs de pipeline pour la configuration donnée.
|
|
virtual C3D_API bool | areValidPassFlags (PassComponentCombine const &passFlags) const =0 |
|
virtual C3D_API ShaderFlags | getShaderFlags () const =0 |
|
virtual C3D_API void | countNodes (RenderInfo &info) const =0 |
| Enregistre les comptes de noeuds dans le RenderInfo donné.
|
|
virtual C3D_API bool | isPassEnabled () const =0 |
|
C3D_API Engine * | getEngine () const |
|
Scene const & | getScene () |
|
Scene const & | getScene () const |
|
RenderTechnique const & | getTechnique () const |
|
|
static C3D_API ashes::PipelineColorBlendStateCreateInfo | createBlendState (BlendMode colourBlendMode, BlendMode alphaBlendMode, uint32_t attachesCount) |
| Crée un état de mélange correspondant aux modes de mélange donnés.
|
|
PassSortNodesSignal | onSortNodes |
|
C3D_API | RenderTechniqueNodesPass (RenderTechnique *parent, crg::FramePass const &pass, crg::GraphContext &context, crg::RunnableGraph &graph, RenderDevice const &device, castor::String const &typeName, crg::ImageViewIdArray targetImage, crg::ImageViewIdArray targetDepth, RenderNodesPassDesc const &renderPassDesc, RenderTechniquePassDesc const &techniquePassDesc) |
| Constructeur.
|
|
C3D_API ProgramFlags | doAdjustProgramFlags (ProgramFlags flags) const override |
|
C3D_API SceneFlags | doAdjustSceneFlags (SceneFlags flags) const override |
|
C3D_API void | doAddEnvBindings (PipelineFlags const &flags, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
|
C3D_API void | doAddGIBindings (PipelineFlags const &flags, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
|
C3D_API void | doAddPassSpecificsBindings (PipelineFlags const &flags, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
|
C3D_API void | doAddEnvDescriptor (PipelineFlags const &flags, ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const |
|
C3D_API void | doAddGIDescriptor (PipelineFlags const &flags, ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const |
|
C3D_API void | doAddPassSpecificsDescriptor (PipelineFlags const &flags, ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const |
|
C3D_API | RenderNodesPass (crg::FramePass const &pass, crg::GraphContext &context, crg::RunnableGraph &graph, RenderDevice const &device, castor::String const &typeName, crg::ImageViewIdArray targetImage, crg::ImageViewIdArray targetDepth, RenderNodesPassDesc const &desc) |
| Constructeur.
|
|
virtual C3D_API void | doUpdateUbos (CpuUpdater &updater) |
| Met à jour la passe de rendu, au niveau CPU.
|
|
virtual C3D_API void | doFillAdditionalBindings (PipelineFlags const &flags, ashes::VkDescriptorSetLayoutBindingArray &bindings) const =0 |
| Remplit les attaches de layout de descripteurs spécifiques à une passe de rendu.
|
|
virtual C3D_API bool | doIsValidPass (Pass const &pass) const |
|
virtual C3D_API bool | doIsValidRenderable (RenderedObject const &object) const |
|
virtual C3D_API SubmeshFlags | doAdjustSubmeshFlags (SubmeshFlags flags) const |
|
virtual C3D_API ProgramFlags | doAdjustProgramFlags (ProgramFlags flags) const |
|
virtual C3D_API SceneFlags | doAdjustSceneFlags (SceneFlags flags) const |
|
C3D_API ShaderProgramRPtr | doGetProgram (PipelineFlags const &flags, VkCullModeFlags cullMode=VK_CULL_MODE_NONE) |
|
C3D_API void | doUpdateFlags (PipelineFlags &flags) const |
|
C3D_API void | doAddShadowBindings (Scene const &scene, PipelineFlags const &flags, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
|
C3D_API void | doAddBackgroundBindings (Scene const &scene, PipelineFlags const &flags, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
|
C3D_API void | doAddShadowDescriptor (Scene const &scene, PipelineFlags const &flags, ashes::WriteDescriptorSetArray &descriptorWrites, ShadowMapLightTypeArray const &shadowMaps, uint32_t &index) const |
|
C3D_API void | doAddBackgroundDescriptor (Scene const &scene, PipelineFlags const &flags, ashes::WriteDescriptorSetArray &descriptorWrites, crg::ImageViewIdArray const &targetImage, uint32_t &index) const |
|
C3D_API | RenderTechniquePass (RenderTechnique *parent, Scene const &scene) |
| Constructeur.
|
|
Camera * | m_camera { nullptr } |
|
ShaderFlags | m_shaderFlags {} |
|
SsaoConfig | m_ssaoConfig |
|
Texture const * | m_ssao |
|
LpvGridConfigUbo const * | m_lpvConfigUbo |
|
LayeredLpvGridConfigUbo const * | m_llpvConfigUbo |
|
VoxelizerUbo const * | m_vctConfigUbo |
|
LightVolumePassResult const * | m_lpvResult |
|
LightVolumePassResultArray const * | m_llpvResult |
|
Texture const * | m_vctFirstBounce |
|
Texture const * | m_vctSecondaryBounce |
|
RenderDevice const & | m_device |
|
RenderSystem & | m_renderSystem |
|
CameraUbo const & | m_cameraUbo |
|
SceneCuller & | m_culler |
|
crg::ImageViewIdArray | m_targetImage |
|
crg::ImageViewIdArray | m_targetDepth |
|
castor::String | m_typeName |
|
RenderPassTypeID | m_typeID {} |
|
RenderFilters | m_filters { RenderFilter::eNone } |
|
RenderQueueUPtr | m_renderQueue |
|
castor::String | m_category |
|
castor::Size | m_size |
|
bool | m_oit { false } |
|
bool | m_forceTwoSided { false } |
|
bool | m_safeBand { false } |
|
bool | m_isDirty { true } |
|
bool | m_meshShading {} |
|
SceneUbo const * | m_sceneUbo {} |
|
uint32_t | m_index { 0u } |
|
std::optional< bool > | m_handleStatic { std::nullopt } |
|
RenderTechnique * | m_parent {} |
|
Scene const & | m_scene |
|
uint32_t | m_drawCalls {} |
|