![]() |
OGRE
1.12.12
Object-Oriented Graphics Rendering Engine
|
High-level Material-System. More...
Classes | |
class | Ogre::DefaultProperties |
class | Ogre::HlmsDatablock |
class | Ogre::HlmsManager |
class | Ogre::HlmsMaterialBase |
class | Ogre::PbsMaterial |
struct | Ogre::PbsMaterial::TextureAddressing |
class | Ogre::PropertyMap |
struct | Ogre::PropertyMap::Property |
class | Ogre::ShaderGenerator |
class | Ogre::ShaderManager |
class | Ogre::ShaderPiecesManager |
class | Ogre::ShaderTemplate |
Typedefs | |
typedef std::vector< std::pair< IdString, String > > | Ogre::HlmsParamVec |
Functions | |
Ogre::ShaderGenerator::Expression::Expression () | |
Ogre::HlmsDatablock::HlmsDatablock (GpuProgramType type, PropertyMap *propertyMap) | |
Ogre::HlmsManager::HlmsManager (SceneManager *sceneManager, const String &pieseFilesResorceGroup=ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME) | |
Ogre::HlmsMaterialBase::HlmsMaterialBase () | |
Ogre::PbsMaterial::PbsMaterial () | |
Ogre::PbsMaterial::PbsMaterial (const PbsMaterial &obj) | |
Ogre::PropertyMap::Property::Property (IdString _keyName, int32 _value) | |
Ogre::PropertyMap::PropertyMap () | |
Ogre::PbsMaterial::SamplerContainer::SamplerContainer () | |
Ogre::ShaderManager::ShaderManager (const String &pieseFilesResorceGroup) | |
Ogre::ShaderPiecesManager::ShaderPiecesManager (const String &pieceFilesResorceGroup) | |
Ogre::ShaderTemplate::ShaderTemplate () | |
Ogre::PbsMaterial::TextureAddressing::TextureAddressing () | |
Ogre::PbsMaterial::TextureAddressing::TextureAddressing (TextureAddressingMode inU, TextureAddressingMode inV) | |
virtual | Ogre::HlmsManager::~HlmsManager () |
virtual | Ogre::HlmsMaterialBase::~HlmsMaterialBase () |
virtual | Ogre::PbsMaterial::~PbsMaterial () |
virtual | Ogre::PropertyMap::~PropertyMap () |
Ogre::ShaderManager::~ShaderManager () | |
void | Ogre::HlmsDatablock::addProfile (const String &profile) |
void | Ogre::HlmsManager::bind (Renderable *rend, HlmsMaterialBase *material, const String &passName) |
uint32 | Ogre::calcHash (const void *data, size_t size) |
uint32 | Ogre::calcHash (const String &str) |
uint32 | Ogre::calcHash (const StringVector &vec) |
static GpuProgramPtr | Ogre::ShaderManager::createGpuProgram (const String &name, const String &code, HlmsDatablock *dataBlock) |
virtual void | Ogre::HlmsMaterialBase::createTextureUnits (Pass *pass) |
this is called once per frame if the shader has changed. (it is guaranteed that there are not texture units in the pass) More... | |
void | Ogre::PbsMaterial::createTextureUnits (Pass *pass) |
this is called once per frame if the shader has changed. (it is guaranteed that there are not texture units in the pass) More... | |
void | Ogre::ShaderPiecesManager::enumeratePieceFiles () |
ColourValue | Ogre::PbsMaterial::getAlbedo () |
ColourValue | Ogre::PbsMaterial::getF0 () |
HlmsDatablock * | Ogre::HlmsMaterialBase::getFragmentDatablock () |
GpuProgramPtr | Ogre::ShaderManager::getGpuProgram (HlmsDatablock *dataBlock) |
uint32 | Ogre::ShaderTemplate::getHash () |
uint32 | Ogre::HlmsDatablock::getHash () |
uint32 | Ogre::PropertyMap::getHash () |
const String & | Ogre::HlmsDatablock::getLanguage () |
Real | Ogre::PbsMaterial::getLightRoughnessOffset () |
const StringVector & | Ogre::ShaderPiecesManager::getPieces (const String &language, GpuProgramType shaderType, bool reload=false) |
const StringVector & | Ogre::HlmsDatablock::getProfileList () |
int32 | Ogre::PropertyMap::getProperty (IdString key, int32 defaultVal=0) |
PropertyMap * | Ogre::HlmsDatablock::getPropertyMap () |
PropertyMap & | Ogre::HlmsMaterialBase::getPropertyMap () |
Real | Ogre::PbsMaterial::getRoughness () |
GpuProgramType | Ogre::HlmsDatablock::getShaderType () |
const String & | Ogre::ShaderTemplate::getTemplate () |
ShaderTemplate * | Ogre::HlmsDatablock::getTemplate () |
const String & | Ogre::ShaderTemplate::getTemplateFileName () |
HlmsDatablock * | Ogre::HlmsMaterialBase::getVertexDatablock () |
bool | Ogre::HlmsManager::hasBinding (Renderable *rend, const String &passName) |
bool | Ogre::PropertyMap::hasProperty (IdString key) |
void | Ogre::PbsMaterial::SamplerContainer::init (String n, bool hasBlendFu=false, bool hasBlendFc1=false, bool hasBlendFc2=false, bool needsGammaCorrect=false, bool hasIntens=false, bool hasMipmapC=false, TextureType texType=TEX_TYPE_2D) |
void | Ogre::ShaderTemplate::load () |
virtual void | Ogre::HlmsManager::notifyRenderSingleObject (Renderable *rend, const Pass *pass, const AutoParamDataSource *source, const LightList *pLightList, bool suppressRenderStateChanges) |
Event raised when render single object started. More... | |
bool | Ogre::PropertyMap::Property::operator== (const Property &_r) const |
bool | Ogre::PbsMaterial::TextureAddressing::operator== (const TextureAddressing &b) |
bool | Ogre::OrderParamVecByKey (const std::pair< IdString, String > &_left, const std::pair< IdString, String > &_right) |
static String | Ogre::ShaderGenerator::parse (String &inBuffer, PropertyMap &properties, const StringVector &pieceFiles) |
virtual void | Ogre::HlmsManager::preFindVisibleObjects (SceneManager *source, SceneManager::IlluminationRenderStage irs, Viewport *v) |
Called prior to searching for visible objects in this SceneManager. More... | |
void | Ogre::PropertyMap::removeProperty (IdString key) |
void | Ogre::PbsMaterial::setAlbedo (ColourValue val) |
void | Ogre::PbsMaterial::setAlbedoTexture (MapSlot mapSlot, TexturePtr tex, TextureAddressing textureAddressing=TextureAddressing(), BlendFunction blendFunc=BF_ALPHA, float blendFactor=1) |
void | Ogre::PropertyMap::setCommonProperties () |
Inserts common properties about the current Renderable, such as hlms_skeleton hlms_uv_count, etc. More... | |
void | Ogre::PbsMaterial::setEnvironmentMap (TexturePtr tex, float intensityFactor=1.0f) |
void | Ogre::PbsMaterial::setF0 (ColourValue val) |
void | Ogre::PbsMaterial::setF0Texture (MapSlot mapSlot, TexturePtr tex, TextureAddressing textureAddressing=TextureAddressing(), BlendFunction blendFunc=BF_ALPHA, float blendFactor=1) |
void | Ogre::HlmsDatablock::setLanguage (const String &language) |
void | Ogre::PbsMaterial::setLightRoughnessOffset (Real val) |
void | Ogre::PbsMaterial::setNormalRTexture (MapSlot mapSlot, TexturePtr tex, TextureAddressing textureAddressing=TextureAddressing(), float normalBlendFactor=1, float rBlendFactor=0) |
set texture containing normals and roughness More... | |
void | Ogre::PbsMaterial::setOffsetAndScale (MapSlot mapSlot, Vector2 offset, Vector2 scale) |
void | Ogre::PropertyMap::setProperty (IdString key, int32 value) |
void | Ogre::PbsMaterial::setRoughness (Real val) |
void | Ogre::ShaderTemplate::setTemplateFileName (const String &templateFileName) |
void | Ogre::HlmsDatablock::setTemplateName (const String &tamplateName) |
void | Ogre::PbsMaterial::setUvSetIndex (MapSlot mapSlot, uint index) |
void | Ogre::HlmsManager::unbind (Renderable *rend, const String &passName) |
void | Ogre::HlmsManager::unbindAll (const String &passName) |
virtual void | Ogre::HlmsMaterialBase::updatePropertyMap (Camera *camera, const LightList *pLightList) |
this is called once per frame More... | |
void | Ogre::PbsMaterial::updatePropertyMap (Camera *camera, const LightList *pLightList) |
this is called once per frame More... | |
void | Ogre::PbsMaterial::updateTextureUnits (TextureUnitState *textureUnitState, GpuProgramParametersSharedPtr fragmentParams, SamplerContainer &s, int index) |
virtual void | Ogre::HlmsMaterialBase::updateUniforms (const Pass *pass, const AutoParamDataSource *source, const LightList *pLightList) |
this is called for every renderable before it is renderd with the given pass More... | |
void | Ogre::PbsMaterial::updateUniforms (const Pass *pass, const AutoParamDataSource *source, const LightList *pLightList) |
this is called for every renderable before it is renderd with the given pass More... | |
High-level Material-System.
typedef std::vector< std::pair<IdString, String> > Ogre::HlmsParamVec |
Ogre::HlmsDatablock::HlmsDatablock | ( | GpuProgramType | type, |
PropertyMap * | propertyMap | ||
) |
|
inline |
|
inline |
|
inline |
ShaderTemplate* Ogre::HlmsDatablock::getTemplate | ( | ) |
|
inline |
void Ogre::HlmsDatablock::setLanguage | ( | const String & | language | ) |
void Ogre::HlmsDatablock::setTemplateName | ( | const String & | tamplateName | ) |
void Ogre::HlmsDatablock::addProfile | ( | const String & | profile | ) |
uint32 Ogre::HlmsDatablock::getHash | ( | ) |
Ogre::HlmsManager::HlmsManager | ( | SceneManager * | sceneManager, |
const String & | pieseFilesResorceGroup = ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME |
||
) |
|
virtual |
|
virtual |
Event raised when render single object started.
rend | The renderable that is going to be rendered. |
pass | The pass which was set. |
source | The auto parameter source used within this render call. |
pLightList | The light list in use. |
suppressRenderStateChanges | True if render state changes should be suppressed. |
Implements Ogre::RenderObjectListener.
|
virtual |
Called prior to searching for visible objects in this SceneManager.
source | The SceneManager instance raising this event. |
irs | The stage of illumination being dealt with. IRS_NONE for a regular render, IRS_RENDER_TO_TEXTURE for a shadow caster render. |
v | The viewport being updated. You can get the camera from here. |
Reimplemented from Ogre::SceneManager::Listener.
void Ogre::HlmsManager::bind | ( | Renderable * | rend, |
HlmsMaterialBase * | material, | ||
const String & | passName | ||
) |
void Ogre::HlmsManager::unbind | ( | Renderable * | rend, |
const String & | passName | ||
) |
void Ogre::HlmsManager::unbindAll | ( | const String & | passName | ) |
bool Ogre::HlmsManager::hasBinding | ( | Renderable * | rend, |
const String & | passName | ||
) |
Ogre::HlmsMaterialBase::HlmsMaterialBase | ( | ) |
|
virtual |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
this is called once per frame
Reimplemented in Ogre::PbsMaterial.
|
inlinevirtual |
this is called once per frame if the shader has changed. (it is guaranteed that there are not texture units in the pass)
Reimplemented in Ogre::PbsMaterial.
|
inlinevirtual |
this is called for every renderable before it is renderd with the given pass
Reimplemented in Ogre::PbsMaterial.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Ogre::PbsMaterial::PbsMaterial | ( | ) |
Ogre::PbsMaterial::PbsMaterial | ( | const PbsMaterial & | obj | ) |
|
virtual |
void Ogre::PbsMaterial::setEnvironmentMap | ( | TexturePtr | tex, |
float | intensityFactor = 1.0f |
||
) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
References PBS_MAX_LIGHT_COUNT.
void Ogre::PbsMaterial::setAlbedoTexture | ( | MapSlot | mapSlot, |
TexturePtr | tex, | ||
TextureAddressing | textureAddressing = TextureAddressing() , |
||
BlendFunction | blendFunc = BF_ALPHA , |
||
float | blendFactor = 1 |
||
) |
void Ogre::PbsMaterial::setNormalRTexture | ( | MapSlot | mapSlot, |
TexturePtr | tex, | ||
TextureAddressing | textureAddressing = TextureAddressing() , |
||
float | normalBlendFactor = 1 , |
||
float | rBlendFactor = 0 |
||
) |
set texture containing normals and roughness
void Ogre::PbsMaterial::setF0Texture | ( | MapSlot | mapSlot, |
TexturePtr | tex, | ||
TextureAddressing | textureAddressing = TextureAddressing() , |
||
BlendFunction | blendFunc = BF_ALPHA , |
||
float | blendFactor = 1 |
||
) |
this is called once per frame
Reimplemented from Ogre::HlmsMaterialBase.
|
virtual |
this is called once per frame if the shader has changed. (it is guaranteed that there are not texture units in the pass)
Reimplemented from Ogre::HlmsMaterialBase.
|
virtual |
this is called for every renderable before it is renderd with the given pass
Reimplemented from Ogre::HlmsMaterialBase.
void Ogre::PbsMaterial::updateTextureUnits | ( | TextureUnitState * | textureUnitState, |
GpuProgramParametersSharedPtr | fragmentParams, | ||
SamplerContainer & | s, | ||
int | index | ||
) |
|
inline |
References Ogre::PropertyMap::Property::keyName, and Ogre::PropertyMap::Property::value.
Ogre::PropertyMap::PropertyMap | ( | ) |
|
virtual |
void Ogre::PropertyMap::setCommonProperties | ( | ) |
Inserts common properties about the current Renderable, such as hlms_skeleton hlms_uv_count, etc.
bool Ogre::PropertyMap::hasProperty | ( | IdString | key | ) |
void Ogre::PropertyMap::removeProperty | ( | IdString | key | ) |
uint32 Ogre::PropertyMap::getHash | ( | ) |
|
inline |
|
inline |
References Ogre::MurmurHash3_x86_32(), and Ogre::IdString::Seed.
Referenced by Ogre::calcHash().
|
inline |
References Ogre::calcHash().
|
inline |
References Ogre::calcHash().
|
inline |
|
static |
Ogre::ShaderManager::ShaderManager | ( | const String & | pieseFilesResorceGroup | ) |
Ogre::ShaderManager::~ShaderManager | ( | ) |
GpuProgramPtr Ogre::ShaderManager::getGpuProgram | ( | HlmsDatablock * | dataBlock | ) |
|
static |
|
inline |
void Ogre::ShaderPiecesManager::enumeratePieceFiles | ( | ) |
const StringVector& Ogre::ShaderPiecesManager::getPieces | ( | const String & | language, |
GpuProgramType | shaderType, | ||
bool | reload = false |
||
) |
|
inline |
|
inline |
void Ogre::ShaderTemplate::setTemplateFileName | ( | const String & | templateFileName | ) |
void Ogre::ShaderTemplate::load | ( | ) |
const String& Ogre::ShaderTemplate::getTemplate | ( | ) |
uint32 Ogre::ShaderTemplate::getHash | ( | ) |
bool Ogre::HlmsMaterialBase::IsDirty |
TextureAddressingMode Ogre::PbsMaterial::TextureAddressing::u |
Referenced by Ogre::PbsMaterial::TextureAddressing::operator==().
TextureAddressingMode Ogre::PbsMaterial::TextureAddressing::v |
Referenced by Ogre::PbsMaterial::TextureAddressing::operator==().
String Ogre::PbsMaterial::SamplerContainer::name |
TextureType Ogre::PbsMaterial::SamplerContainer::textureType |
TexturePtr Ogre::PbsMaterial::SamplerContainer::tex |
TextureUnitState* Ogre::PbsMaterial::SamplerContainer::textureUnitState |
SamplerStatus Ogre::PbsMaterial::SamplerContainer::status |
bool Ogre::PbsMaterial::SamplerContainer::hasIntensity |
float Ogre::PbsMaterial::SamplerContainer::intensity |
bool Ogre::PbsMaterial::SamplerContainer::hasMipmapCount |
float Ogre::PbsMaterial::SamplerContainer::mipmapCount |
bool Ogre::PbsMaterial::SamplerContainer::hasBlendFunc |
BlendFunction Ogre::PbsMaterial::SamplerContainer::blendFunc |
bool Ogre::PbsMaterial::SamplerContainer::hasBlendFactor1 |
float Ogre::PbsMaterial::SamplerContainer::blendFactor1 |
bool Ogre::PbsMaterial::SamplerContainer::hasBlendFactor2 |
float Ogre::PbsMaterial::SamplerContainer::blendFactor2 |
TextureAddressing Ogre::PbsMaterial::SamplerContainer::textureAddressing |
bool Ogre::PbsMaterial::SamplerContainer::needsGammaCorrection |
|
static |
These are "default" or "Base" properties common to many implementations and thus defined here.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
IdString Ogre::PropertyMap::Property::keyName |
Referenced by Ogre::PropertyMap::Property::operator==().
int32 Ogre::PropertyMap::Property::value |
Referenced by Ogre::PropertyMap::Property::operator==().
const String Ogre::FilePatterns[] = { "_vs", "_fs", "_gs", "_ds", "_hs" } |
bool Ogre::ShaderGenerator::Expression::result |
bool Ogre::ShaderGenerator::Expression::negated |
ExpressionType Ogre::ShaderGenerator::Expression::type |
std::vector<Expression> Ogre::ShaderGenerator::Expression::children |
String Ogre::ShaderGenerator::Expression::value |