Urho3D::Material Class Reference
Public Member Functions |
Static Public Member Functions |
Private Member Functions |
Private Attributes |
List of all members
Urho3D::Material Class Reference
Describes how to render 3D geometries. More...
#include <Urho3D/Graphics/Material.h>
Inheritance diagram for Urho3D::Material:
Collaboration diagram for Urho3D::Material:
Public Member Functions | |
Material (Context *context) | |
Construct. | |
~Material () | |
Destruct. | |
virtual bool | BeginLoad (Deserializer &source) |
Load resource from stream. May be called from a worker thread. Return true if successful. | |
virtual bool | EndLoad () |
Finish resource loading. Always called from the main thread. Return true if successful. | |
virtual bool | Save (Serializer &dest) const |
Save resource. Return true if successful. | |
bool | Load (const XMLElement &source) |
Load from an XML element. Return true if successful. | |
bool | Save (XMLElement &dest) const |
Save to an XML element. Return true if successful. | |
bool | Load (const JSONValue &source) |
Load from a JSON value. Return true if successful. | |
bool | Save (JSONValue &dest) const |
Save to a JSON value. Return true if successful. | |
void | SetNumTechniques (unsigned num) |
Set number of techniques. | |
void | SetTechnique (unsigned index, Technique *tech, unsigned qualityLevel=0, float lodDistance=0.0f) |
Set technique. | |
void | SetVertexShaderDefines (const String &defines) |
Set additional vertex shader defines. Separate multiple defines with spaces. Setting defines at the material level causes technique(s) to be cloned as necessary. | |
void | SetPixelShaderDefines (const String &defines) |
Set additional pixel shader defines. Separate multiple defines with spaces. Setting defines at the material level causes technique(s) to be cloned as necessary. | |
void | SetShaderParameter (const String &name, const Variant &value) |
Set shader parameter. | |
void | SetShaderParameterAnimation (const String &name, ValueAnimation *animation, WrapMode wrapMode=WM_LOOP, float speed=1.0f) |
Set shader parameter animation. | |
void | SetShaderParameterAnimationWrapMode (const String &name, WrapMode wrapMode) |
Set shader parameter animation wrap mode. | |
void | SetShaderParameterAnimationSpeed (const String &name, float speed) |
Set shader parameter animation speed. | |
void | SetTexture (TextureUnit unit, Texture *texture) |
Set texture. | |
void | SetUVTransform (const Vector2 &offset, float rotation, const Vector2 &repeat) |
Set texture coordinate transform. | |
void | SetUVTransform (const Vector2 &offset, float rotation, float repeat) |
Set texture coordinate transform. | |
void | SetCullMode (CullMode mode) |
Set culling mode. | |
void | SetShadowCullMode (CullMode mode) |
Set culling mode for shadows. | |
void | SetFillMode (FillMode mode) |
Set polygon fill mode. Interacts with the camera's fill mode setting so that the "least filled" mode will be used. | |
void | SetDepthBias (const BiasParameters ¶meters) |
Set depth bias parameters for depth write and compare. Note that the normal offset parameter is not used and will not be saved, as it affects only shadow map sampling during light rendering. | |
void | SetAlphaToCoverage (bool enable) |
Set alpha-to-coverage mode on all passes. | |
void | SetLineAntiAlias (bool enable) |
Set line antialiasing on/off. Has effect only on models that consist of line lists. | |
void | SetRenderOrder (unsigned char order) |
Set 8-bit render order within pass. Default 128. Lower values will render earlier and higher values later, taking precedence over e.g. state and distance sorting. | |
void | SetOcclusion (bool enable) |
Set whether to use in occlusion rendering. Default true. | |
void | SetScene (Scene *scene) |
Associate the material with a scene to ensure that shader parameter animation happens in sync with scene update, respecting the scene time scale. If no scene is set, the global update events will be used. | |
void | RemoveShaderParameter (const String &name) |
Remove shader parameter. | |
void | ReleaseShaders () |
Reset all shader pointers. | |
SharedPtr< Material > | Clone (const String &cloneName=String::EMPTY) const |
Clone the material. | |
void | SortTechniques () |
Ensure that material techniques are listed in correct order. | |
void | MarkForAuxView (unsigned frameNumber) |
Mark material for auxiliary view rendering. | |
unsigned | GetNumTechniques () const |
Return number of techniques. | |
const Vector< TechniqueEntry > & | GetTechniques () const |
Return all techniques. | |
const TechniqueEntry & | GetTechniqueEntry (unsigned index) const |
Return technique entry by index. | |
Technique * | GetTechnique (unsigned index) const |
Return technique by index. | |
Pass * | GetPass (unsigned index, const String &passName) const |
Return pass by technique index and pass name. | |
Texture * | GetTexture (TextureUnit unit) const |
Return texture by unit. | |
const HashMap< TextureUnit, SharedPtr< Texture > > & | GetTextures () const |
Return all textures. | |
const String & | GetVertexShaderDefines () const |
Return additional vertex shader defines. | |
const String & | GetPixelShaderDefines () const |
Return additional pixel shader defines. | |
const Variant & | GetShaderParameter (const String &name) const |
Return shader parameter. | |
ValueAnimation * | GetShaderParameterAnimation (const String &name) const |
Return shader parameter animation. | |
WrapMode | GetShaderParameterAnimationWrapMode (const String &name) const |
Return shader parameter animation wrap mode. | |
float | GetShaderParameterAnimationSpeed (const String &name) const |
Return shader parameter animation speed. | |
const HashMap< StringHash, MaterialShaderParameter > & | GetShaderParameters () const |
Return all shader parameters. | |
CullMode | GetCullMode () const |
Return normal culling mode. | |
CullMode | GetShadowCullMode () const |
Return culling mode for shadows. | |
FillMode | GetFillMode () const |
Return polygon fill mode. | |
const BiasParameters & | GetDepthBias () const |
Return depth bias. | |
bool | GetAlphaToCoverage () const |
Return alpha-to-coverage mode. | |
bool | GetLineAntiAlias () const |
Return whether line antialiasing is enabled. | |
unsigned char | GetRenderOrder () const |
Return render order. | |
unsigned | GetAuxViewFrameNumber () const |
Return last auxiliary view rendered frame number. | |
bool | GetOcclusion () const |
Return whether should render occlusion. | |
bool | GetSpecular () const |
Return whether should render specular. | |
Scene * | GetScene () const |
Return the scene associated with the material for shader parameter animation updates. | |
unsigned | GetShaderParameterHash () const |
Return shader parameter hash value. Used as an optimization to avoid setting shader parameters unnecessarily. | |
Public Member Functions inherited from Urho3D::Resource | |
Resource (Context *context) | |
Construct. | |
bool | Load (Deserializer &source) |
Load resource synchronously. Call both BeginLoad() & EndLoad() and return true if both succeeded. | |
bool | LoadFile (const String &fileName) |
Load resource from file. | |
virtual bool | SaveFile (const String &fileName) const |
Save resource to file. | |
void | SetName (const String &name) |
Set name. | |
void | SetMemoryUse (unsigned size) |
Set memory use in bytes, possibly approximate. | |
void | ResetUseTimer () |
Reset last used timer. | |
void | SetAsyncLoadState (AsyncLoadState newState) |
Set the asynchronous loading state. Called by ResourceCache. Resources in the middle of asynchronous loading are not normally returned to user. | |
const String & | GetName () const |
Return name. | |
StringHash | GetNameHash () const |
Return name hash. | |
unsigned | GetMemoryUse () const |
Return memory use in bytes, possibly approximate. | |
unsigned | GetUseTimer () |
Return time since last use in milliseconds. If referred to elsewhere than in the resource cache, returns always zero. | |
AsyncLoadState | GetAsyncLoadState () const |
Return the asynchronous loading state. | |
Public Member Functions inherited from Urho3D::Object | |
Object (Context *context) | |
Construct. | |
virtual | ~Object () |
Destruct. Clean up self from event sender & receiver structures. | |
virtual StringHash | GetType () const =0 |
Return type hash. | |
virtual const String & | GetTypeName () const =0 |
Return type name. | |
virtual const TypeInfo * | GetTypeInfo () const =0 |
Return type info. | |
virtual void | OnEvent (Object *sender, StringHash eventType, VariantMap &eventData) |
Handle event. | |
bool | IsInstanceOf (StringHash type) const |
Check current instance is type of specified type. | |
bool | IsInstanceOf (const TypeInfo *typeInfo) const |
Check current instance is type of specified type. | |
template<typename T > | |
bool | IsInstanceOf () const |
Check current instance is type of specified class. | |
void | SubscribeToEvent (StringHash eventType, EventHandler *handler) |
Subscribe to an event that can be sent by any sender. | |
void | SubscribeToEvent (Object *sender, StringHash eventType, EventHandler *handler) |
Subscribe to a specific sender's event. | |
void | UnsubscribeFromEvent (StringHash eventType) |
Unsubscribe from an event. | |
void | UnsubscribeFromEvent (Object *sender, StringHash eventType) |
Unsubscribe from a specific sender's event. | |
void | UnsubscribeFromEvents (Object *sender) |
Unsubscribe from a specific sender's events. | |
void | UnsubscribeFromAllEvents () |
Unsubscribe from all events. | |
void | UnsubscribeFromAllEventsExcept (const PODVector< StringHash > &exceptions, bool onlyUserData) |
Unsubscribe from all events except those listed, and optionally only those with userdata (script registered events.) | |
void | SendEvent (StringHash eventType) |
Send event to all subscribers. | |
void | SendEvent (StringHash eventType, VariantMap &eventData) |
Send event with parameters to all subscribers. | |
VariantMap & | GetEventDataMap () const |
Return a preallocated map for event data. Used for optimization to avoid constant re-allocation of event data maps. | |
Context * | GetContext () const |
Return execution context. | |
const Variant & | GetGlobalVar (StringHash key) const |
Return global variable based on key. | |
const VariantMap & | GetGlobalVars () const |
Return all global variables. | |
void | SetGlobalVar (StringHash key, const Variant &value) |
Set global variable with the respective key and value. | |
Object * | GetSubsystem (StringHash type) const |
Return subsystem by type. | |
Object * | GetEventSender () const |
Return active event sender. Null outside event handling. | |
EventHandler * | GetEventHandler () const |
Return active event handler. Null outside event handling. | |
bool | HasSubscribedToEvent (StringHash eventType) const |
Return whether has subscribed to an event without specific sender. | |
bool | HasSubscribedToEvent (Object *sender, StringHash eventType) const |
Return whether has subscribed to a specific sender's event. | |
bool | HasEventHandlers () const |
Return whether has subscribed to any event. | |
template<class T > | |
T * | GetSubsystem () const |
Template version of returning a subsystem. | |
const String & | GetCategory () const |
Return object category. Categories are (optionally) registered along with the object factory. Return an empty string if the object category is not registered. | |
Public Member Functions inherited from Urho3D::RefCounted | |
RefCounted () | |
Construct. Allocate the reference count structure and set an initial self weak reference. | |
virtual | ~RefCounted () |
Destruct. Mark as expired and also delete the reference count structure if no outside weak references exist. | |
void | AddRef () |
Increment reference count. Can also be called outside of a SharedPtr for traditional reference counting. | |
void | ReleaseRef () |
Decrement reference count and delete self if no more references. Can also be called outside of a SharedPtr for traditional reference counting. | |
int | Refs () const |
Return reference count. | |
int | WeakRefs () const |
Return weak reference count. | |
RefCount * | RefCountPtr () |
Return pointer to the reference count structure. | |
Static Public Member Functions | |
static void | RegisterObject (Context *context) |
Register object factory. | |
static String | GetTextureUnitName (TextureUnit unit) |
Return name for texture unit. | |
static Variant | ParseShaderParameterValue (const String &value) |
Parse a shader parameter value from a string. Retunrs either a bool, a float, or a 2 to 4-component vector. | |
Static Public Member Functions inherited from Urho3D::Object | |
static const TypeInfo * | GetTypeInfoStatic () |
Return type info static. | |
Private Member Functions | |
URHO3D_OBJECT (Material, Resource) | |
bool | BeginLoadJSON (Deserializer &source) |
Helper function for loading JSON files. | |
bool | BeginLoadXML (Deserializer &source) |
Helper function for loading XML files. | |
void | ResetToDefaults () |
Reset to defaults. | |
void | RefreshShaderParameterHash () |
Recalculate shader parameter hash. | |
void | RefreshMemoryUse () |
Recalculate the memory used by the material. | |
void | ApplyShaderDefines (unsigned index=M_MAX_UNSIGNED) |
Reapply shader defines to technique index. By default reapply all. | |
ShaderParameterAnimationInfo * | GetShaderParameterAnimationInfo (const String &name) const |
Return shader parameter animation info. | |
void | UpdateEventSubscription () |
Update whether should be subscribed to scene or global update events for shader parameter animation. | |
void | HandleAttributeAnimationUpdate (StringHash eventType, VariantMap &eventData) |
Update shader parameter animations. | |
Private Attributes | |
Vector< TechniqueEntry > | techniques_ |
Techniques. | |
HashMap< TextureUnit, SharedPtr< Texture > > | textures_ |
Textures. | |
HashMap< StringHash, MaterialShaderParameter > | shaderParameters_ |
Shader parameters. | |
HashMap< StringHash, SharedPtr < ShaderParameterAnimationInfo > > | shaderParameterAnimationInfos_ |
Shader parameters animation infos. | |
String | vertexShaderDefines_ |
Vertex shader defines. | |
String | pixelShaderDefines_ |
Pixel shader defines. | |
CullMode | cullMode_ |
Normal culling mode. | |
CullMode | shadowCullMode_ |
Culling mode for shadow rendering. | |
FillMode | fillMode_ |
Polygon fill mode. | |
BiasParameters | depthBias_ |
Depth bias parameters. | |
unsigned char | renderOrder_ |
Render order value. | |
unsigned | auxViewFrameNumber_ |
Last auxiliary view rendered frame number. | |
unsigned | shaderParameterHash_ |
Shader parameter hash value. | |
bool | alphaToCoverage_ |
Alpha-to-coverage flag. | |
bool | lineAntiAlias_ |
Line antialiasing flag. | |
bool | occlusion_ |
Render occlusion flag. | |
bool | specular_ |
Specular lighting flag. | |
bool | subscribed_ |
Flag for whether is subscribed to animation updates. | |
bool | batchedParameterUpdate_ |
Flag to suppress parameter hash and memory use recalculation when setting multiple shader parameters (loading or resetting the material.) | |
SharedPtr< XMLFile > | loadXMLFile_ |
XML file used while loading. | |
SharedPtr< JSONFile > | loadJSONFile_ |
JSON file used while loading. | |
WeakPtr< Scene > | scene_ |
Associated scene for shader parameter animation updates. | |
Additional Inherited Members | |
Protected Attributes inherited from Urho3D::Object | |
Context * | context_ |
Execution context. | |
Detailed Description
Describes how to render 3D geometries.
The documentation for this class was generated from the following files:
- Source/Urho3D/Graphics/Material.h
- Source/Urho3D/Graphics/Material.cpp