GL Studio C++ Runtime API
|
#include <effect_diff_norm_spec_refl.h>
Classes | |
class | TextureUVWMatrix |
Public Member Functions | |
Effect_DiffNormSpecRefl (const Effect_DiffNormSpecRefl &) | |
Copy constructor. | |
const Effect_DiffNormSpecRefl & | operator= (const Effect_DiffNormSpecRefl &) |
bool | operator== (const Effect_DiffNormSpecRefl &) const |
bool | operator!= (const Effect_DiffNormSpecRefl &o) const |
void | SetMaterialIndex (unsigned int materialIndex) |
unsigned int | GetMaterialIndex () const |
void | SetUseVertexColor (bool value) |
bool | GetUseVertexColor () const |
void | SetDiffuseTextureIndex (int textureIndex) |
int | GetDiffuseTextureIndex () const |
void | SetNormalTextureIndex (int textureIndex) |
int | GetNormalTextureIndex () const |
void | SetSpecularTextureIndex (int textureIndex) |
int | GetSpecularTextureIndex () const |
void | SetReflectionTextureIndex (int textureIndex) |
int | GetReflectionTextureIndex () const |
void | SetDiffuseAmount (float value) |
float | GetDiffuseAmount () const |
void | SetNormalAmount (float value) |
float | GetNormalAmount () const |
void | SetSpecularAmount (float value) |
float | GetSpecularAmount () const |
void | SetReflectionAmount (float value) |
float | GetReflectionAmount () const |
void | SetNormalMapFlipGreen (bool value) |
bool | GetNormalMapFlipGreen () const |
void | SetDiffuseUVWSettings (float uOffset, float vOffset, float uTiling, float vTiling, float angle) |
void | GetDiffuseUVWSettings (float &uOffset, float &vOffset, float &uTiling, float &vTiling, float &angle) |
void | SetNormalUVWSettings (float uOffset, float vOffset, float uTiling, float vTiling, float angle) |
void | GetNormalUVWSettings (float &uOffset, float &vOffset, float &uTiling, float &vTiling, float &angle) |
void | SetSpecularUVWSettings (float uOffset, float vOffset, float uTiling, float vTiling, float angle) |
void | GetSpecularUVWSettings (float &uOffset, float &vOffset, float &uTiling, float &vTiling, float &angle) |
void | SelectShader () |
void | TextureUVWSettingsChanged () |
bool | UsesTextureTransforms () |
DistiAttribDict & | Attributes () DISTI_METHOD_OVERRIDE |
const std::string & | EffectTypeName () DISTI_METHOD_OVERRIDE |
virtual GLint | GetVertexAttribIndexForSemantic (int semanticEnum) DISTI_METHOD_OVERRIDE |
virtual void | AddRef () DISTI_METHOD_OVERRIDE |
Add to this object's reference count. More... | |
virtual void | Release () DISTI_METHOD_OVERRIDE |
Release a reference to this object. More... | |
virtual unsigned int | GlsRenderEffect_ClassID () const DISTI_METHOD_OVERRIDE |
virtual void | SetupEffect (DynamicArray< Material > &materialPalette, TexturePalette *texturePalette, const TextureSettings &textureSettings, float *viewToWorld3x3, unsigned int maxLightNum, unsigned int activeLightMask) DISTI_METHOD_OVERRIDE |
virtual void | CleanupEffect () DISTI_METHOD_OVERRIDE |
Remove the effect trom the OpenGL state. More... | |
virtual int | Compare (const GlsRenderEffect *) const DISTI_METHOD_OVERRIDE |
virtual GlsRenderEffect * | Clone () const DISTI_METHOD_OVERRIDE |
virtual void | GetReferencedTextures (ReferencedTextureArray &referencedTextures) DISTI_METHOD_OVERRIDE |
virtual void | GetReferencedMaterials (ReferencedMaterialArray &referencedMaterials) DISTI_METHOD_OVERRIDE |
Public Member Functions inherited from GlsRenderEffect | |
virtual void | AddRef ()=0 |
Add to this object's reference count. More... | |
virtual void | Release ()=0 |
Release a reference to this object. More... | |
virtual unsigned int | GlsRenderEffect_ClassID () const =0 |
virtual void | SetupEffect (DynamicArray< Material > &materialPalette, TexturePalette *texturePalette, const TextureSettings &textureSettings, float *viewToWorld3x3, unsigned int maxLightNum, unsigned int activeLightMask)=0 |
virtual void | CleanupEffect ()=0 |
Remove the effect trom the OpenGL state. More... | |
virtual int | Compare (const GlsRenderEffect *other) const =0 |
bool | Equals (const GlsRenderEffect *other) const |
virtual DistiAttribDict & | Attributes ()=0 |
virtual const std::string & | EffectTypeName ()=0 |
virtual GlsRenderEffect * | Clone () const =0 |
virtual void | GetReferencedMaterials (ReferencedMaterialArray &referencedMaterials) |
virtual void | GetReferencedTextures (ReferencedTextureArray &referencedTextures) |
virtual GLint | GetVertexAttribIndexForSemantic (int semanticEnum)=0 |
Protected Member Functions | |
void | SetupAttribDict () |
Protected Attributes | |
unsigned int | _ref_count |
Reference count. | |
MaxLike_Shader * | _shader |
shader program to use (if any) | |
unsigned int | _materialIndex |
The material index to use. | |
int | _diffuseTextureIndex |
INVALID_INDEX, or the texture index to use. | |
int | _normalTextureIndex |
INVALID_INDEX, or the texture index to use. | |
int | _specularTextureIndex |
INVALID_INDEX, or the texture index to use. | |
int | _reflectionTextureIndex |
INVALID_INDEX, or the texture index to use. | |
float | _diffuseAmount |
[0.0,1.0] "Weight" of the diffuse map | |
float | _normalAmount |
[0.0,1.0] "Weight" of the normal map | |
float | _specularAmount |
[0.0,1.0] "Weight" of the specular map | |
float | _reflectionAmount |
[0.0,1.0] "Weight" of the reflection map | |
bool | _useVertexColors |
true: use vertex color for diffuse rather than material diffuse | |
bool | _normalMapFlipGreen |
DistiAttribDict * | _attribDict |
The attribute dictionary for this object. | |
TextureUVWMatrix | _diffuseUVWMatrix |
The texture transform for the diffuse texture. | |
TextureUVWMatrix | _normalUVWMatrix |
The texture transform for the normal texture. | |
TextureUVWMatrix | _specularUVWMatrix |
The texture transform for the specular texture. | |
Additional Inherited Members | |
Public Types inherited from GlsRenderEffect | |
typedef bool(* | DebugModeChangeCallback) (void *user, const char *modeName, bool value) |
Public Types inherited from VertexAttribIndexLookup | |
enum | AttributeSemanticEnum { ATTRIB_UNDEFINED = 0 , ATTRIB_POSITION = 0x80000000 , ATTRIB_NORMAL , ATTRIB_BLENDWEIGHT , ATTRIB_TANGENT , ATTRIB_BINORMAL , ATTRIB_BLENDINDICES , ATTRIB_PSIZE , ATTRIB_TEXCOORD0 , ATTRIB_TEXCOORD1 , ATTRIB_TEXCOORD2 , ATTRIB_TEXCOORD3 , ATTRIB_TEXCOORD4 , ATTRIB_TEXCOORD5 , ATTRIB_TEXCOORD6 , ATTRIB_TEXCOORD7 } |
Static Public Member Functions inherited from GlsRenderEffect | |
static unsigned int | SetDebugMode (const char *modeName, bool value) |
static unsigned int | RegisterNewClassID (const char *debugStr=NULL) |
static bool | RegisterDebugModeChangeCallback (void *param, DebugModeChangeCallback func) |
static bool | UnregisterDebugModeChangeCallback (void *param, DebugModeChangeCallback func) |
Render effect that supports diffuse, normal, specular, and reflection maps.
|
virtual |
Add to this object's reference count.
Implements GlsRenderEffect.
|
inlinevirtual |
Implements GlsRenderEffect.
|
virtual |
Remove the effect trom the OpenGL state.
Implements GlsRenderEffect.
|
virtual |
Implements GlsRenderEffect.
|
virtual |
other | The effect to compare with. |
Implements GlsRenderEffect.
|
inlinevirtual |
Implements GlsRenderEffect.
|
inline |
|
inline |
void GetDiffuseUVWSettings | ( | float & | uOffset, |
float & | vOffset, | ||
float & | uTiling, | ||
float & | vTiling, | ||
float & | angle | ||
) |
Get Diffuse Map UV transform parameters.
uOffset | Returned u axis translation. |
vOffset | Returned v axis translation. |
uTiling | Returned u axis scaling. |
vTiling | Returned v axis scaling. |
angle | Returned x axis rotation in degrees. |
|
inline |
|
inline |
|
inline |
|
inline |
void GetNormalUVWSettings | ( | float & | uOffset, |
float & | vOffset, | ||
float & | uTiling, | ||
float & | vTiling, | ||
float & | angle | ||
) |
Get Normal Map UV transform parameters.
uOffset | Returned u axis translation. |
vOffset | Returned v axis translation. |
uTiling | Returned u axis scaling. |
vTiling | Returned v axis scaling. |
angle | Returned W-axis rotation in degrees. |
|
virtual |
Checks whether or not the effect is transparent. Implementing is optional Inserts all referenced textures into the array passed in. Implementing is optional.
referencedMaterials | A returned array of material indices. |
Reimplemented from GlsRenderEffect.
|
virtual |
Inserts all referenced textures into the array passed in. Implementing is optional.
referencedTextures | A returned array of texture indices. |
Reimplemented from GlsRenderEffect.
|
inline |
|
inline |
|
inline |
|
inline |
void GetSpecularUVWSettings | ( | float & | uOffset, |
float & | vOffset, | ||
float & | uTiling, | ||
float & | vTiling, | ||
float & | angle | ||
) |
Get Specular Map UV transform parameters.
uOffset | Returned u axis translation. |
vOffset | Returned v axis translation. |
uTiling | Returned u axis scaling. |
vTiling | Returned v axis scaling. |
angle | Returned W-axis rotation in degrees. |
|
inline |
|
virtual |
semanticEnum | The sematic value (see AttributeSemanticEnum) |
Implements VertexAttribIndexLookup.
|
virtual |
Allows for static casting in compare functions
Implements GlsRenderEffect.
|
inline |
Inequality operator
o | The object to compare. |
const Effect_DiffNormSpecRefl & operator= | ( | const Effect_DiffNormSpecRefl & | ) |
Assignment operator
bool operator== | ( | const Effect_DiffNormSpecRefl & | ) | const |
Equality operator
|
virtual |
Release a reference to this object.
Implements GlsRenderEffect.
void SelectShader | ( | ) |
Selects the shader to use based on the current effect parameters.
|
inline |
Set the weight of the diffuse texture from 0.0 to 1.0.
value | The new weight to set. |
|
inline |
Set the texture index that will provide the diffuse color for the effect.
textureIndex | The new texture index to set. |
void SetDiffuseUVWSettings | ( | float | uOffset, |
float | vOffset, | ||
float | uTiling, | ||
float | vTiling, | ||
float | angle | ||
) |
Set Diffuse Map UV transform parameters.
uOffset | U axis translation. |
vOffset | V axis translation. |
uTiling | U axis scaling. |
vTiling | V axis scaling. |
angle | X axis rotation in degrees. |
|
inline |
Set the material index for this effect.
materialIndex | The new material index for this effect. |
|
inline |
Set the weight of the normal texture from 0.0 to 1.0.
value | The new weight to set. |
|
inline |
Set flipping the normal map green channel for DirectX textures (true) or OpenGL textures (false).
value | The new flip value. |
|
inline |
Set the texture index that will provide normals for the effect
textureIndex | The new texture index to set. |
void SetNormalUVWSettings | ( | float | uOffset, |
float | vOffset, | ||
float | uTiling, | ||
float | vTiling, | ||
float | angle | ||
) |
Set Normal Map UV transform parameters.
uOffset | U axis translation. |
vOffset | V axis translation. |
uTiling | U axis scaling. |
vTiling | V axis scaling. |
angle | W-axis rotation in degrees. |
|
inline |
Set the weight of the reflection texture from 0.0 to 1.0.
value | The new weight to set. |
|
inline |
Set the texture index that will provide reflections for this effect.
textureIndex | The new texture index to set. |
|
inline |
Set the weight of the specular texture from 0.0 to 1.0.
value | The new weight to set. |
|
inline |
Set the texture index that will provide specular for this effect.
textureIndex | The new texture index to set. |
void SetSpecularUVWSettings | ( | float | uOffset, |
float | vOffset, | ||
float | uTiling, | ||
float | vTiling, | ||
float | angle | ||
) |
Set Specular Map UV transform parameters.
uOffset | U axis translation. |
vOffset | V axis translation. |
uTiling | U axis scaling. |
vTiling | V axis scaling. |
angle | W-axis rotation in degrees. |
|
protected |
Called to add this object's attributes to the dictionary.
|
virtual |
Apply the effect to the OpenGL state
materialPalette | Used to access material settings |
texturePalette | Used to access texture maps |
textureSettings | The object-level texture settings |
viewToWorld3x3 | A 3x3 matrix containing the current viewToWorld transfrom. Used for environment mapping effects. |
maxLightNum | The number of active lights in the scene. Used to speed up light calculations. |
activeLightMask | A bit mask of which lights are active in the scene (Ex. GL_LIGHT0, GL_LIGHT2, GL_LIGHT3 and GL_LIGHT7 are active: activeLightMask = ...10001101 last 8 bits in binary = 141u) |
Implements GlsRenderEffect.
|
inline |
Set whether or not to use vertex colors, rather than material colors.
value | The new value to set. |
void TextureUVWSettingsChanged | ( | ) |
Recalculate the texture transform matrices.
bool UsesTextureTransforms | ( | ) |
|
protected |
true: expect 'DirectX' format normal maps (positive Green points down) false: expect 'OpenGL' format normal maps (positive Green points up) Note: the sense is backwards from the Max 'Normal Bump' 'Flip Green' option because Max defaults to 'DirectX' format and GL Studio defaults to 'OpenGL' format