Castor3D 0.16.0
Multiplatform 3D engine
|
#include <FrustumClusters.hpp>
Public Member Functions | |
C3D_API | FrustumClusters (FrustumClusters const &)=delete |
C3D_API | FrustumClusters (FrustumClusters &&) noexcept=delete |
C3D_API FrustumClusters & | operator= (FrustumClusters const &)=delete |
C3D_API FrustumClusters & | operator= (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) |
CPU side update. | |
C3D_API crg::FramePass const & | createFramePasses (crg::FramePassGroup &graph, crg::FramePass const *previousPass, RenderTechnique &technique, CameraUbo const &cameraUbo, RenderNodesPass *&nodesPass) |
Registers the clusters related frame passes. | |
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 |
Static Public Member Functions | |
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) |
Public Attributes | |
OnClustersBuffersChanged | onClusterBuffersChanged |
|
delete |
|
deletenoexcept |
|
defaultnoexcept |
C3D_API castor3d::FrustumClusters::FrustumClusters | ( | RenderDevice const & | device, |
Camera const & | camera, | ||
ClustersConfig const & | config ) |
C3D_API crg::FramePass const & castor3d::FrustumClusters::createFramePasses | ( | crg::FramePassGroup & | graph, |
crg::FramePass const * | previousPass, | ||
RenderTechnique & | technique, | ||
CameraUbo const & | cameraUbo, | ||
RenderNodesPass *& | nodesPass ) |
Registers the clusters related frame passes.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
References CU_Require.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
static |
[in] | level | The BVH level. |
|
static |
[in] | numLeaves | The number of leaf nodes. |
|
static |
[in] | numLeaves | The number of leaf nodes. |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
References CU_Require.
|
inlinenoexcept |
References CU_Require.
|
inlinenoexcept |
Referenced by getInputPointLightIndicesBuffer(), getInputPointLightIndicesBuffers(), getOutputPointLightIndicesBuffer(), and getOutputPointLightIndicesBuffers().
|
inlinenoexcept |
Referenced by getInputPointLightMortonCodesBuffer(), getInputPointLightMortonCodesBuffers(), getOutputPointLightMortonCodesBuffer(), and getOutputPointLightMortonCodesBuffers().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
References CU_Require.
|
inlinenoexcept |
References CU_Require.
|
inlinenoexcept |
Referenced by getInputSpotLightIndicesBuffer(), getInputSpotLightIndicesBuffers(), getOutputSpotLightIndicesBuffer(), and getOutputSpotLightIndicesBuffers().
|
inlinenoexcept |
Referenced by getInputSpotLightMortonCodesBuffer(), getInputSpotLightMortonCodesBuffers(), getOutputSpotLightMortonCodesBuffer(), and getOutputSpotLightMortonCodesBuffers().
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
deletenoexcept |
|
delete |
C3D_API void castor3d::FrustumClusters::update | ( | CpuUpdater & | updater | ) |
CPU side update.
[in,out] | updater | The update data. |
OnClustersBuffersChanged castor3d::FrustumClusters::onClusterBuffersChanged |