#include <OgreMaterial.h>
Inheritance diagram for Ogre::Material:
Public Types | |
typedef std::vector< Real > | LodDistanceList |
distance list used to specify LOD | |
typedef ConstVectorIterator< LodDistanceList > | LodDistanceIterator |
typedef VectorIterator< Techniques > | TechniqueIterator |
Public Member Functions | |
Material (ResourceManager *creator, const String &name, ResourceHandle handle, const String &group, bool isManual=false, ManualResourceLoader *loader=0) | |
Constructor - use resource manager's create method rather than this. | |
~Material () | |
Material & | operator= (const Material &rhs) |
Assignment operator to allow easy copying between materials. | |
bool | isTransparent (void) const |
Determines if the material has any transparency with the rest of the scene (derived from whether any Techniques say they involve transparency). | |
void | setReceiveShadows (bool enabled) |
Sets whether objects using this material will receive shadows. | |
bool | getReceiveShadows (void) const |
Returns whether or not objects using this material will receive shadows. | |
void | setTransparencyCastsShadows (bool enabled) |
Sets whether objects using this material be classified as opaque to the shadow caster system. | |
bool | getTransparencyCastsShadows (void) const |
Returns whether or not objects using this material be classified as opaque to the shadow caster system. | |
Technique * | createTechnique (void) |
Creates a new Technique for this Material. | |
Technique * | getTechnique (unsigned short index) |
Gets the indexed technique. | |
Technique * | getTechnique (const String &name) |
searches for the named technique. | |
unsigned short | getNumTechniques (void) const |
Retrieves the number of techniques. | |
void | removeTechnique (unsigned short index) |
Removes the technique at the given index. | |
void | removeAllTechniques (void) |
Removes all the techniques in this Material. | |
TechniqueIterator | getTechniqueIterator (void) |
Get an iterator over the Techniques in this Material. | |
TechniqueIterator | getSupportedTechniqueIterator (void) |
Gets an iterator over all the Techniques which are supported by the current card. | |
Technique * | getSupportedTechnique (unsigned short index) |
Gets the indexed supported technique. | |
unsigned short | getNumSupportedTechniques (void) const |
Retrieves the number of supported techniques. | |
unsigned short | getNumLodLevels (unsigned short schemeIndex) const |
Gets the number of levels-of-detail this material has in the given scheme, based on Technique::setLodIndex. | |
unsigned short | getNumLodLevels (const String &schemeName) const |
Gets the number of levels-of-detail this material has in the given scheme, based on Technique::setLodIndex. | |
Technique * | getBestTechnique (unsigned short lodIndex=0) |
Gets the best supported technique. | |
MaterialPtr | clone (const String &newName, bool changeGroup=false, const String &newGroup=StringUtil::BLANK) const |
Creates a new copy of this material with the same settings but a new name. | |
void | copyDetailsTo (MaterialPtr &mat) const |
Copies the details of this material into another, preserving the target's handle and name (unlike operator=) but copying everything else. | |
void | compile (bool autoManageTextureUnits=true) |
'Compiles' this Material. | |
void | setPointSize (Real ps) |
Sets the point size properties for every Pass in every Technique. | |
void | setAmbient (Real red, Real green, Real blue) |
Sets the ambient colour reflectance properties for every Pass in every Technique. | |
void | setAmbient (const ColourValue &ambient) |
Sets the ambient colour reflectance properties for every Pass in every Technique. | |
void | setDiffuse (Real red, Real green, Real blue, Real alpha) |
Sets the diffuse colour reflectance properties of every Pass in every Technique. | |
void | setDiffuse (const ColourValue &diffuse) |
Sets the diffuse colour reflectance properties of every Pass in every Technique. | |
void | setSpecular (Real red, Real green, Real blue, Real alpha) |
Sets the specular colour reflectance properties of every Pass in every Technique. | |
void | setSpecular (const ColourValue &specular) |
Sets the specular colour reflectance properties of every Pass in every Technique. | |
void | setShininess (Real val) |
Sets the shininess properties of every Pass in every Technique. | |
void | setSelfIllumination (Real red, Real green, Real blue) |
Sets the amount of self-illumination of every Pass in every Technique. | |
void | setSelfIllumination (const ColourValue &selfIllum) |
Sets the amount of self-illumination of every Pass in every Technique. | |
void | setDepthCheckEnabled (bool enabled) |
Sets whether or not each Pass renders with depth-buffer checking on or not. | |
void | setDepthWriteEnabled (bool enabled) |
Sets whether or not each Pass renders with depth-buffer writing on or not. | |
void | setDepthFunction (CompareFunction func) |
Sets the function used to compare depth values when depth checking is on. | |
void | setColourWriteEnabled (bool enabled) |
Sets whether or not colour buffer writing is enabled for each Pass. | |
void | setCullingMode (CullingMode mode) |
Sets the culling mode for each pass based on the 'vertex winding'. | |
void | setManualCullingMode (ManualCullingMode mode) |
Sets the manual culling mode, performed by CPU rather than hardware. | |
void | setLightingEnabled (bool enabled) |
Sets whether or not dynamic lighting is enabled for every Pass. | |
void | setShadingMode (ShadeOptions mode) |
Sets the type of light shading required. | |
void | setFog (bool overrideScene, FogMode mode=FOG_NONE, const ColourValue &colour=ColourValue::White, Real expDensity=0.001, Real linearStart=0.0, Real linearEnd=1.0) |
Sets the fogging mode applied to each pass. | |
void | setDepthBias (ushort bias) |
Sets the depth bias to be used for each Pass. | |
void | setTextureFiltering (TextureFilterOptions filterType) |
Set texture filtering for every texture unit in every Technique and Pass. | |
void | setTextureAnisotropy (int maxAniso) |
Sets the anisotropy level to be used for all textures. | |
void | setSceneBlending (const SceneBlendType sbt) |
Sets the kind of blending every pass has with the existing contents of the scene. | |
void | setSceneBlending (const SceneBlendFactor sourceFactor, const SceneBlendFactor destFactor) |
Allows very fine control of blending every Pass with the existing contents of the scene. | |
void | _notifyNeedsRecompile (void) |
Tells the material that it needs recompilation. | |
void | setLodLevels (const LodDistanceList &lodDistances) |
Sets the distance at which level-of-detail (LOD) levels come into effect. | |
LodDistanceIterator | getLodDistanceIterator (void) const |
Gets an iterator over the list of distances at which each LOD comes into effect. | |
unsigned short | getLodIndex (Real d) const |
Gets the LOD index to use at the given distance. | |
unsigned short | getLodIndexSquaredDepth (Real squaredDepth) const |
Gets the LOD index to use at the given squared distance. | |
void | touch (void) |
| |
bool | applyTextureAliases (const AliasTextureNamePairList &aliasList, const bool apply=true) const |
Applies texture names to Texture Unit State with matching texture name aliases. | |
bool | getCompilationRequired () const |
Gets the compilation status of the material. | |
virtual void | load (void) |
Loads the resource, if it is not already. | |
virtual void | reload (void) |
Reloads the resource, if it is already loaded. | |
bool | isReloadable (void) const |
Returns true if the Resource is reloadable, false otherwise. | |
bool | isManuallyLoaded (void) const |
Is this resource manually loaded? | |
virtual void | unload (void) |
Unloads the resource; this is not permanent, the resource can be reloaded later if required. | |
size_t | getSize (void) const |
Retrieves info about the size of the resource. | |
const String & | getName (void) const |
Gets resource name. | |
ResourceHandle | getHandle (void) const |
bool | isLoaded (void) const |
Returns true if the Resource has been loaded, false otherwise. | |
const String & | getGroup (void) |
Gets the group which this resource is a member of. | |
void | changeGroupOwnership (const String &newGroup) |
Change the resource group ownership of a Resource. | |
ResourceManager * | getCreator (void) |
Gets the manager which created this resource. | |
const String & | getOrigin (void) const |
Get the origin of this resource, e.g. | |
void | _notifyOrigin (const String &origin) |
Notify this resource of it's origin. | |
ParamDictionary * | getParamDictionary (void) |
Retrieves the parameter dictionary for this class. | |
const ParamDictionary * | getParamDictionary (void) const |
const ParameterList & | getParameters (void) const |
Retrieves a list of parameters valid for this object. | |
virtual bool | setParameter (const String &name, const String &value) |
Generic parameter setting method. | |
virtual void | setParameterList (const NameValuePairList ¶mList) |
Generic multiple parameter setting method. | |
virtual String | getParameter (const String &name) const |
Generic parameter retrieval method. | |
virtual void | copyParametersTo (StringInterface *dest) const |
Method for copying this object's parameters to another object. | |
Static Public Member Functions | |
void | cleanupDictionary () |
Cleans up the static 'msDictionary' required to reset Ogre, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the ResourceManager implementers (e.g. | |
Protected Types | |
typedef std::vector< Technique * > | Techniques |
typedef std::map< unsigned short, Technique * > | LodTechniques |
typedef std::map< unsigned short, LodTechniques * > | BestTechniquesBySchemeList |
Protected Member Functions | |
void | applyDefaults (void) |
Internal method which sets the material up from the default settings. | |
void | insertSupportedTechnique (Technique *t) |
Insert a supported technique into the local collections. | |
void | clearBestTechniqueList (void) |
Clear the best technique list. | |
void | loadImpl (void) |
Overridden from Resource. | |
void | unloadImpl (void) |
Unloads the material, frees resources etc. | |
size_t | calculateSize (void) const |
| |
bool | createParamDictionary (const String &className) |
Internal method for creating a parameter dictionary for the class, if it does not already exist. | |
Protected Attributes | |
Techniques | mTechniques |
All techniques, supported and unsupported. | |
Techniques | mSupportedTechniques |
Supported techniques of any sort. | |
BestTechniquesBySchemeList | mBestTechniquesBySchemeList |
Map of scheme -> list of LOD techniques. | |
LodDistanceList | mLodDistances |
bool | mReceiveShadows |
bool | mTransparencyCastsShadows |
bool | mCompilationRequired |
Does this material require compilation? | |
ResourceManager * | mCreator |
Creator. | |
String | mName |
Unique name of the resource. | |
String | mGroup |
The name of the resource group. | |
ResourceHandle | mHandle |
Numeric handle for more efficient look up than name. | |
bool | mIsLoaded |
Is the resource currently loaded? | |
size_t | mSize |
The size of the resource in bytes. | |
bool | mIsManual |
Is this file manually loaded? | |
String | mOrigin |
Origin of this resource (e.g. script name) - optional. | |
ManualResourceLoader * | mLoader |
Optional manual loader; if provided, data is loaded from here instead of a file. | |
String | mParamDictName |
Class name for this instance to be used as a lookup (must be initialised by subclasses). | |
Static Protected Attributes | |
ParamDictionaryMap | msDictionary |
Dictionary of parameters. | |
Friends | |
class | SceneManager |
class | MaterialManager |
Definition at line 79 of file OgreMaterial.h.
|
Definition at line 101 of file OgreMaterial.h. |
|
Definition at line 87 of file OgreMaterial.h. |
|
distance list used to specify LOD
Definition at line 86 of file OgreMaterial.h. |
|
Definition at line 100 of file OgreMaterial.h. |
|
Definition at line 205 of file OgreMaterial.h. |
|
Definition at line 95 of file OgreMaterial.h. |
|
Constructor - use resource manager's create method rather than this.
|
|
|
|
Tells the material that it needs recompilation.
|
|
Notify this resource of it's origin.
Definition at line 223 of file OgreResource.h. References Ogre::String. |
|
Internal method which sets the material up from the default settings.
|
|
Applies texture names to Texture Unit State with matching texture name aliases. All techniques, passes, and Texture Unit States within the material are checked. If matching texture aliases are found then true is returned.
|
|
Implements Ogre::Resource. Definition at line 131 of file OgreMaterial.h. |
|
Change the resource group ownership of a Resource.
|
|
Cleans up the static 'msDictionary' required to reset Ogre, otherwise the containers are left with invalid pointers, which will lead to a crash as soon as one of the ResourceManager implementers (e.g. MaterialManager) initializes. |
|
Clear the best technique list.
|
|
Creates a new copy of this material with the same settings but a new name.
|
|
'Compiles' this Material.
|
|
Copies the details of this material into another, preserving the target's handle and name (unlike operator=) but copying everything else.
|
|
Method for copying this object's parameters to another object.
Definition at line 296 of file OgreStringInterface.h. References Ogre::ParamDictionary::mParamDefs, and Ogre::StringInterface::setParameter(). |
|
Internal method for creating a parameter dictionary for the class, if it does not already exist.
Definition at line 172 of file OgreStringInterface.h. References Ogre::String. |
|
Creates a new Technique for this Material.
|
|
Gets the best supported technique.
|
|
Gets the compilation status of the material.
Definition at line 606 of file OgreMaterial.h. |
|
Gets the manager which created this resource.
Definition at line 214 of file OgreResource.h. |
|
Gets the group which this resource is a member of.
Definition at line 202 of file OgreResource.h. References Ogre::String. |
|
Definition at line 188 of file OgreResource.h. References Ogre::ResourceHandle. |
|
Gets an iterator over the list of distances at which each LOD comes into effect.
|
|
Gets the LOD index to use at the given distance.
|
|
Gets the LOD index to use at the given squared distance.
|
|
Gets resource name.
Definition at line 183 of file OgreResource.h. References Ogre::String. |
|
Gets the number of levels-of-detail this material has in the given scheme, based on Technique::setLodIndex.
|
|
Gets the number of levels-of-detail this material has in the given scheme, based on Technique::setLodIndex.
|
|
Retrieves the number of supported techniques.
|
|
Retrieves the number of techniques.
|
|
Get the origin of this resource, e.g. a script file name.
Definition at line 221 of file OgreResource.h. References Ogre::String. |
|
Definition at line 209 of file OgreStringInterface.h. |
|
Retrieves the parameter dictionary for this class.
Definition at line 196 of file OgreStringInterface.h. |
|
Generic parameter retrieval method.
Definition at line 265 of file OgreStringInterface.h. References Ogre::ParamCommand::doGet(), Ogre::ParamDictionary::getParamCommand(), and Ogre::String. |
|
Retrieves a list of parameters valid for this object.
|
|
Returns whether or not objects using this material will receive shadows.
Definition at line 164 of file OgreMaterial.h. |
|
Retrieves info about the size of the resource.
Definition at line 172 of file OgreResource.h. |
|
Gets the indexed supported technique.
|
|
Gets an iterator over all the Techniques which are supported by the current card.
|
|
searches for the named technique. Return 0 if technique with name is not found |
|
Gets the indexed technique.
|
|
Get an iterator over the Techniques in this Material.
|
|
Returns whether or not objects using this material be classified as opaque to the shadow caster system.
Definition at line 176 of file OgreMaterial.h. |
|
Insert a supported technique into the local collections.
|
|
Returns true if the Resource has been loaded, false otherwise.
Definition at line 195 of file OgreResource.h. References OGRE_LOCK_AUTO_MUTEX. |
|
Is this resource manually loaded?
Definition at line 160 of file OgreResource.h. |
|
Returns true if the Resource is reloadable, false otherwise.
Definition at line 153 of file OgreResource.h. |
|
Determines if the material has any transparency with the rest of the scene (derived from whether any Techniques say they involve transparency).
|
|
Loads the resource, if it is not already.
Reimplemented in Ogre::Mesh, and Ogre::GLSLGpuProgram. |
|
Overridden from Resource.
Implements Ogre::Resource. |
|
Assignment operator to allow easy copying between materials.
|
|
Reloads the resource, if it is already loaded.
|
|
Removes all the techniques in this Material.
|
|
Removes the technique at the given index.
|
|
Sets the ambient colour reflectance properties for every Pass in every Technique.
|
|
Sets the ambient colour reflectance properties for every Pass in every Technique.
|
|
Sets whether or not colour buffer writing is enabled for each Pass.
|
|
Sets the culling mode for each pass based on the 'vertex winding'.
|
|
Sets the depth bias to be used for each Pass.
|
|
Sets whether or not each Pass renders with depth-buffer checking on or not.
|
|
Sets the function used to compare depth values when depth checking is on.
|
|
Sets whether or not each Pass renders with depth-buffer writing on or not.
|
|
Sets the diffuse colour reflectance properties of every Pass in every Technique.
|
|
Sets the diffuse colour reflectance properties of every Pass in every Technique.
|
|
Sets the fogging mode applied to each pass.
|
|
Sets whether or not dynamic lighting is enabled for every Pass.
|
|
Sets the distance at which level-of-detail (LOD) levels come into effect.
|
|
Sets the manual culling mode, performed by CPU rather than hardware.
|
|
Generic parameter setting method.
Referenced by Ogre::StringInterface::copyParametersTo(). |
|
Generic multiple parameter setting method.
|
|
Sets the point size properties for every Pass in every Technique.
|
|
Sets whether objects using this material will receive shadows.
Definition at line 162 of file OgreMaterial.h. |
|
Allows very fine control of blending every Pass with the existing contents of the scene.
|
|
Sets the kind of blending every pass has with the existing contents of the scene.
|
|
Sets the amount of self-illumination of every Pass in every Technique.
|
|
Sets the amount of self-illumination of every Pass in every Technique.
|
|
Sets the type of light shading required.
|
|
Sets the shininess properties of every Pass in every Technique.
|
|
Sets the specular colour reflectance properties of every Pass in every Technique.
|
|
Sets the specular colour reflectance properties of every Pass in every Technique.
|
|
Sets the anisotropy level to be used for all textures.
|
|
Set texture filtering for every texture unit in every Technique and Pass.
|
|
Sets whether objects using this material be classified as opaque to the shadow caster system.
Definition at line 174 of file OgreMaterial.h. |
|
Reimplemented from Ogre::Resource. Definition at line 582 of file OgreMaterial.h. |
|
Unloads the resource; this is not permanent, the resource can be reloaded later if required.
Reimplemented in Ogre::GLSLGpuProgram. |
|
Unloads the material, frees resources etc.
Implements Ogre::Resource. |
|
Definition at line 82 of file OgreMaterial.h. |
|
Definition at line 81 of file OgreMaterial.h. |
|
Map of scheme -> list of LOD techniques. Current scheme is set on MaterialManager, and can be set per Viewport for auto activation. Definition at line 106 of file OgreMaterial.h. |
|
Does this material require compilation?
Definition at line 112 of file OgreMaterial.h. |
|
Creator.
Definition at line 73 of file OgreResource.h. |
|
The name of the resource group.
Definition at line 77 of file OgreResource.h. |
|
Numeric handle for more efficient look up than name.
Definition at line 79 of file OgreResource.h. |
|
Is the resource currently loaded?
Definition at line 81 of file OgreResource.h. |
|
Is this file manually loaded?
Definition at line 85 of file OgreResource.h. |
|
Optional manual loader; if provided, data is loaded from here instead of a file.
Definition at line 89 of file OgreResource.h. |
|
Definition at line 108 of file OgreMaterial.h. |
|
Unique name of the resource.
Definition at line 75 of file OgreResource.h. |
|
Origin of this resource (e.g. script name) - optional.
Definition at line 87 of file OgreResource.h. |
|
Class name for this instance to be used as a lookup (must be initialised by subclasses).
Definition at line 160 of file OgreStringInterface.h. |
|
Definition at line 109 of file OgreMaterial.h. |
|
Dictionary of parameters.
Definition at line 157 of file OgreStringInterface.h. |
|
The size of the resource in bytes.
Definition at line 83 of file OgreResource.h. |
|
Supported techniques of any sort.
Definition at line 99 of file OgreMaterial.h. |
|
All techniques, supported and unsupported.
Definition at line 97 of file OgreMaterial.h. |
|
Definition at line 110 of file OgreMaterial.h. |
Copyright © 2000-2005 by The OGRE Team
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Mar 12 14:39:44 2006