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

#include <Pass.hpp>

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

Fonctions membres publiques

C3D_API void initialise ()
 Initialise la passe et toutes ses dépendances. Plus de détails...
 
C3D_API void cleanup ()
 Nettoie la passe et toutes ses dépendances. Plus de détails...
 
C3D_API void update ()
 Met à jour la passe de rendu, au niveau CPU. Plus de détails...
 
C3D_API void registerTexture (TextureSourceInfo sourceInfo, PassTextureConfig configuration)
 Ajoute une texture. Plus de détails...
 
C3D_API void registerTexture (TextureSourceInfo sourceInfo, PassTextureConfig configuration, AnimationUPtr animation)
 Ajoute une texture animée. Plus de détails...
 
C3D_API void unregisterTexture (TextureSourceInfo sourceInfo)
 Supprime une unité de texture. Plus de détails...
 
C3D_API void resetTexture (TextureSourceInfo const &srcSourceInfo, TextureSourceInfo dstSourceInfo)
 Remplace la source d'une texture. Plus de détails...
 
C3D_API void updateConfig (TextureSourceInfo const &sourceInfo, TextureConfiguration configuration)
 Met à jour la configuration d'une texture. Plus de détails...
 
C3D_API TextureUnitSPtr getTextureUnit (uint32_t index) const
 Récupère la TextureUnit à l'index donné. Plus de détails...
 
C3D_API void prepareTextures ()
 Réduit les textures. Plus de détails...
 
virtual C3D_API void setColour (castor::RgbColour const &value)=0
 Définit la couleur basique de la passe. Plus de détails...
 
virtual C3D_API castor::RgbColour const & getColour () const =0
 
C3D_API void setOpacity (float value)
 Définit la valeur alpha globale. Plus de détails...
 
C3D_API PassFlags getPassFlags () const
 
C3D_API void setSubsurfaceScattering (SubsurfaceScatteringUPtr value)
 Définit les informations étendues pour le subsurface scattering. Plus de détails...
 
virtual C3D_API void accept (PassVisitorBase &vis)
 Fonction d'acceptation de PassVisitor. Plus de détails...
 
virtual C3D_API void fillBuffer (PassBuffer &buffer) const =0
 Remplit le pass buffer aves les données de cette passe. Plus de détails...
 
C3D_API void fillSssProfileBuffer (SssProfileBuffer &buffer) const
 Remplit le pass buffer aves les données de cette passe. Plus de détails...
 
virtual C3D_API void fillConfig (TextureConfiguration &config, PassVisitorBase &vis)
 Fonction d'acceptation de PassVisitor, pour une configuration de texture. Plus de détails...
 
virtual C3D_API uint32_t getPassSectionID () const =0
 
virtual C3D_API uint32_t getTextureSectionID () const =0
 
virtual C3D_API bool writeText (castor::String const &tabs, castor::Path const &folder, castor::String const &subfolder, castor::StringStream &file) const =0
 
C3D_API bool needsAlphaProcessing () const
 
C3D_API bool hasAlphaBlending () const
 
C3D_API bool hasOnlyAlphaBlending () const
 
C3D_API bool hasAlphaTest () const
 
C3D_API bool hasBlendAlphaTest () const
 
C3D_API TextureUnitPtrArray getTextureUnits (TextureFlags mask=TextureFlag::eAll) const
 
C3D_API uint32_t getTextureUnitsCount (TextureFlags mask=TextureFlag::eAll) const
 
C3D_API TextureFlagsArray getTexturesMask (TextureFlags mask=TextureFlag::eAll) const
 
TextureSourceMapgetSources ()
 
TextureFlags const & getTextures () const
 
bool hasAutomaticShader () const
 
bool isTwoSided () const
 
bool hasEnvironmentMapping () const
 
float getOpacity () const
 
uint32_t getBWAccumulationOperator () const
 
float getEmissive () const
 
float getRefractionRatio () const
 
BlendMode getAlphaBlendMode () const
 
BlendMode getColourBlendMode () const
 
uint32_t getId () const
 
uint32_t getSssProfileId () const
 
VkCompareOp getAlphaFunc () const
 
float getAlphaValue () const
 
VkCompareOp getBlendAlphaFunc () const
 
castor::RgbColour getTransmission () const
 
bool hasSubsurfaceScattering () const
 
ParallaxOcclusionMode getParallaxOcclusion () const
 
bool hasParallaxOcclusion () const
 
SubsurfaceScattering const & getSubsurfaceScattering () const
 
bool isImplicit () const
 
bool hasReflections () const
 
bool hasRefraction () const
 
bool hasEdges () const
 
uint32_t getHeightTextureIndex () const
 
bool hasLighting () const
 
bool hasIBL () const
 
PassTypeID getTypeID () const
 
float getEdgeWidth () const
 
float getDepthFactor () const
 
float getNormalFactor () const
 
float getObjectFactor () const
 
castor::RgbaColour getEdgeColour () const
 
RenderPassRegisterInfogetRenderPassInfo () const
 
uint32_t getIndex () const
 
uint32_t getMaxTexCoordSet () const
 
auto begin () const
 
auto begin ()
 
auto end () const
 
auto end ()
 
void setTwoSided (bool value)
 
void setEmissive (float const &value)
 
void setRefractionRatio (float value)
 
void setTransmission (castor::RgbColour value)
 
void setParallaxOcclusion (ParallaxOcclusionMode value)
 
void setAlphaBlendMode (BlendMode value)
 
void setColourBlendMode (BlendMode value)
 
void setId (uint32_t value)
 
void setSssProfileId (uint32_t value)
 
void setAlphaFunc (VkCompareOp value)
 
void setAlphaValue (float value)
 
void setBlendAlphaFunc (VkCompareOp value)
 
void setBWAccumulationOperator (uint32_t value)
 
void enableReflections (bool value=true)
 
void enableRefractions (bool value=true)
 
void setImplicit (bool value=true)
 
void enableLighting (bool value)
 
void enablePicking (bool value)
 
void enableEdges (bool value)
 
void setEdgeWidth (float value)
 
void setDepthFactor (float value)
 
void setNormalFactor (float value)
 
void setObjectFactor (float value)
 
void setEdgeColour (castor::RgbaColour const &value)
 

Fonctions membres publiques statiques

static C3D_API void addParser (castor::AttributeParsers &parsers, uint32_t section, castor::String const &name, castor::ParserFunction function, castor::ParserParameterArray &&array=castor::ParserParameterArray{})
 

Attributs publics

OnPassChanged onChanged
 
OnPassChanged onSssProfileChanged
 

Fonctions membres protégées

C3D_API Pass (Material &parent, PassTypeID typeID, PassFlags initialFlags)
 Constructeur. Plus de détails...
 
virtual C3D_API ~Pass ()
 Destructeur. Plus de détails...
 
C3D_API void doMergeImages (TextureFlag lhsFlag, uint32_t lhsMaskOffset, uint32_t lhsDstMask, TextureFlag rhsFlag, uint32_t rhsMaskOffset, uint32_t rhsDstMask, castor::String const &name, TextureUnitPtrArray &result)
 
C3D_API void doJoinDifOpa (TextureUnitPtrArray &result, castor::String const &name)
 
C3D_API void doFillData (PassBuffer::PassDataPtr &data) const
 
virtual C3D_API void doAccept (TextureConfiguration &config, PassVisitorBase &vis)=0
 
virtual C3D_API void doAccept (PassVisitorBase &vis)=0
 

Fonctions membres protégées statiques

static C3D_API void parseError (castor::String const &error)
 
static C3D_API void addCommonParsers (uint32_t mtlSectionID, uint32_t texSectionID, uint32_t remapChannelSectionID, castor::AttributeParsers &result)
 

Attributs protégés

bool m_dirty { true }
 
bool m_sssDirty { true }
 

Documentation des constructeurs et destructeur

◆ Pass()

C3D_API castor3d::Pass::Pass ( Material parent,
PassTypeID  typeID,
PassFlags  initialFlags 
)
explicitprotected

Constructeur.

Paramètres
[in]parentLe matériau parent.
[in]typeIDL'ID du type de la passe.
[in]initialFlagsLes flags hérités du type de passe.

◆ ~Pass()

virtual C3D_API castor3d::Pass::~Pass ( )
protectedvirtual

Destructeur.

Documentation des fonctions membres

◆ accept()

virtual C3D_API void castor3d::Pass::accept ( PassVisitorBase vis)
virtual

Fonction d'acceptation de PassVisitor.

Paramètres
visLe ... visiteur.

◆ addCommonParsers()

static C3D_API void castor3d::Pass::addCommonParsers ( uint32_t  mtlSectionID,
uint32_t  texSectionID,
uint32_t  remapChannelSectionID,
castor::AttributeParsers &  result 
)
staticprotected

◆ addParser()

static C3D_API void castor3d::Pass::addParser ( castor::AttributeParsers &  parsers,
uint32_t  section,
castor::String const &  name,
castor::ParserFunction  function,
castor::ParserParameterArray &&  array = castor::ParserParameterArray{} 
)
static

◆ begin() [1/2]

auto castor3d::Pass::begin ( )
inline

◆ begin() [2/2]

auto castor3d::Pass::begin ( ) const
inline

name Itération sur les textures.

◆ cleanup()

C3D_API void castor3d::Pass::cleanup ( )

Nettoie la passe et toutes ses dépendances.

◆ doAccept() [1/2]

virtual C3D_API void castor3d::Pass::doAccept ( PassVisitorBase vis)
protectedpure virtual

Implémenté dans castor3d::PbrPass, et castor3d::PhongPass.

◆ doAccept() [2/2]

virtual C3D_API void castor3d::Pass::doAccept ( TextureConfiguration config,
PassVisitorBase vis 
)
protectedpure virtual

Implémenté dans castor3d::PbrPass, et castor3d::PhongPass.

◆ doFillData()

C3D_API void castor3d::Pass::doFillData ( PassBuffer::PassDataPtr data) const
protected

◆ doJoinDifOpa()

C3D_API void castor3d::Pass::doJoinDifOpa ( TextureUnitPtrArray &  result,
castor::String const &  name 
)
protected

◆ doMergeImages()

C3D_API void castor3d::Pass::doMergeImages ( TextureFlag  lhsFlag,
uint32_t  lhsMaskOffset,
uint32_t  lhsDstMask,
TextureFlag  rhsFlag,
uint32_t  rhsMaskOffset,
uint32_t  rhsDstMask,
castor::String const &  name,
TextureUnitPtrArray &  result 
)
protected

◆ enableEdges()

void castor3d::Pass::enableEdges ( bool  value)
inline

Références castor3d::eDrawEdge.

◆ enableLighting()

void castor3d::Pass::enableLighting ( bool  value)
inline

Références castor3d::eLighting.

◆ enablePicking()

void castor3d::Pass::enablePicking ( bool  value)
inline

Références castor3d::ePickable.

◆ enableReflections()

void castor3d::Pass::enableReflections ( bool  value = true)
inline

Références castor3d::eReflection.

◆ enableRefractions()

void castor3d::Pass::enableRefractions ( bool  value = true)
inline

Références castor3d::eRefraction.

◆ end() [1/2]

auto castor3d::Pass::end ( )
inline

◆ end() [2/2]

auto castor3d::Pass::end ( ) const
inline

◆ fillBuffer()

virtual C3D_API void castor3d::Pass::fillBuffer ( PassBuffer buffer) const
pure virtual

Remplit le pass buffer aves les données de cette passe.

Paramètres
[in,out]bufferLe pass buffer.

Implémenté dans castor3d::PbrPass, et castor3d::PhongPass.

◆ fillConfig()

virtual C3D_API void castor3d::Pass::fillConfig ( TextureConfiguration config,
PassVisitorBase vis 
)
virtual

Fonction d'acceptation de PassVisitor, pour une configuration de texture.

Paramètres
configLa configuration de texture.
visLe ... visiteur.

◆ fillSssProfileBuffer()

C3D_API void castor3d::Pass::fillSssProfileBuffer ( SssProfileBuffer buffer) const

Remplit le pass buffer aves les données de cette passe.

Paramètres
[in,out]bufferLe pass buffer.

◆ getAlphaBlendMode()

BlendMode castor3d::Pass::getAlphaBlendMode ( ) const
inline

◆ getAlphaFunc()

VkCompareOp castor3d::Pass::getAlphaFunc ( ) const
inline

◆ getAlphaValue()

float castor3d::Pass::getAlphaValue ( ) const
inline

◆ getBlendAlphaFunc()

VkCompareOp castor3d::Pass::getBlendAlphaFunc ( ) const
inline

◆ getBWAccumulationOperator()

uint32_t castor3d::Pass::getBWAccumulationOperator ( ) const
inline

◆ getColour()

virtual C3D_API castor::RgbColour const & castor3d::Pass::getColour ( ) const
pure virtual
Renvoie
La couleur basique de la passe.

Implémenté dans castor3d::PbrPass, et castor3d::PhongPass.

◆ getColourBlendMode()

BlendMode castor3d::Pass::getColourBlendMode ( ) const
inline

◆ getDepthFactor()

float castor3d::Pass::getDepthFactor ( ) const
inline

◆ getEdgeColour()

castor::RgbaColour castor3d::Pass::getEdgeColour ( ) const
inline

◆ getEdgeWidth()

float castor3d::Pass::getEdgeWidth ( ) const
inline

◆ getEmissive()

float castor3d::Pass::getEmissive ( ) const
inline

◆ getHeightTextureIndex()

uint32_t castor3d::Pass::getHeightTextureIndex ( ) const
inline

◆ getId()

uint32_t castor3d::Pass::getId ( ) const
inline

◆ getIndex()

uint32_t castor3d::Pass::getIndex ( ) const
inline

◆ getMaxTexCoordSet()

uint32_t castor3d::Pass::getMaxTexCoordSet ( ) const
inline

◆ getNormalFactor()

float castor3d::Pass::getNormalFactor ( ) const
inline

◆ getObjectFactor()

float castor3d::Pass::getObjectFactor ( ) const
inline

◆ getOpacity()

float castor3d::Pass::getOpacity ( ) const
inline

◆ getParallaxOcclusion()

ParallaxOcclusionMode castor3d::Pass::getParallaxOcclusion ( ) const
inline

◆ getPassFlags()

C3D_API PassFlags castor3d::Pass::getPassFlags ( ) const
Renvoie
La combinaison d'indicateurs de passe.

◆ getPassSectionID()

virtual C3D_API uint32_t castor3d::Pass::getPassSectionID ( ) const
pure virtual
Renvoie
L'ID de section de fichier de scène, utilisé pour le type effectif de la passe.

Implémenté dans castor3d::PbrPass, castor3d::BlinnPhongPass, et castor3d::PhongPass.

◆ getRefractionRatio()

float castor3d::Pass::getRefractionRatio ( ) const
inline

◆ getRenderPassInfo()

RenderPassRegisterInfo * castor3d::Pass::getRenderPassInfo ( ) const
inline

◆ getSources()

TextureSourceMap & castor3d::Pass::getSources ( )
inline

◆ getSssProfileId()

uint32_t castor3d::Pass::getSssProfileId ( ) const
inline

◆ getSubsurfaceScattering()

SubsurfaceScattering const & castor3d::Pass::getSubsurfaceScattering ( ) const
inline

◆ getTextures()

TextureFlags const & castor3d::Pass::getTextures ( ) const
inline

◆ getTextureSectionID()

virtual C3D_API uint32_t castor3d::Pass::getTextureSectionID ( ) const
pure virtual
Renvoie
L'ID de section de fichier de scène, utilisé pour le type effectif des textures de la passe.

Implémenté dans castor3d::PbrPass, castor3d::BlinnPhongPass, et castor3d::PhongPass.

◆ getTexturesMask()

C3D_API TextureFlagsArray castor3d::Pass::getTexturesMask ( TextureFlags  mask = TextureFlag::eAll) const

◆ getTextureUnit()

C3D_API TextureUnitSPtr castor3d::Pass::getTextureUnit ( uint32_t  index) const

Récupère la TextureUnit à l'index donné.

Paramètres
[in]indexL'index voulu.
Renvoie
nullptr si index était hors bornes.

◆ getTextureUnits()

C3D_API TextureUnitPtrArray castor3d::Pass::getTextureUnits ( TextureFlags  mask = TextureFlag::eAll) const

◆ getTextureUnitsCount()

C3D_API uint32_t castor3d::Pass::getTextureUnitsCount ( TextureFlags  mask = TextureFlag::eAll) const

◆ getTransmission()

castor::RgbColour castor3d::Pass::getTransmission ( ) const
inline

◆ getTypeID()

PassTypeID castor3d::Pass::getTypeID ( ) const
inline

◆ hasAlphaBlending()

C3D_API bool castor3d::Pass::hasAlphaBlending ( ) const

Référencé par setAlphaBlendMode().

Voici le graphe des appelants de cette fonction :

◆ hasAlphaTest()

C3D_API bool castor3d::Pass::hasAlphaTest ( ) const

Référencé par setAlphaFunc().

Voici le graphe des appelants de cette fonction :

◆ hasAutomaticShader()

bool castor3d::Pass::hasAutomaticShader ( ) const
inline

◆ hasBlendAlphaTest()

C3D_API bool castor3d::Pass::hasBlendAlphaTest ( ) const

Référencé par setBlendAlphaFunc().

Voici le graphe des appelants de cette fonction :

◆ hasEdges()

bool castor3d::Pass::hasEdges ( ) const
inline

Références castor3d::eDrawEdge.

◆ hasEnvironmentMapping()

bool castor3d::Pass::hasEnvironmentMapping ( ) const
inline

◆ hasIBL()

bool castor3d::Pass::hasIBL ( ) const
inline

◆ hasLighting()

bool castor3d::Pass::hasLighting ( ) const
inline

Références castor3d::eLighting.

◆ hasOnlyAlphaBlending()

C3D_API bool castor3d::Pass::hasOnlyAlphaBlending ( ) const

◆ hasParallaxOcclusion()

bool castor3d::Pass::hasParallaxOcclusion ( ) const
inline

Références castor3d::eNone.

◆ hasReflections()

bool castor3d::Pass::hasReflections ( ) const
inline

Références castor3d::eReflection.

◆ hasRefraction()

bool castor3d::Pass::hasRefraction ( ) const
inline

Références castor3d::eRefraction.

◆ hasSubsurfaceScattering()

bool castor3d::Pass::hasSubsurfaceScattering ( ) const
inline

◆ initialise()

C3D_API void castor3d::Pass::initialise ( )

Initialise la passe et toutes ses dépendances.

◆ isImplicit()

bool castor3d::Pass::isImplicit ( ) const
inline

◆ isTwoSided()

bool castor3d::Pass::isTwoSided ( ) const
inline

◆ needsAlphaProcessing()

C3D_API bool castor3d::Pass::needsAlphaProcessing ( ) const

name Accesseurs.

◆ parseError()

static C3D_API void castor3d::Pass::parseError ( castor::String const &  error)
staticprotected

◆ prepareTextures()

C3D_API void castor3d::Pass::prepareTextures ( )

Réduit les textures.

◆ registerTexture() [1/2]

C3D_API void castor3d::Pass::registerTexture ( TextureSourceInfo  sourceInfo,
PassTextureConfig  configuration 
)

Ajoute une texture.

Paramètres
[in]sourceInfoLa source de la texture.
[in]configurationLa configuration de la texture.

◆ registerTexture() [2/2]

C3D_API void castor3d::Pass::registerTexture ( TextureSourceInfo  sourceInfo,
PassTextureConfig  configuration,
AnimationUPtr  animation 
)

Ajoute une texture animée.

Paramètres
[in]sourceInfoLa source de la texture.
[in]configurationLa configuration de la texture.
[in]animationL'animation de la texture.

◆ resetTexture()

C3D_API void castor3d::Pass::resetTexture ( TextureSourceInfo const &  srcSourceInfo,
TextureSourceInfo  dstSourceInfo 
)

Remplace la source d'une texture.

Paramètres
[in]srcSourceInfoLa source d'origine de la texture.
[in]dstSourceInfoLa source de remplacement de la texture.

◆ setAlphaBlendMode()

void castor3d::Pass::setAlphaBlendMode ( BlendMode  value)
inline

Références castor3d::eAlphaBlending, et hasAlphaBlending().

Voici le graphe d'appel pour cette fonction :

◆ setAlphaFunc()

void castor3d::Pass::setAlphaFunc ( VkCompareOp  value)
inline

Références castor3d::eAlphaTest, et hasAlphaTest().

Voici le graphe d'appel pour cette fonction :

◆ setAlphaValue()

void castor3d::Pass::setAlphaValue ( float  value)
inline

◆ setBlendAlphaFunc()

void castor3d::Pass::setBlendAlphaFunc ( VkCompareOp  value)
inline

Références castor3d::eBlendAlphaTest, et hasBlendAlphaTest().

Voici le graphe d'appel pour cette fonction :

◆ setBWAccumulationOperator()

void castor3d::Pass::setBWAccumulationOperator ( uint32_t  value)
inline

◆ setColour()

virtual C3D_API void castor3d::Pass::setColour ( castor::RgbColour const &  value)
pure virtual

Définit la couleur basique de la passe.

Paramètres
[in]valueLa nouvelle valeur.

Implémenté dans castor3d::PbrPass, et castor3d::PhongPass.

◆ setColourBlendMode()

void castor3d::Pass::setColourBlendMode ( BlendMode  value)
inline

◆ setDepthFactor()

void castor3d::Pass::setDepthFactor ( float  value)
inline

◆ setEdgeColour()

void castor3d::Pass::setEdgeColour ( castor::RgbaColour const &  value)
inline

◆ setEdgeWidth()

void castor3d::Pass::setEdgeWidth ( float  value)
inline

◆ setEmissive()

void castor3d::Pass::setEmissive ( float const &  value)
inline

◆ setId()

void castor3d::Pass::setId ( uint32_t  value)
inline

◆ setImplicit()

void castor3d::Pass::setImplicit ( bool  value = true)
inline

◆ setNormalFactor()

void castor3d::Pass::setNormalFactor ( float  value)
inline

◆ setObjectFactor()

void castor3d::Pass::setObjectFactor ( float  value)
inline

◆ setOpacity()

C3D_API void castor3d::Pass::setOpacity ( float  value)

Définit la valeur alpha globale.

Paramètres
[in]valueLa nouvelle valeur.

◆ setParallaxOcclusion()

void castor3d::Pass::setParallaxOcclusion ( ParallaxOcclusionMode  value)
inline

◆ setRefractionRatio()

void castor3d::Pass::setRefractionRatio ( float  value)
inline

◆ setSssProfileId()

void castor3d::Pass::setSssProfileId ( uint32_t  value)
inline

◆ setSubsurfaceScattering()

C3D_API void castor3d::Pass::setSubsurfaceScattering ( SubsurfaceScatteringUPtr  value)

Définit les informations étendues pour le subsurface scattering.

Paramètres
[in]valueLa nouvelle valeur.

◆ setTransmission()

void castor3d::Pass::setTransmission ( castor::RgbColour  value)
inline

◆ setTwoSided()

void castor3d::Pass::setTwoSided ( bool  value)
inline

name Mutateurs.

◆ unregisterTexture()

C3D_API void castor3d::Pass::unregisterTexture ( TextureSourceInfo  sourceInfo)

Supprime une unité de texture.

Paramètres
[in]sourceInfoLa source de la texture.

◆ update()

C3D_API void castor3d::Pass::update ( )

Met à jour la passe de rendu, au niveau CPU.

◆ updateConfig()

C3D_API void castor3d::Pass::updateConfig ( TextureSourceInfo const &  sourceInfo,
TextureConfiguration  configuration 
)

Met à jour la configuration d'une texture.

Paramètres
[in]sourceInfoLa source de la texture.
[in]configurationLa nouvelle configuration de la texture.

◆ writeText()

virtual C3D_API bool castor3d::Pass::writeText ( castor::String const &  tabs,
castor::Path const &  folder,
castor::String const &  subfolder,
castor::StringStream &  file 
) const
pure virtual

Implémenté dans castor3d::PbrPass, et castor3d::PhongPass.

Documentation des données membres

◆ m_dirty

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

◆ m_sssDirty

bool castor3d::Pass::m_sssDirty { true }
protected

◆ onChanged

OnPassChanged castor3d::Pass::onChanged

◆ onSssProfileChanged

OnPassChanged castor3d::Pass::onSssProfileChanged

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