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

#include <Light.hpp>

Graphe d'héritage de castor3d::Light:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::Light:
Collaboration graph
[légende]

Fonctions membres publiques

C3D_API Light (castor::String const &name, Scene &scene, SceneNode &node, LightFactory &factory, LightType lightType)
 Constructeur.
 
C3D_API void update (CpuUpdater &updater)
 Mise à jour CPU.
 
C3D_API void fillLightBuffer (uint32_t index, VkDeviceSize offset, castor::Point4f *data)
 Enregistre les données de la source lumineuse dans le tampon donné.
 
C3D_API void fillShadowBuffer (AllShadowData &data)
 Enregistre les données de la source lumineuse dans le tampon donné.
 
C3D_API void accept (ConfigurationVisitorBase &vis)
 Fonction d'acceptation de ConfigurationVisitorBase.
 
C3D_API DirectionalLightRPtr getDirectionalLight () const
 
C3D_API PointLightRPtr getPointLight () const
 
C3D_API SpotLightRPtr getSpotLight () const
 
LightType getLightType () const
 
uint32_t getLightComponentCount () const
 
uint32_t getShadowComponentCount () const
 
bool isEnabled () const
 
castor::Point3f const & getColour () const
 
castor::Point2f const & getIntensity () const
 
float getFarPlane () const
 
float getDiffuseIntensity () const
 
float getSpecularIntensity () const
 
castor::BoundingBox const & getBoundingBox () const
 
LightCategoryRPtr getCategory () const
 
bool isShadowProducer () const
 
bool isExpectedShadowProducer () const
 
ShadowType getShadowType () const
 
ShadowMapRPtr getShadowMap () const
 
int32_t getShadowMapIndex () const
 
uint32_t getBufferIndex () const
 
VkDeviceSize getBufferOffset () const
 
bool needsRsmShadowMaps () const
 
GlobalIlluminationType getGlobalIlluminationType () const
 
GlobalIlluminationType getExpectedGlobalIlluminationType () const
 
LpvConfig const & getLpvConfig () const
 
LpvConfiggetLpvConfig ()
 
uint32_t getVolumetricSteps () const
 
float getVolumetricScatteringFactor () const
 
castor::Point2f const & getShadowRawOffsets () const
 
castor::Point2f const & getShadowPcfOffsets () const
 
float getVsmMinVariance () const
 
float getVsmLightBleedingReduction () const
 
castor::RangedValue< uint32_t > getShadowPcfFilterSize () const
 
castor::RangedValue< uint32_t > getShadowPcfSampleCount () const
 
ShadowConfig const & getShadowConfig () const
 
ShadowConfiggetShadowConfig ()
 
void setColour (float const *values)
 
void setColour (float r, float g, float b)
 
void setColour (castor::Point3f const &value)
 
void setColour (castor::RgbColour const &value)
 
void setIntensity (float const *values)
 
void setIntensity (float d, float s)
 
void setIntensity (castor::Point2f const &value)
 
void setDiffuseIntensity (float value)
 
void setSpecularIntensity (float value)
 
void setEnabled (bool value)
 
void enable ()
 
void disable ()
 
void setShadowConfig (ShadowConfig config)
 
void setShadowMapIndex (int32_t index)
 
void setShadowMap (ShadowMapRPtr value, int32_t index=-1)
 
void setGlobalIlluminationType (GlobalIlluminationType value)
 
void setShadowType (ShadowType value)
 
void setVolumetricSteps (uint32_t value)
 
void setVolumetricScatteringFactor (float value)
 
void setRawMinOffset (float value)
 
void setRawMaxSlopeOffset (float value)
 
void setPcfMinOffset (float value)
 
void setPcfMaxSlopeOffset (float value)
 
void setPcfFilterSize (uint32_t value)
 
void setPcfSampleCount (uint32_t value)
 
void setVsmMinVariance (float value)
 
void setVsmLightBleedingReduction (float value)
 
- Fonctions membres publiques hérités de castor3d::MovableObject
C3D_API MovableObject (castor::String const &name, Scene &scene, MovableType type, SceneNode &node)
 Constructeur.
 
C3D_API MovableObject (castor::String const &name, Scene &scene, MovableType type)
 Constructeur.
 
virtual C3D_API ~MovableObject () noexcept
 Destructeur.
 
C3D_API void detach ()
 Détache l'objet de son parent.
 
virtual C3D_API void attachTo (SceneNode &node)
 Attache l'object à un noeud.
 
C3D_API void markDirty ()
 Ajout l'objet à la liste des objets à mettre à jour de la scène.
 
C3D_API EngineRPtr getEngine () const noexcept
 
SceneNodegetParent () const noexcept
 
MovableType getMovableType () const noexcept
 
- Fonctions membres publiques hérités de castor::OwnedBy< Scene >
Scene * getOwner () const
 L'objet propriétaire.
 
- Fonctions membres publiques hérités de castor::NamedBaseT< T >
 NamedBaseT (T name) noexcept
 Constructeur.
 
T const & getName () const noexcept
 Récupère le nom.
 
void rename (T name) noexcept
 

Attributs publics

OnLightChanged onGPUChanged
 

Attributs protégés

bool m_enabled {}
 
std::atomic_bool m_currentShadowCaster {}
 
bool m_dirty { true }
 
ShadowConfig m_shadows
 
LightCategoryUPtr m_category
 
ShadowMapRPtr m_shadowMap {}
 
int32_t m_shadowMapIndex { -1 }
 
std::atomic< GlobalIlluminationTypem_currentGlobalIllumination {}
 
uint32_t m_bufferIndex { InvalidIndex }
 
VkDeviceSize m_bufferOffset {}
 
- Attributs protégés hérités de castor3d::MovableObject
MovableType m_type
 
SceneNodem_sceneNode {}
 
OnSceneNodeChangedConnection m_notifyIndex
 
- Attributs protégés hérités de castor::NamedBaseT< T >
m_name
 

Membres hérités additionnels

- Fonctions membres protégées hérités de castor::OwnedBy< Scene >
 OwnedBy (Scene &owner)
 Constructeur.
 

Documentation des constructeurs et destructeur

◆ Light()

C3D_API castor3d::Light::Light ( castor::String const & name,
Scene & scene,
SceneNode & node,
LightFactory & factory,
LightType lightType )

Constructeur.

Paramètres
[in]nameLe nom de la lumière.
[in]sceneLa scène parente.
[in]nodeLe scene node parent.
[in]factoryLa fabrique de LightCategory.
[in]lightTypeLe type de lumière.

Documentation des fonctions membres

◆ accept()

C3D_API void castor3d::Light::accept ( ConfigurationVisitorBase & vis)

Fonction d'acceptation de ConfigurationVisitorBase.

Paramètres
visLe ... visiteur.

◆ disable()

void castor3d::Light::disable ( )
inline

Références setEnabled().

Voici le graphe d'appel pour cette fonction :

◆ enable()

void castor3d::Light::enable ( )
inline

Références setEnabled().

Voici le graphe d'appel pour cette fonction :

◆ fillLightBuffer()

C3D_API void castor3d::Light::fillLightBuffer ( uint32_t index,
VkDeviceSize offset,
castor::Point4f * data )

Enregistre les données de la source lumineuse dans le tampon donné.

Paramètres
[in]indexL'index de la source lumineuse dans le buffer.
[in]offsetL'offset des données de la source lumineuse dans le buffer.
[out]dataReçoit les informations.

◆ fillShadowBuffer()

C3D_API void castor3d::Light::fillShadowBuffer ( AllShadowData & data)

Enregistre les données de la source lumineuse dans le tampon donné.

Paramètres
[out]dataReçoit les informations.

◆ getBoundingBox()

castor::BoundingBox const & castor3d::Light::getBoundingBox ( ) const
inline

Références m_category.

◆ getBufferIndex()

uint32_t castor3d::Light::getBufferIndex ( ) const
inline

Références m_bufferIndex.

◆ getBufferOffset()

VkDeviceSize castor3d::Light::getBufferOffset ( ) const
inline

Références m_bufferOffset.

◆ getCategory()

LightCategoryRPtr castor3d::Light::getCategory ( ) const
inline

Références m_category.

◆ getColour()

castor::Point3f const & castor3d::Light::getColour ( ) const
inline

Références m_category.

◆ getDiffuseIntensity()

float castor3d::Light::getDiffuseIntensity ( ) const
inline

Références m_category.

◆ getDirectionalLight()

C3D_API DirectionalLightRPtr castor3d::Light::getDirectionalLight ( ) const

name Accesseurs.

◆ getExpectedGlobalIlluminationType()

GlobalIlluminationType castor3d::Light::getExpectedGlobalIlluminationType ( ) const
inline

◆ getFarPlane()

float castor3d::Light::getFarPlane ( ) const
inline

Références m_category.

◆ getGlobalIlluminationType()

GlobalIlluminationType castor3d::Light::getGlobalIlluminationType ( ) const
inline

Références m_currentGlobalIllumination.

Référencé par needsRsmShadowMaps().

Voici le graphe des appelants de cette fonction :

◆ getIntensity()

castor::Point2f const & castor3d::Light::getIntensity ( ) const
inline

Références m_category.

◆ getLightComponentCount()

uint32_t castor3d::Light::getLightComponentCount ( ) const
inline

Références m_category.

◆ getLightType()

LightType castor3d::Light::getLightType ( ) const
inline

Références m_category.

◆ getLpvConfig() [1/2]

LpvConfig & castor3d::Light::getLpvConfig ( )
inline

◆ getLpvConfig() [2/2]

LpvConfig const & castor3d::Light::getLpvConfig ( ) const
inline

◆ getPointLight()

C3D_API PointLightRPtr castor3d::Light::getPointLight ( ) const

◆ getShadowComponentCount()

uint32_t castor3d::Light::getShadowComponentCount ( ) const
inline

Références m_category.

◆ getShadowConfig() [1/2]

ShadowConfig & castor3d::Light::getShadowConfig ( )
inline

Références m_shadows.

◆ getShadowConfig() [2/2]

ShadowConfig const & castor3d::Light::getShadowConfig ( ) const
inline

Références m_shadows.

◆ getShadowMap()

ShadowMapRPtr castor3d::Light::getShadowMap ( ) const
inline

Références m_shadowMap.

◆ getShadowMapIndex()

int32_t castor3d::Light::getShadowMapIndex ( ) const
inline

Références m_shadowMapIndex.

◆ getShadowPcfFilterSize()

castor::RangedValue< uint32_t > castor3d::Light::getShadowPcfFilterSize ( ) const
inline

◆ getShadowPcfOffsets()

castor::Point2f const & castor3d::Light::getShadowPcfOffsets ( ) const
inline

◆ getShadowPcfSampleCount()

castor::RangedValue< uint32_t > castor3d::Light::getShadowPcfSampleCount ( ) const
inline

◆ getShadowRawOffsets()

castor::Point2f const & castor3d::Light::getShadowRawOffsets ( ) const
inline

◆ getShadowType()

ShadowType castor3d::Light::getShadowType ( ) const
inline

◆ getSpecularIntensity()

float castor3d::Light::getSpecularIntensity ( ) const
inline

Références m_category.

◆ getSpotLight()

C3D_API SpotLightRPtr castor3d::Light::getSpotLight ( ) const

◆ getVolumetricScatteringFactor()

float castor3d::Light::getVolumetricScatteringFactor ( ) const
inline

◆ getVolumetricSteps()

uint32_t castor3d::Light::getVolumetricSteps ( ) const
inline

◆ getVsmLightBleedingReduction()

float castor3d::Light::getVsmLightBleedingReduction ( ) const
inline

◆ getVsmMinVariance()

float castor3d::Light::getVsmMinVariance ( ) const
inline

◆ isEnabled()

bool castor3d::Light::isEnabled ( ) const
inline

Références m_enabled.

◆ isExpectedShadowProducer()

bool castor3d::Light::isExpectedShadowProducer ( ) const
inline

◆ isShadowProducer()

bool castor3d::Light::isShadowProducer ( ) const
inline

Références m_currentShadowCaster.

◆ needsRsmShadowMaps()

bool castor3d::Light::needsRsmShadowMaps ( ) const
inline

Références castor3d::eNone, castor3d::eVoxelConeTracing, et getGlobalIlluminationType().

Voici le graphe d'appel pour cette fonction :

◆ setColour() [1/4]

void castor3d::Light::setColour ( castor::Point3f const & value)
inline

Références m_category.

◆ setColour() [2/4]

void castor3d::Light::setColour ( castor::RgbColour const & value)
inline

Références m_category.

◆ setColour() [3/4]

void castor3d::Light::setColour ( float const * values)
inline

name Mutateurs.

Références m_category.

◆ setColour() [4/4]

void castor3d::Light::setColour ( float r,
float g,
float b )
inline

Références m_category.

◆ setDiffuseIntensity()

void castor3d::Light::setDiffuseIntensity ( float value)
inline

Références m_category.

◆ setEnabled()

void castor3d::Light::setEnabled ( bool value)
inline

Références m_enabled.

Référencé par disable(), et enable().

Voici le graphe des appelants de cette fonction :

◆ setGlobalIlluminationType()

void castor3d::Light::setGlobalIlluminationType ( GlobalIlluminationType value)
inline

Références castor3d::ShadowConfig::globalIllumination, m_shadows, et castor3d::MovableObject::markDirty().

Voici le graphe d'appel pour cette fonction :

◆ setIntensity() [1/3]

void castor3d::Light::setIntensity ( castor::Point2f const & value)
inline

Références m_category.

◆ setIntensity() [2/3]

void castor3d::Light::setIntensity ( float const * values)
inline

Références m_category.

◆ setIntensity() [3/3]

void castor3d::Light::setIntensity ( float d,
float s )
inline

Références m_category.

◆ setPcfFilterSize()

void castor3d::Light::setPcfFilterSize ( uint32_t value)
inline

◆ setPcfMaxSlopeOffset()

void castor3d::Light::setPcfMaxSlopeOffset ( float value)
inline

◆ setPcfMinOffset()

void castor3d::Light::setPcfMinOffset ( float value)
inline

◆ setPcfSampleCount()

void castor3d::Light::setPcfSampleCount ( uint32_t value)
inline

◆ setRawMaxSlopeOffset()

void castor3d::Light::setRawMaxSlopeOffset ( float value)
inline

◆ setRawMinOffset()

void castor3d::Light::setRawMinOffset ( float value)
inline

◆ setShadowConfig()

void castor3d::Light::setShadowConfig ( ShadowConfig config)
inline

Références m_shadows, et castor3d::MovableObject::markDirty().

Voici le graphe d'appel pour cette fonction :

◆ setShadowMap()

void castor3d::Light::setShadowMap ( ShadowMapRPtr value,
int32_t index = -1 )
inline

◆ setShadowMapIndex()

void castor3d::Light::setShadowMapIndex ( int32_t index)
inline

Références m_shadowMapIndex, et onGPUChanged.

◆ setShadowType()

void castor3d::Light::setShadowType ( ShadowType value)
inline

◆ setSpecularIntensity()

void castor3d::Light::setSpecularIntensity ( float value)
inline

Références m_category.

◆ setVolumetricScatteringFactor()

void castor3d::Light::setVolumetricScatteringFactor ( float value)
inline

◆ setVolumetricSteps()

void castor3d::Light::setVolumetricSteps ( uint32_t value)
inline

◆ setVsmLightBleedingReduction()

void castor3d::Light::setVsmLightBleedingReduction ( float value)
inline

◆ setVsmMinVariance()

void castor3d::Light::setVsmMinVariance ( float value)
inline

◆ update()

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

Mise à jour CPU.

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

Documentation des données membres

◆ m_bufferIndex

uint32_t castor3d::Light::m_bufferIndex { InvalidIndex }
protected

Référencé par getBufferIndex().

◆ m_bufferOffset

VkDeviceSize castor3d::Light::m_bufferOffset {}
protected

Référencé par getBufferOffset().

◆ m_category

LightCategoryUPtr castor3d::Light::m_category
protected

◆ m_currentGlobalIllumination

std::atomic< GlobalIlluminationType > castor3d::Light::m_currentGlobalIllumination {}
protected

Référencé par getGlobalIlluminationType().

◆ m_currentShadowCaster

std::atomic_bool castor3d::Light::m_currentShadowCaster {}
protected

Référencé par isShadowProducer().

◆ m_dirty

bool castor3d::Light::m_dirty { true }
protected

◆ m_enabled

bool castor3d::Light::m_enabled {}
protected

Référencé par isEnabled(), et setEnabled().

◆ m_shadowMap

ShadowMapRPtr castor3d::Light::m_shadowMap {}
protected

Référencé par getShadowMap(), et setShadowMap().

◆ m_shadowMapIndex

int32_t castor3d::Light::m_shadowMapIndex { -1 }
protected

◆ m_shadows

ShadowConfig castor3d::Light::m_shadows
protected

◆ onGPUChanged

OnLightChanged castor3d::Light::onGPUChanged

Référencé par setShadowMap(), et setShadowMapIndex().


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