OGRE
1.11.6
Object-Oriented Graphics Rendering Engine
|
Class that provides functionality to generate materials for use with a terrain. More...
#include <OgreTerrainMaterialGenerator.h>
Classes | |
class | Profile |
Inner class which should also be subclassed to provide profile-specific material generation. More... | |
Public Types | |
typedef std::vector< Profile * > | ProfileList |
List of profiles - NB should be ordered in descending complexity. More... | |
Public Member Functions | |
TerrainMaterialGenerator () | |
virtual | ~TerrainMaterialGenerator () |
Texture * | _getCompositeMapRTT () |
void | _markChanged () |
Internal method - indicates that a change has been made that would require material regeneration. More... | |
virtual void | _renderCompositeMap (size_t size, const Rect &rect, const MaterialPtr &mat, const TexturePtr &destCompositeMap) |
Helper method to render a composite map. More... | |
virtual bool | canGenerateUsingDeclaration (const TerrainLayerDeclaration &decl) |
Whether this generator can generate a material for a given declaration. More... | |
virtual MaterialPtr | generate (const Terrain *terrain) |
Generate a material for the given terrain using the active profile. More... | |
virtual MaterialPtr | generateForCompositeMap (const Terrain *terrain) |
Generate a material for the given composite map of the terrain using the active profile. More... | |
Profile * | getActiveProfile () const |
Get the active profile. More... | |
unsigned long long int | getChangeCount () const |
Returns the number of times the generator has undergone a change which would require materials to be regenerated. More... | |
virtual unsigned int | getDebugLevel () const |
Get the debug level of the material. More... | |
virtual const TerrainLayerDeclaration & | getLayerDeclaration () const |
Get the layer declaration that this material generator operates with. More... | |
virtual uint8 | getMaxLayers (const Terrain *terrain) const |
Get the maximum number of layers supported with the given terrain. More... | |
virtual const ProfileList & | getProfiles () const |
Get the list of profiles that this generator supports. More... | |
virtual bool | isVertexCompressionSupported () const |
Return whether this material generator supports using a compressed vertex format. More... | |
virtual void | requestOptions (Terrain *terrain) |
Triggers the generator to request the options that it needs. More... | |
virtual void | setActiveProfile (const String &name) |
Set the active profile by name. More... | |
virtual void | setActiveProfile (Profile *p) |
Set the active Profile. More... | |
virtual void | setDebugLevel (unsigned int dbg) |
Set the debug level of the material. More... | |
virtual void | setLightmapEnabled (bool enabled) |
Whether to support a light map over the terrain in the shader, if it's present (default true). More... | |
virtual void | updateCompositeMap (const Terrain *terrain, const Rect &rect) |
Update the composite map for a terrain. More... | |
virtual void | updateParams (const MaterialPtr &mat, const Terrain *terrain) |
Update parameters for the given terrain using the active profile. More... | |
virtual void | updateParamsForCompositeMap (const MaterialPtr &mat, const Terrain *terrain) |
Update parameters for the given terrain composite map using the active profile. More... | |
Class that provides functionality to generate materials for use with a terrain.
typedef std::vector<Profile*> Ogre::TerrainMaterialGenerator::ProfileList |
List of profiles - NB should be ordered in descending complexity.
Ogre::TerrainMaterialGenerator::TerrainMaterialGenerator | ( | ) |
|
virtual |
|
inlinevirtual |
Get the list of profiles that this generator supports.
|
inlinevirtual |
Set the active profile by name.
|
inlinevirtual |
Set the active Profile.
|
inline |
Get the active profile.
|
inline |
Internal method - indicates that a change has been made that would require material regeneration.
|
inline |
Returns the number of times the generator has undergone a change which would require materials to be regenerated.
|
inlinevirtual |
Get the layer declaration that this material generator operates with.
|
inlinevirtual |
Whether this generator can generate a material for a given declaration.
By default this only returns true if the declaration is equal to the standard one returned from getLayerDeclaration, but if a subclass wants to be flexible to generate materials for other declarations too, it can specify here.
|
inlinevirtual |
Return whether this material generator supports using a compressed vertex format.
This is only possible when using shaders.
|
inlinevirtual |
Triggers the generator to request the options that it needs.
References Ogre::TerrainMaterialGenerator::Profile::requestOptions().
|
inlinevirtual |
Generate a material for the given terrain using the active profile.
References Ogre::TerrainMaterialGenerator::Profile::generate().
|
inlinevirtual |
Generate a material for the given composite map of the terrain using the active profile.
References Ogre::TerrainMaterialGenerator::Profile::generateForCompositeMap().
|
inlinevirtual |
Whether to support a light map over the terrain in the shader, if it's present (default true).
References Ogre::TerrainMaterialGenerator::Profile::setLightmapEnabled().
|
inlinevirtual |
Get the maximum number of layers supported with the given terrain.
References Ogre::TerrainMaterialGenerator::Profile::getMaxLayers().
|
inlinevirtual |
Update the composite map for a terrain.
The composite map for a terrain must match what the terrain should look like at distance. This method will only be called in the render thread so the generator is free to render into a texture to support this, so long as the results are blitted into the Terrain's own composite map afterwards.
References Ogre::TerrainMaterialGenerator::Profile::updateCompositeMap().
|
inlinevirtual |
Update parameters for the given terrain using the active profile.
References Ogre::TerrainMaterialGenerator::Profile::updateParams().
|
inlinevirtual |
Update parameters for the given terrain composite map using the active profile.
References Ogre::TerrainMaterialGenerator::Profile::updateParamsForCompositeMap().
|
inlinevirtual |
Set the debug level of the material.
|
inlinevirtual |
Get the debug level of the material.
|
virtual |
Helper method to render a composite map.
size | The requested composite map size |
rect | The region of the composite map to update, in image space |
mat | The material to use to render the map |
destCompositeMap | A TexturePtr for the composite map to be written into |
|
inline |