|
C3D_API void | accept (RenderTechniqueVisitor &visitor) override |
| Visitor acceptance function.
|
|
C3D_API void | update (CpuUpdater &updater) override |
| Updates the render pass, CPU wise.
|
|
C3D_API PipelineFlags | createPipelineFlags (PassComponentCombine const &passComponents, SubmeshComponentCombine const &submeshComponents, BlendMode colourBlendMode, BlendMode alphaBlendMode, RenderPassTypeID renderPassTypeId, LightingModelID lightingModelId, BackgroundModelID backgroundModelId, VkCompareOp alphaFunc, VkCompareOp blendAlphaFunc, TextureCombine const &textures, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, uint32_t passLayerIndex, GpuBufferOffsetT< castor::Point4f > const &morphTargets, SubmeshRenderData *submeshData) const override |
| Creates the pipeline flags for given configuration.
|
|
C3D_API ShaderFlags | getShaderFlags () const noexcept override |
|
C3D_API void | countNodes (RenderInfo &info) const noexcept override |
| Registers nodes counts to given RenderInfo.
|
|
C3D_API bool | areValidPassFlags (PassComponentCombine const &passFlags) const noexcept override |
|
C3D_API bool | isPassEnabled () const noexcept override |
|
|
Engine * | getEngine () const noexcept |
|
Scene const & | getScene () const noexcept |
|
RenderTechnique const & | getTechnique () const noexcept |
|
DebugConfig & | getDebugConfig () const noexcept |
|
ClustersConfig const * | getClustersConfig () const noexcept override |
|
bool | hasSsao () const noexcept override |
|
bool | areDebugTargetsEnabled () const noexcept override |
|
C3D_API | ~RenderNodesPass () noexcept override |
| Destructor.
|
|
C3D_API void | getSubmeshShaderSource (PipelineFlags const &flags, ast::ShaderBuilder &builder) const |
| Retrieves the geometry shader source matching the given flags.
|
|
C3D_API void | getPixelShaderSource (PipelineFlags const &flags, ast::ShaderBuilder &builder) const |
| Retrieves the pixel shader source matching the given flags.
|
|
C3D_API void | forceAdjustFlags (PipelineFlags &flags) const |
| Adjusts given flags to match the render pass requirements.
|
|
C3D_API SubmeshComponentCombine | adjustFlags (SubmeshComponentCombine const &submeshCombine) const |
| Adjusts given flags to match the render pass requirements.
|
|
C3D_API PassComponentCombine | adjustFlags (PassComponentCombine const &passCombine) const |
| Adjusts given flags to match the render pass requirements.
|
|
C3D_API ProgramFlags | adjustFlags (ProgramFlags flags) const |
| Adjusts given flags to match the render pass requirements.
|
|
C3D_API SceneFlags | adjustFlags (SceneFlags flags) const |
| Adjusts given flags to match the render pass requirements.
|
|
C3D_API TextureCombine | adjustFlags (TextureCombine const &textureCombine) const |
| Filters the given textures flags using this pass needed textures.
|
|
C3D_API PipelineFlags | createPipelineFlags (PassComponentCombine const &passComponents, SubmeshComponentCombine const &submeshComponents, BlendMode colourBlendMode, BlendMode alphaBlendMode, RenderPassTypeID renderPassTypeId, LightingModelID lightingModelId, BackgroundModelID backgroundModelId, VkCompareOp alphaFunc, VkCompareOp blendAlphaFunc, TextureCombine const &textures, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, uint32_t passLayerIndex, GpuBufferOffsetT< castor::Point4f > const &morphTargets, SubmeshRenderData const *submeshData) const noexcept |
| Creates the pipeline flags for given configuration.
|
|
C3D_API PipelineFlags | createPipelineFlags (Pass const &pass, TextureCombine const &textures, SubmeshComponentCombine const &submeshComponents, ProgramFlags const &programFlags, SceneFlags const &sceneFlags, VkPrimitiveTopology topology, bool isFrontCulled, GpuBufferOffsetT< castor::Point4f > const &morphTargets, SubmeshRenderData const *submeshData) const noexcept |
| Creates the pipeline flags for given configuration.
|
|
C3D_API PipelineAndID | prepareBackPipeline (PipelineFlags const &pipelineFlags, ashes::PipelineVertexInputStateCreateInfoCRefArray const &vertexLayouts, ashes::DescriptorSetLayout const *meshletDescriptorLayout) |
| Prepares the pipeline matching the given flags, for back face culling nodes.
|
|
C3D_API PipelineAndID | prepareFrontPipeline (PipelineFlags const &pipelineFlags, ashes::PipelineVertexInputStateCreateInfoCRefArray const &vertexLayouts, ashes::DescriptorSetLayout const *meshletDescriptorLayout) |
| Prepares the pipeline matching the given flags, for front face culling nodes.
|
|
C3D_API void | cleanupPipelines () |
| Cleans up all pipelines from the lists.
|
|
C3D_API void | initialiseAdditionalDescriptor (RenderPipeline &pipeline, ShadowMapLightTypeArray const &shadowMaps, ShadowBuffer const *shadowBuffer) |
| Initialises the additional descriptor set.
|
|
C3D_API void | setIgnoredNode (SceneNode const &node) |
| Sets the node ignored node.
|
|
C3D_API void | countNodes (RenderInfo &info) const noexcept |
| Registers nodes counts to given RenderInfo.
|
|
C3D_API bool | areValidPassFlags (PassComponentCombine const &passFlags) const noexcept |
|
C3D_API bool | isValidPass (Pass const &pass) const noexcept |
|
C3D_API bool | isValidRenderable (RenderedObject const &object) const noexcept |
|
C3D_API bool | isValidNode (SceneNode const &node) const noexcept |
|
C3D_API bool | allowClusteredLighting (ClustersConfig const &config) const noexcept |
|
C3D_API bool | hasNodes () const noexcept |
|
C3D_API Scene & | getScene () const noexcept |
|
C3D_API SceneNode const * | getIgnoredNode () const noexcept |
|
C3D_API bool | isMeshShading () const noexcept |
|
C3D_API PipelinesNodesT< SubmeshRenderNode > const & | getSubmeshNodes () const |
|
C3D_API InstantiatedPipelinesNodesT< SubmeshRenderNode > const & | getInstancedSubmeshNodes () const |
|
C3D_API PipelinesNodesT< BillboardRenderNode > const & | getBillboardNodes () const |
|
C3D_API uint32_t | getMaxPipelineId () 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 |
|
C3D_API RenderCounts const & | getVisibleCounts () const |
|
ComponentModeFlags | getComponentsMask () const noexcept |
|
bool | isOrderIndependent () const noexcept |
|
SceneCuller & | getCuller () const noexcept |
|
CameraUbo const & | getMatrixUbo () const noexcept |
|
uint32_t | getPipelinesCount () const noexcept |
|
bool | isDirty () const noexcept |
|
bool | forceTwoSided () const noexcept |
|
RenderFilters | getRenderFilters () const noexcept |
|
castor::String const & | getTypeName () const noexcept |
|
RenderPassTypeID | getTypeID () const noexcept |
|
bool | filtersStatic () const noexcept |
|
bool | filtersNonStatic () const noexcept |
|
bool | handleStatic () const noexcept |
|
DeferredLightingFilter | getDeferredLightingFilter () const noexcept |
|
ParallaxOcclusionFilter | getParallaxOcclusionFilter () const noexcept |
|
Engine * | getOwner () const |
|
| NamedBaseT (T name) noexcept |
| Constructor.
|
|
T const & | getName () const noexcept |
| Retrieves the name.
|
|
void | rename (T name) noexcept |
|
virtual C3D_API | ~RenderTechniquePass () noexcept=default |
|
C3D_API Engine * | getEngine () const noexcept |
|
C3D_API IndirectLightingData const & | getIndirectLighting () const noexcept |
|
C3D_API DebugConfig & | getDebugConfig () const noexcept |
|
C3D_API bool | areDebugTargetsEnabled () const noexcept |
|
Scene const & | getScene () noexcept |
|
Scene const & | getScene () const noexcept |
|
RenderTechnique const & | getTechnique () const noexcept |
|
|
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) |
| Constructor.
|
|
C3D_API void | doAccept (castor3d::RenderTechniqueVisitor &visitor) override |
| Visitor acceptance function.
|
|
C3D_API ProgramFlags | doAdjustProgramFlags (ProgramFlags flags) const override |
|
C3D_API SceneFlags | doAdjustSceneFlags (SceneFlags flags) const override |
|
C3D_API void | doAddEnvBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
|
C3D_API void | doAddGIBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
|
C3D_API void | doAddPassSpecificsBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
|
C3D_API void | doAddEnvDescriptor (ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const |
|
C3D_API void | doAddGIDescriptor (ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const |
|
C3D_API void | doAddPassSpecificsDescriptor (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) |
| Constructor.
|
|
virtual C3D_API void | doUpdateUbos (CpuUpdater &updater) |
| Updates the render pass, CPU wise.
|
|
virtual C3D_API bool | doIsValidPass (Pass const &pass) const noexcept |
|
virtual C3D_API bool | doIsValidRenderable (RenderedObject const &object) const noexcept |
|
virtual C3D_API SubmeshComponentCombine | doAdjustSubmeshComponents (SubmeshComponentCombine submeshCombine) const |
|
C3D_API ShaderProgramRPtr | doGetProgram (PipelineFlags const &flags) |
|
C3D_API void | doAccept (castor3d::RenderTechniqueVisitor &visitor) |
| Visitor acceptance function.
|
|
C3D_API void | doUpdateFlags (PipelineFlags &flags) const |
|
C3D_API void | doAddShadowBindings (Scene const &scene, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
|
C3D_API void | doAddBackgroundBindings (Scene const &scene, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
|
C3D_API void | doAddClusteredLightingBindings (RenderTarget const &target, ashes::VkDescriptorSetLayoutBindingArray &bindings, uint32_t &index) const |
|
C3D_API void | doAddShadowDescriptor (Scene const &scene, ashes::WriteDescriptorSetArray &descriptorWrites, ShadowMapLightTypeArray const &shadowMaps, ShadowBuffer const *shadowBuffer, uint32_t &index) const |
|
C3D_API void | doAddBackgroundDescriptor (Scene const &scene, ashes::WriteDescriptorSetArray &descriptorWrites, crg::ImageViewIdArray const &targetImage, uint32_t &index) const |
|
C3D_API void | doAddClusteredLightingDescriptor (RenderTarget const &target, ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) const |
|
RenderQueue & | getRenderQueue () const noexcept |
|
| OwnedBy (Engine &owner) |
| Constructor.
|
|
C3D_API | RenderTechniquePass (RenderTechnique *parent, Scene const &scene, bool outputScattering) |
| Constructor.
|
|
|
static C3D_API ashes::PipelineColorBlendStateCreateInfo | createBlendState (BlendMode colourBlendMode, BlendMode alphaBlendMode, uint32_t attachesCount) |
|
static C3D_API void | addShadowBindings (SceneFlags const &sceneFlags, ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index) |
| Adds shadow maps descriptor layout bindings to given list.
|
|
static C3D_API void | addShadowBindings (ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index) |
| Adds shadow maps descriptor layout bindings to given list.
|
|
static C3D_API void | addBackgroundBindings (SceneBackground const &background, ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index) |
| Adds background descriptor layout bindings to given list.
|
|
static C3D_API void | addGIBindings (SceneFlags flags, IndirectLightingData const &indirectLighting, ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index) |
| Adds indirect lighting descriptor layout bindings to given list.
|
|
static C3D_API void | addClusteredLightingBindings (FrustumClusters const &frustumClusters, ashes::VkDescriptorSetLayoutBindingArray &bindings, VkShaderStageFlags shaderStages, uint32_t &index) |
| Adds clusters descriptor layout bindings to given list.
|
|
static C3D_API void | addShadowDescriptor (RenderSystem const &renderSystem, crg::RunnableGraph &graph, ashes::WriteDescriptorSetArray &descriptorWrites, ShadowMapLightTypeArray const &shadowMaps, ShadowBuffer const &shadowBuffer, uint32_t &index) |
|
static C3D_API void | addShadowDescriptor (RenderSystem const &renderSystem, crg::RunnableGraph &graph, SceneFlags const &sceneFlags, ashes::WriteDescriptorSetArray &descriptorWrites, ShadowMapLightTypeArray const &shadowMaps, ShadowBuffer const &shadowBuffer, uint32_t &index) |
|
static C3D_API void | addBackgroundDescriptor (SceneBackground const &background, ashes::WriteDescriptorSetArray &descriptorWrites, crg::ImageViewIdArray const &targetImage, uint32_t &index) |
|
static C3D_API void | addGIDescriptor (SceneFlags sceneFlags, IndirectLightingData const &indirectLighting, ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) |
|
static C3D_API void | addClusteredLightingDescriptor (FrustumClusters const &frustumClusters, ashes::WriteDescriptorSetArray &descriptorWrites, uint32_t &index) |
|
RenderNodesPassChangeSignal | onSortNodes |
|