Castor3D 0.16.0
Multiplatform 3D engine
Fonctions membres publiques | Fonctions membres publiques statiques | Attributs publics | Liste de tous les membres
Référence de la classe castor3d::FrustumClusters

#include <FrustumClusters.hpp>

Graphe de collaboration de castor3d::FrustumClusters:
Collaboration graph
[légende]

Fonctions membres publiques

C3D_API FrustumClusters (FrustumClusters const &)=delete
 
C3D_API FrustumClusters (FrustumClusters &&) noexcept=delete
 
C3D_API FrustumClustersoperator= (FrustumClusters const &)=delete
 
C3D_API FrustumClustersoperator= (FrustumClusters &&) noexcept=delete
 
C3D_API ~FrustumClusters () noexcept=default
 
C3D_API FrustumClusters (RenderDevice const &device, Camera const &camera, ClustersConfig const &config)
 
C3D_API void update (CpuUpdater &updater)
 Mise à jour niveau CPU.
 
C3D_API crg::FramePass const & createFramePasses (crg::FramePassGroup &graph, crg::FramePass const *previousPass, RenderTechnique &technique, CameraUbo const &cameraUbo, RenderNodesPass *&nodesPass)
 Enregistre les passes liées aux clusters.
 
castor::Point3ui const & getDimensions () const noexcept
 
bool const & needsClustersUpdate () const noexcept
 
bool const & needsLightsUpdate () const noexcept
 
auto & getClustersUbo () const noexcept
 
auto & getClustersAABBBuffer () const noexcept
 
auto & getPointLightClusterGridBuffer () const noexcept
 
auto & getSpotLightClusterGridBuffer () const noexcept
 
auto & getPointLightClusterIndexBuffer () const noexcept
 
auto & getSpotLightClusterIndexBuffer () const noexcept
 
auto & getAllLightsAABBBuffer () const noexcept
 
auto & getReducedLightsAABBBuffer () const noexcept
 
auto & getPointLightBVHBuffer () const noexcept
 
auto & getSpotLightBVHBuffer () const noexcept
 
ashes::BufferBase & getPointLightIndicesBuffer (uint32_t index) const noexcept
 
ashes::BufferBase & getSpotLightIndicesBuffer (uint32_t index) const noexcept
 
ashes::BufferBase & getPointLightMortonCodesBuffer (uint32_t index) const noexcept
 
ashes::BufferBase & getSpotLightMortonCodesBuffer (uint32_t index) const noexcept
 
ashes::BufferBase & getInputPointLightIndicesBuffer () const noexcept
 
ashes::BufferBase & getInputSpotLightIndicesBuffer () const noexcept
 
castor::Vector< ashes::BufferBase const * > getOutputPointLightIndicesBuffers () const noexcept
 
castor::Vector< ashes::BufferBase const * > getOutputSpotLightIndicesBuffers () const noexcept
 
castor::Vector< ashes::BufferBase const * > getInputPointLightIndicesBuffers () const noexcept
 
castor::Vector< ashes::BufferBase const * > getInputSpotLightIndicesBuffers () const noexcept
 
ashes::BufferBase & getOutputPointLightIndicesBuffer () const noexcept
 
ashes::BufferBase & getOutputSpotLightIndicesBuffer () const noexcept
 
ashes::BufferBase & getInputPointLightMortonCodesBuffer () const noexcept
 
ashes::BufferBase & getInputSpotLightMortonCodesBuffer () const noexcept
 
castor::Vector< ashes::BufferBase const * > getOutputPointLightMortonCodesBuffers () const noexcept
 
castor::Vector< ashes::BufferBase const * > getOutputSpotLightMortonCodesBuffers () const noexcept
 
castor::Vector< ashes::BufferBase const * > getInputPointLightMortonCodesBuffers () const noexcept
 
castor::Vector< ashes::BufferBase const * > getInputSpotLightMortonCodesBuffers () const noexcept
 
ashes::BufferBase & getOutputPointLightMortonCodesBuffer () const noexcept
 
ashes::BufferBase & getOutputSpotLightMortonCodesBuffer () const noexcept
 
ashes::BufferBase & getMergePathPartitionsBuffer () const noexcept
 
ashes::BufferBase & getClusterFlagsBuffer () const noexcept
 
ashes::BufferBase & getUniqueClustersBuffer () const noexcept
 
ashes::BufferBase & getClustersIndirectBuffer () const noexcept
 
auto & getCamera () const noexcept
 
auto & getConfig () const noexcept
 

Fonctions membres publiques statiques

static C3D_API uint32_t getNumLevelNodes (uint32_t level)
 
static C3D_API uint32_t getNumLevels (uint32_t numLeaves)
 
static C3D_API uint32_t getNumNodes (uint32_t numLeaves)
 

Attributs publics

OnClustersBuffersChanged onClusterBuffersChanged
 

Documentation des constructeurs et destructeur

◆ FrustumClusters() [1/3]

C3D_API castor3d::FrustumClusters::FrustumClusters ( FrustumClusters const & )
delete

◆ FrustumClusters() [2/3]

C3D_API castor3d::FrustumClusters::FrustumClusters ( FrustumClusters && )
deletenoexcept

◆ ~FrustumClusters()

C3D_API castor3d::FrustumClusters::~FrustumClusters ( )
defaultnoexcept

◆ FrustumClusters() [3/3]

C3D_API castor3d::FrustumClusters::FrustumClusters ( RenderDevice const & device,
Camera const & camera,
ClustersConfig const & config )

Documentation des fonctions membres

◆ createFramePasses()

C3D_API crg::FramePass const & castor3d::FrustumClusters::createFramePasses ( crg::FramePassGroup & graph,
crg::FramePass const * previousPass,
RenderTechnique & technique,
CameraUbo const & cameraUbo,
RenderNodesPass *& nodesPass )

Enregistre les passes liées aux clusters.

◆ getAllLightsAABBBuffer()

auto & castor3d::FrustumClusters::getAllLightsAABBBuffer ( ) const
inlinenoexcept

◆ getCamera()

auto & castor3d::FrustumClusters::getCamera ( ) const
inlinenoexcept

◆ getClusterFlagsBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getClusterFlagsBuffer ( ) const
inlinenoexcept

◆ getClustersAABBBuffer()

auto & castor3d::FrustumClusters::getClustersAABBBuffer ( ) const
inlinenoexcept

Références CU_Require.

◆ getClustersIndirectBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getClustersIndirectBuffer ( ) const
inlinenoexcept

◆ getClustersUbo()

auto & castor3d::FrustumClusters::getClustersUbo ( ) const
inlinenoexcept

◆ getConfig()

auto & castor3d::FrustumClusters::getConfig ( ) const
inlinenoexcept

◆ getDimensions()

castor::Point3ui const & castor3d::FrustumClusters::getDimensions ( ) const
inlinenoexcept

◆ getInputPointLightIndicesBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getInputPointLightIndicesBuffer ( ) const
inlinenoexcept

Références getPointLightIndicesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getInputPointLightIndicesBuffers()

castor::Vector< ashes::BufferBase const * > castor3d::FrustumClusters::getInputPointLightIndicesBuffers ( ) const
inlinenoexcept

Références getPointLightIndicesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getInputPointLightMortonCodesBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getInputPointLightMortonCodesBuffer ( ) const
inlinenoexcept

Références getPointLightMortonCodesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getInputPointLightMortonCodesBuffers()

castor::Vector< ashes::BufferBase const * > castor3d::FrustumClusters::getInputPointLightMortonCodesBuffers ( ) const
inlinenoexcept

Références getPointLightMortonCodesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getInputSpotLightIndicesBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getInputSpotLightIndicesBuffer ( ) const
inlinenoexcept

Références getSpotLightIndicesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getInputSpotLightIndicesBuffers()

castor::Vector< ashes::BufferBase const * > castor3d::FrustumClusters::getInputSpotLightIndicesBuffers ( ) const
inlinenoexcept

Références getSpotLightIndicesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getInputSpotLightMortonCodesBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getInputSpotLightMortonCodesBuffer ( ) const
inlinenoexcept

Références getSpotLightMortonCodesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getInputSpotLightMortonCodesBuffers()

castor::Vector< ashes::BufferBase const * > castor3d::FrustumClusters::getInputSpotLightMortonCodesBuffers ( ) const
inlinenoexcept

Références getSpotLightMortonCodesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getMergePathPartitionsBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getMergePathPartitionsBuffer ( ) const
inlinenoexcept

◆ getNumLevelNodes()

static C3D_API uint32_t castor3d::FrustumClusters::getNumLevelNodes ( uint32_t level)
static
Paramètres
[in]levelLe niveau du BVH.
Renvoie
Le nombre de noeuds du niveau donné d'un BVH.

◆ getNumLevels()

static C3D_API uint32_t castor3d::FrustumClusters::getNumLevels ( uint32_t numLeaves)
static
Paramètres
[in]numLeavesLe nombre de noeuds feuilles.
Renvoie
Le nombre de niveaux nécessaire pour un BVH contenant le nombre de noeuds feuille donné.

◆ getNumNodes()

static C3D_API uint32_t castor3d::FrustumClusters::getNumNodes ( uint32_t numLeaves)
static
Paramètres
[in]numLeavesLe nombre de noeuds feuilles.
Renvoie
Le nombre de noeuds (enfants) nécessaire pour un représenter un BVH contenant le nombre de noeuds feuille donné.

◆ getOutputPointLightIndicesBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getOutputPointLightIndicesBuffer ( ) const
inlinenoexcept

Références getPointLightIndicesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getOutputPointLightIndicesBuffers()

castor::Vector< ashes::BufferBase const * > castor3d::FrustumClusters::getOutputPointLightIndicesBuffers ( ) const
inlinenoexcept

Références getPointLightIndicesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getOutputPointLightMortonCodesBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getOutputPointLightMortonCodesBuffer ( ) const
inlinenoexcept

Références getPointLightMortonCodesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getOutputPointLightMortonCodesBuffers()

castor::Vector< ashes::BufferBase const * > castor3d::FrustumClusters::getOutputPointLightMortonCodesBuffers ( ) const
inlinenoexcept

Références getPointLightMortonCodesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getOutputSpotLightIndicesBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getOutputSpotLightIndicesBuffer ( ) const
inlinenoexcept

Références getSpotLightIndicesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getOutputSpotLightIndicesBuffers()

castor::Vector< ashes::BufferBase const * > castor3d::FrustumClusters::getOutputSpotLightIndicesBuffers ( ) const
inlinenoexcept

Références getSpotLightIndicesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getOutputSpotLightMortonCodesBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getOutputSpotLightMortonCodesBuffer ( ) const
inlinenoexcept

Références getSpotLightMortonCodesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getOutputSpotLightMortonCodesBuffers()

castor::Vector< ashes::BufferBase const * > castor3d::FrustumClusters::getOutputSpotLightMortonCodesBuffers ( ) const
inlinenoexcept

Références getSpotLightMortonCodesBuffer().

Voici le graphe d'appel pour cette fonction :

◆ getPointLightBVHBuffer()

auto & castor3d::FrustumClusters::getPointLightBVHBuffer ( ) const
inlinenoexcept

◆ getPointLightClusterGridBuffer()

auto & castor3d::FrustumClusters::getPointLightClusterGridBuffer ( ) const
inlinenoexcept

Références CU_Require.

◆ getPointLightClusterIndexBuffer()

auto & castor3d::FrustumClusters::getPointLightClusterIndexBuffer ( ) const
inlinenoexcept

Références CU_Require.

◆ getPointLightIndicesBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getPointLightIndicesBuffer ( uint32_t index) const
inlinenoexcept

◆ getPointLightMortonCodesBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getPointLightMortonCodesBuffer ( uint32_t index) const
inlinenoexcept

◆ getReducedLightsAABBBuffer()

auto & castor3d::FrustumClusters::getReducedLightsAABBBuffer ( ) const
inlinenoexcept

◆ getSpotLightBVHBuffer()

auto & castor3d::FrustumClusters::getSpotLightBVHBuffer ( ) const
inlinenoexcept

◆ getSpotLightClusterGridBuffer()

auto & castor3d::FrustumClusters::getSpotLightClusterGridBuffer ( ) const
inlinenoexcept

Références CU_Require.

◆ getSpotLightClusterIndexBuffer()

auto & castor3d::FrustumClusters::getSpotLightClusterIndexBuffer ( ) const
inlinenoexcept

Références CU_Require.

◆ getSpotLightIndicesBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getSpotLightIndicesBuffer ( uint32_t index) const
inlinenoexcept

◆ getSpotLightMortonCodesBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getSpotLightMortonCodesBuffer ( uint32_t index) const
inlinenoexcept

◆ getUniqueClustersBuffer()

ashes::BufferBase & castor3d::FrustumClusters::getUniqueClustersBuffer ( ) const
inlinenoexcept

◆ needsClustersUpdate()

bool const & castor3d::FrustumClusters::needsClustersUpdate ( ) const
inlinenoexcept

◆ needsLightsUpdate()

bool const & castor3d::FrustumClusters::needsLightsUpdate ( ) const
inlinenoexcept

◆ operator=() [1/2]

C3D_API FrustumClusters & castor3d::FrustumClusters::operator= ( FrustumClusters && )
deletenoexcept

◆ operator=() [2/2]

C3D_API FrustumClusters & castor3d::FrustumClusters::operator= ( FrustumClusters const & )
delete

◆ update()

C3D_API void castor3d::FrustumClusters::update ( CpuUpdater & updater)

Mise à jour niveau CPU.

Paramètres
[in,out]updaterLes données d'update.

Documentation des données membres

◆ onClusterBuffersChanged

OnClustersBuffersChanged castor3d::FrustumClusters::onClusterBuffersChanged

La documentation de cette classe a été générée à partir du fichier suivant :