DigitalSpaces::DIOGRETextureUnitState Struct Reference
[Ogre]

#include <OGREInterfaces.h>

Inherits DigitalSpaces::DIObjectBase.


Public Member Functions

const char * getTextureName ()
 Get the name of current texture image for this layer.
void setTextureName (const char *name, OGRETextureType ttype=TEX_TYPE_2D)
 Sets this texture layer to use a single texture, given the name of the texture to use on this layer.
void setCubicTextureName (const char *name, bool forUVW=false)
 Sets this texture layer to use a combination of 6 texture maps, each one relating to a face of a cube.
void setAnimatedTextureName (const char *name, unsigned int numFrames, float duration=0)
 Sets the names of the texture images for an animated texture.
void getTextureDimensions (unsigned int *x_out, unsigned int *y_out, unsigned int frame=0)
 Returns the width and height of the texture in the given frame.
void setCurrentFrame (unsigned int frameNumber)
 Changes the active frame in an animated or multi-image texture.
unsigned int getCurrentFrame ()
 Gets the active frame in an animated or multi-image texture layer.
const char * getFrameTextureName (unsigned int frameNumber)
 Gets the name of the texture associated with a frame.
unsigned int getNumFrames ()
 Gets the number of frames for a texture.
bool isCubic ()
 Returns true if this texture unit is either a series of 6 2D textures, each in it's own frame, or is a full 3D cube map.
bool is3D ()
 Returns true if this texture layer uses a composite 3D cubic texture.
OGRETextureType getTextureType ()
 Returns the type of this texture.
unsigned int getTextureCoordSet ()
 Gets the index of the set of texture co-ords this layer uses.
void setTextureCoordSet (unsigned int set)
 Sets the index of the set of texture co-ords this layer uses.
void setTextureTransform (in_Matrix4f *xform)
 Sets a matrix used to transform any texture coordinates on this layer.
void getTextureTransform (out_Matrix4f *xform)
 Gets the current texture transformation matrix.
void setTextureScroll (float u, float v)
 Sets the translation offset of the texture, ie scrolls the texture.
void setTextureUScroll (float value)
 As setTextureScroll, but sets only U value.
float getTextureUScroll ()
void setTextureVScroll (float value)
 As setTextureScroll, but sets only V value.
float getTextureVScroll ()
void setTextureUScale (float value)
 As setTextureScale, but sets only U value.
float getTextureUScale ()
void setTextureVScale (float value)
 As setTextureScale, but sets only V value.
float getTextureVScale ()
void setTextureScale (float uScale, float vScale)
 Sets the scaling factor applied to texture coordinates.
void setTextureRotateRadians (const float angle)
 Sets the anticlockwise rotation factor applied to texture coordinates.
float getTextureRotateRadians ()
OGRETextureAddressingMode getTextureAddressingModeU ()
 Gets the texture addressing mode, i.e.
OGRETextureAddressingMode getTextureAddressingModeV ()
OGRETextureAddressingMode getTextureAddressingModeW ()
void setTextureAddressingMode (OGRETextureAddressingMode tam)
 Sets the texture addressing mode, i.e.
void setColourOperationEx (OGRELayerBlendOperationEx op, OGRELayerBlendSource source1, OGRELayerBlendSource source2, in_Vector3f *arg1, in_Vector3f *arg2, float manualBlend)
 Setting advanced blending options.
void setColourOperation (const OGRELayerBlendOperation op)
 Determines how this texture layer is combined with the one below it (or the diffuse colour of the geometry if this is layer 0).
void setColourOpMultipassFallback (const OGRESceneBlendFactor sourceFactor, const OGRESceneBlendFactor destFactor)
 Sets the multipass fallback operation for this layer, if you used TextureUnitState::setColourOperationEx and not enough multitexturing hardware is available.
DIOGRELayerBlendModeExgetColourBlendMode ()
 Get multitexturing colour blending mode.
DIOGRELayerBlendModeExgetAlphaBlendMode ()
 Get multitexturing alpha blending mode.
OGRESceneBlendFactor getColourBlendFallbackSrc ()
 Get the multipass fallback for colour blending operation source factor.
OGRESceneBlendFactor getColourBlendFallbackDest ()
 Get the multipass fallback for colour blending operation destination factor.
void setAlphaOperation (OGRELayerBlendOperationEx op, OGRELayerBlendSource source1=LBS_TEXTURE, OGRELayerBlendSource source2=LBS_CURRENT, float arg1=1.0, float arg2=1.0, float manualBlend=0.0)
 Sets the alpha operation to be applied to this texture.
void setEnvironmentMap (bool enable, OGREEnvMapType envMapType=ENV_CURVED)
 Turns on/off texture coordinate effect that makes this layer an environment map.
void setScrollAnimation (float uSpeed, float vSpeed)
 Sets up an animated scroll for the texture layer.
void setRotateAnimation (float speed)
 Sets up an animated texture rotation for this layer.
void setTransformAnimation (const OGRETextureTransformType ttype, const OGREWaveformType waveType, float base=0, float frequency=1, float phase=0, float amplitude=1)
 Sets up a general time-relative texture modification effect.
void setProjectiveTexturing (bool enabled, const DIOGREFrustum *projectionSettings=0)
 Enables or disables projective texturing on this texture unit.
void removeAllEffects ()
 Removes all effects applied to this texture layer.
void removeEffect (const OGRETextureEffectType type)
 Removes a single effect applied to this texture layer.
bool isBlank ()
 Determines if this texture layer is currently blank.
void setBlank ()
 Sets this texture layer to be blank.
float getAnimationDuration ()
void setTextureFiltering (OGRETextureFilterOptions filterType)
 Set the texture filtering for this unit, using the simplified interface.
void setTextureFiltering (OGREFilterType ftype, OGREFilterOptions opts)
 Set a single filtering option on this texture unit.
void setTextureFiltering (OGREFilterOptions minFilter, OGREFilterOptions magFilter, OGREFilterOptions mipFilter)
 Set a the detailed filtering options on this texture unit.
OGREFilterOptions getTextureFiltering (OGREFilterType ftpye)
void setTextureAnisotropy (unsigned int maxAniso)
 Sets the anisotropy level to be used for this texture level.
unsigned int getTextureAnisotropy ()
DIOGREPassgetParent ()
 Gets the parent Pass object.
bool hasViewRelativeTextureCoordinateGeneration ()
 Returns whether this unit has texture coordinate generation that depends on the camera.

Member Function Documentation

const char* DigitalSpaces::DIOGRETextureUnitState::getTextureName (  ) 

Get the name of current texture image for this layer.

Remarks:
This will either always be a single name for this layer, or will be the name of the current frame for an animated or otherwise multi-frame texture.
Note:
Applies to both fixed-function and programmable pipeline.

void DigitalSpaces::DIOGRETextureUnitState::setTextureName ( const char *  name,
OGRETextureType  ttype = TEX_TYPE_2D 
)

Sets this texture layer to use a single texture, given the name of the texture to use on this layer.

Note:
Applies to both fixed-function and programmable pipeline.

void DigitalSpaces::DIOGRETextureUnitState::setCubicTextureName ( const char *  name,
bool  forUVW = false 
)

Sets this texture layer to use a combination of 6 texture maps, each one relating to a face of a cube.

Remarks:
Cubic textures are made up of 6 separate texture images. Each one of these is an orthoganal view of the world with a FOV of 90 degrees and an aspect ratio of 1:1. You can generate these from 3D Studio by rendering a scene to a reflection map of a transparent cube and saving the output files.
Cubic maps can be used either for skyboxes (complete wrap-around skies, like space) or as environment maps to simulate reflections. The system deals with these 2 scenarios in different ways:
  1. for cubic environment maps, the 6 textures are combined into a single 'cubic' texture map which is then addressed using 3D texture coordinates. This is required because you don't know what face of the box you're going to need to address when you render an object, and typically you need to reflect more than one face on the one object, so all 6 textures are needed to be 'active' at once. Cubic environment maps are enabled by calling this method with the forUVW parameter set to true, and then calling setEnvironmentMap(true).

    Note that not all cards support cubic environment mapping.

  2. for skyboxes, the 6 textures are kept separate and used independently for each face of the skybox. This is done because not all cards support 3D cubic maps and skyboxes do not need to use 3D texture coordinates so it is simpler to render each face of the box with 2D coordinates, changing texture between faces.

    Skyboxes are created by calling SceneManager::setSkyBox.

Note:
Applies to both fixed-function and programmable pipeline.
Parameters:
name The basic name of the texture e.g. brickwall.jpg, stonefloor.png. There must be 6 versions of this texture with the suffixes _fr, _bk, _up, _dn, _lf, and _rt (before the extension) which make up the 6 sides of the box. The textures must all be the same size and be powers of 2 in width & height. If you can't make your texture names conform to this, use the alternative method of the same name which takes an array of texture names instead.
forUVW Set to true if you want a single 3D texture addressable with 3D texture coordinates rather than 6 separate textures. Useful for cubic environment mapping.

void DigitalSpaces::DIOGRETextureUnitState::setAnimatedTextureName ( const char *  name,
unsigned int  numFrames,
float  duration = 0 
)

Sets the names of the texture images for an animated texture.

Remarks:
Animated textures are just a series of images making up the frames of the animation. All the images must be the same size, and their names must have a frame number appended before the extension, e.g. if you specify a name of "wall.jpg" with 3 frames, the image names must be "wall_0.jpg", "wall_1.jpg" and "wall_2.jpg".
You can change the active frame on a texture layer by calling the setCurrentFrame method.
Note:
If you can't make your texture images conform to the naming standard layed out here, you can call the alternative setAnimatedTextureName method which takes an array of names instead.

Applies to both fixed-function and programmable pipeline.

Parameters:
name The base name of the textures to use e.g. wall.jpg for frames wall_0.jpg, wall_1.jpg etc.
numFrames The number of frames in the sequence.
duration The length of time it takes to display the whole animation sequence, in seconds. If 0, no automatic transition occurs.

void DigitalSpaces::DIOGRETextureUnitState::getTextureDimensions ( unsigned int *  x_out,
unsigned int *  y_out,
unsigned int  frame = 0 
)

Returns the width and height of the texture in the given frame.

void DigitalSpaces::DIOGRETextureUnitState::setCurrentFrame ( unsigned int  frameNumber  ) 

Changes the active frame in an animated or multi-image texture.

Remarks:
An animated texture (or a cubic texture where the images are not combined for 3D use) is made up of a number of frames. This method sets the active frame.
Note:
Applies to both fixed-function and programmable pipeline.

unsigned int DigitalSpaces::DIOGRETextureUnitState::getCurrentFrame (  ) 

Gets the active frame in an animated or multi-image texture layer.

Note:
Applies to both fixed-function and programmable pipeline.

const char* DigitalSpaces::DIOGRETextureUnitState::getFrameTextureName ( unsigned int  frameNumber  ) 

Gets the name of the texture associated with a frame.

Note:
Applies to both fixed-function and programmable pipeline.

unsigned int DigitalSpaces::DIOGRETextureUnitState::getNumFrames (  ) 

Gets the number of frames for a texture.

Note:
Applies to both fixed-function and programmable pipeline.

bool DigitalSpaces::DIOGRETextureUnitState::isCubic (  ) 

Returns true if this texture unit is either a series of 6 2D textures, each in it's own frame, or is a full 3D cube map.

You can tell which by checking getTextureType.

Note:
Applies to both fixed-function and programmable pipeline.

bool DigitalSpaces::DIOGRETextureUnitState::is3D (  ) 

Returns true if this texture layer uses a composite 3D cubic texture.

Note:
Applies to both fixed-function and programmable pipeline.

OGRETextureType DigitalSpaces::DIOGRETextureUnitState::getTextureType (  ) 

Returns the type of this texture.

Note:
Applies to both fixed-function and programmable pipeline.

unsigned int DigitalSpaces::DIOGRETextureUnitState::getTextureCoordSet (  ) 

Gets the index of the set of texture co-ords this layer uses.

Note:
Applies to both fixed-function and programmable pipeline.

void DigitalSpaces::DIOGRETextureUnitState::setTextureCoordSet ( unsigned int  set  ) 

Sets the index of the set of texture co-ords this layer uses.

Note:
Default is 0 for all layers. Only change this if you have provided multiple texture co-ords per vertex.

Applies to both fixed-function and programmable pipeline.

void DigitalSpaces::DIOGRETextureUnitState::setTextureTransform ( in_Matrix4f xform  ) 

Sets a matrix used to transform any texture coordinates on this layer.

Remarks:
Texture coordinates can be modified on a texture layer to create effects like scrolling textures. A texture transform can either be applied to a layer which takes the source coordinates from a fixed set in the geometry, or to one which generates them dynamically (e.g. environment mapping).
It's obviously a bit impractical to create scrolling effects by calling this method manually since you would have to call it every framw with a slight alteration each time, which is tedious. Instead you can use the ControllerManager class to create a Controller object which will manage the effect over time for you. See the ControllerManager::createTextureScroller and it's sibling methods for details.
In addition, if you want to set the individual texture transformations rather than concatenating them yourself, use setTextureScroll, setTextureScale and setTextureRotate.
Note:
Has no effect in the programmable pipeline.

void DigitalSpaces::DIOGRETextureUnitState::getTextureTransform ( out_Matrix4f xform  ) 

Gets the current texture transformation matrix.

Remarks:
Causes a reclaculation of the matrix if any parameters have been changed via setTextureScroll, setTextureScale and setTextureRotate.
Note:
Has no effect in the programmable pipeline.

void DigitalSpaces::DIOGRETextureUnitState::setTextureScroll ( float  u,
float  v 
)

Sets the translation offset of the texture, ie scrolls the texture.

Remarks:
This method sets the translation element of the texture transformation, and is easier to use than setTextureTransform if you are combining translation, scaling and rotation in your texture transformation. Again if you want to animate these values you need to use a Controller
Note:
Has no effect in the programmable pipeline.
Parameters:
u The amount the texture should be moved horizontally (u direction).
v The amount the texture should be moved vertically (v direction).
See also:
ControllerManager, Controller

void DigitalSpaces::DIOGRETextureUnitState::setTextureUScroll ( float  value  ) 

As setTextureScroll, but sets only U value.

Note:
Has no effect in the programmable pipeline.

float DigitalSpaces::DIOGRETextureUnitState::getTextureUScroll (  ) 

void DigitalSpaces::DIOGRETextureUnitState::setTextureVScroll ( float  value  ) 

As setTextureScroll, but sets only V value.

Note:
Has no effect in the programmable pipeline.

float DigitalSpaces::DIOGRETextureUnitState::getTextureVScroll (  ) 

void DigitalSpaces::DIOGRETextureUnitState::setTextureUScale ( float  value  ) 

As setTextureScale, but sets only U value.

Note:
Has no effect in the programmable pipeline.

float DigitalSpaces::DIOGRETextureUnitState::getTextureUScale (  ) 

void DigitalSpaces::DIOGRETextureUnitState::setTextureVScale ( float  value  ) 

As setTextureScale, but sets only V value.

Note:
Has no effect in the programmable pipeline.

float DigitalSpaces::DIOGRETextureUnitState::getTextureVScale (  ) 

void DigitalSpaces::DIOGRETextureUnitState::setTextureScale ( float  uScale,
float  vScale 
)

Sets the scaling factor applied to texture coordinates.

Remarks:
This method sets the scale element of the texture transformation, and is easier to use than setTextureTransform if you are combining translation, scaling and rotation in your texture transformation. Again if you want to animate these values you need to use a Controller (see ControllerManager and it's methods for more information).
Note:
Has no effect in the programmable pipeline.
Parameters:
uScale The value by which the texture is to be scaled horizontally.
vScale The value by which the texture is to be scaled vertically.

void DigitalSpaces::DIOGRETextureUnitState::setTextureRotateRadians ( const float  angle  ) 

Sets the anticlockwise rotation factor applied to texture coordinates.

Remarks:
This sets a fixed rotation angle - if you wish to animate this, see the ControllerManager::createTextureRotater method.
Note:
Has no effect in the programmable pipeline.
Parameters:
angle The angle of rotation (anticlockwise).

float DigitalSpaces::DIOGRETextureUnitState::getTextureRotateRadians (  ) 

OGRETextureAddressingMode DigitalSpaces::DIOGRETextureUnitState::getTextureAddressingModeU (  ) 

Gets the texture addressing mode, i.e.

what happens at uv values above 1.0.

Note:
The default is TAM_WRAP i.e. the texture repeats over values of 1.0.

OGRETextureAddressingMode DigitalSpaces::DIOGRETextureUnitState::getTextureAddressingModeV (  ) 

OGRETextureAddressingMode DigitalSpaces::DIOGRETextureUnitState::getTextureAddressingModeW (  ) 

void DigitalSpaces::DIOGRETextureUnitState::setTextureAddressingMode ( OGRETextureAddressingMode  tam  ) 

Sets the texture addressing mode, i.e.

what happens at uv values above 1.0.

Note:
The default is TAM_WRAP i.e. the texture repeats over values of 1.0.

This applies for both the fixed-function and programmable pipelines.

void DigitalSpaces::DIOGRETextureUnitState::setColourOperationEx ( OGRELayerBlendOperationEx  op,
OGRELayerBlendSource  source1,
OGRELayerBlendSource  source2,
in_Vector3f arg1,
in_Vector3f arg2,
float  manualBlend 
)

Setting advanced blending options.

Remarks:
This is an extended version of the TextureUnitState::setColourOperation method which allows extremely detailed control over the blending applied between this and earlier layers. See the IMPORTANT note below about the issues between mulitpass and multitexturing that using this method can create.
Texture colour operations determine how the final colour of the surface appears when rendered. Texture units are used to combine colour values from various sources (ie. the diffuse colour of the surface from lighting calculations, combined with the colour of the texture). This method allows you to specify the 'operation' to be used, ie. the calculation such as adds or multiplies, and which values to use as arguments, such as a fixed value or a value from a previous calculation.
The defaults for each layer are:
  • op = LBX_MODULATE
  • source1 = LBS_TEXTURE
  • source2 = LBS_CURRENT
ie. each layer takes the colour results of the previous layer, and multiplies them with the new texture being applied. Bear in mind that colours are RGB values from 0.0 - 1.0 so multiplying them together will result in values in the same range, 'tinted' by the multiply. Note however that a straight multiply normally has the effect of darkening the textures - for this reason there are brightening operations like LBO_MODULATE_X2. See the LayerBlendOperation and LayerBlendSource enumerated types for full details.
Note:
Because of the limitations on some underlying APIs (Direct3D included) the LBS_TEXTURE argument can only be used as the first argument, not the second.
The final 3 parameters are only required if you decide to pass values manually into the operation, i.e. you want one or more of the inputs to the colour calculation to come from a fixed value that you supply. Hence you only need to fill these in if you supply LBS_MANUAL to the corresponding source, or use the LBX_BLEND_MANUAL operation.
Warning:
Ogre tries to use multitexturing hardware to blend texture layers together. However, if it runs out of texturing units (e.g. 2 of a GeForce2, 4 on a GeForce3) it has to fall back on multipass rendering, i.e. rendering the same object multiple times with different textures. This is both less efficient and there is a smaller range of blending operations which can be performed. For this reason, if you use this method you MUST also call TextureUnitState::setColourOpMultipassFallback to specify which effect you want to fall back on if sufficient hardware is not available.
Note:
This has no effect in the programmable pipeline.
Parameters:
If you wish to avoid having to do this, use the simpler TextureUnitState::setColourOperation method which allows less flexible blending options but sets up the multipass fallback automatically, since it only allows operations which have direct multipass equivalents.
op The operation to be used, e.g. modulate (multiply), add, subtract
source1 The source of the first colour to the operation e.g. texture colour
source2 The source of the second colour to the operation e.g. current surface colour
arg1 Manually supplied colour value (only required if source1 = LBS_MANUAL)
arg2 Manually supplied colour value (only required if source2 = LBS_MANUAL)
manualBlend Manually supplied 'blend' value - only required for operations which require manual blend e.g. LBX_BLEND_MANUAL

void DigitalSpaces::DIOGRETextureUnitState::setColourOperation ( const OGRELayerBlendOperation  op  ) 

Determines how this texture layer is combined with the one below it (or the diffuse colour of the geometry if this is layer 0).

Remarks:
This method is the simplest way to blend tetxure layers, because it requires only one parameter, gives you the most common blending types, and automatically sets up 2 blending methods: one for if single-pass multitexturing hardware is available, and another for if it is not and the blending must be achieved through multiple rendering passes. It is, however, quite limited and does not expose the more flexible multitexturing operations, simply because these can't be automatically supported in multipass fallback mode. If want to use the fancier options, use TextureUnitState::setColourOperationEx, but you'll either have to be sure that enough multitexturing units will be available, or you should explicitly set a fallback using TextureUnitState::setColourOpMultipassFallback.
Note:
The default method is LBO_MODULATE for all layers.

This option has no effect in the programmable pipeline.

Parameters:
op One of the LayerBlendOperation enumerated blending types.

void DigitalSpaces::DIOGRETextureUnitState::setColourOpMultipassFallback ( const OGRESceneBlendFactor  sourceFactor,
const OGRESceneBlendFactor  destFactor 
)

Sets the multipass fallback operation for this layer, if you used TextureUnitState::setColourOperationEx and not enough multitexturing hardware is available.

Remarks:
Because some effects exposed using TextureUnitState::setColourOperationEx are only supported under multitexturing hardware, if the hardware is lacking the system must fallback on multipass rendering, which unfortunately doesn't support as many effects. This method is for you to specify the fallback operation which most suits you.
You'll notice that the interface is the same as the Material::setSceneBlending method; this is because multipass rendering IS effectively scene blending, since each layer is rendered on top of the last using the same mechanism as making an object transparent, it's just being rendered in the same place repeatedly to get the multitexture effect.
If you use the simpler (and hence less flexible) TextureUnitState::setColourOperation method you don't need to call this as the system sets up the fallback for you.
Note:
This option has no effect in the programmable pipeline, because there is no multipass fallback and multitexture blending is handled by the fragment shader.

DIOGRELayerBlendModeEx* DigitalSpaces::DIOGRETextureUnitState::getColourBlendMode (  ) 

Get multitexturing colour blending mode.

DIOGRELayerBlendModeEx* DigitalSpaces::DIOGRETextureUnitState::getAlphaBlendMode (  ) 

Get multitexturing alpha blending mode.

OGRESceneBlendFactor DigitalSpaces::DIOGRETextureUnitState::getColourBlendFallbackSrc (  ) 

Get the multipass fallback for colour blending operation source factor.

OGRESceneBlendFactor DigitalSpaces::DIOGRETextureUnitState::getColourBlendFallbackDest (  ) 

Get the multipass fallback for colour blending operation destination factor.

void DigitalSpaces::DIOGRETextureUnitState::setAlphaOperation ( OGRELayerBlendOperationEx  op,
OGRELayerBlendSource  source1 = LBS_TEXTURE,
OGRELayerBlendSource  source2 = LBS_CURRENT,
float  arg1 = 1.0,
float  arg2 = 1.0,
float  manualBlend = 0.0 
)

Sets the alpha operation to be applied to this texture.

Remarks:
This works in exactly the same way as setColourOperation, except that the effect is applied to the level of alpha (i.e. transparency) of the texture rather than its colour. When the alpha of a texel (a pixel on a texture) is 1.0, it is opaque, wheras it is fully transparent if the alpha is 0.0. Please refer to the setColourOperation method for more info.
Parameters:
op The operation to be used, e.g. modulate (multiply), add, subtract
source1 The source of the first alpha value to the operation e.g. texture alpha
source2 The source of the second alpha value to the operation e.g. current surface alpha
arg1 Manually supplied alpha value (only required if source1 = LBS_MANUAL)
arg2 Manually supplied alpha value (only required if source2 = LBS_MANUAL)
manualBlend Manually supplied 'blend' value - only required for operations which require manual blend e.g. LBX_BLEND_MANUAL
See also:
setColourOperation
Note:
This option has no effect in the programmable pipeline.

void DigitalSpaces::DIOGRETextureUnitState::setEnvironmentMap ( bool  enable,
OGREEnvMapType  envMapType = ENV_CURVED 
)

Turns on/off texture coordinate effect that makes this layer an environment map.

Remarks:
Environment maps make an object look reflective by using the object's vertex normals relative to the camera view to generate texture coordinates.
The vectors generated can either be used to address a single 2D texture which is a 'fish-eye' lens view of a scene, or a 3D cubic environment map which requires 6 textures for each side of the inside of a cube. The type depends on what texture you set up - if you use the setTextureName method then a 2D fisheye lens texture is required, whereas if you used setCubicTextureName then a cubic environemnt map will be used.
This effect works best if the object has lots of gradually changing normals. The texture also has to be designed for this effect - see the example spheremap.png included with the sample application for a 2D environment map; a cubic map can be generated by rendering 6 views of a scene to each of the cube faces with orthoganal views.
Note:
Enabling this disables any other texture coordinate generation effects. However it can be combined with texture coordinate modification functions, which then operate on the generated coordinates rather than static model texture coordinates.
Parameters:
enable True to enable, false to disable
planar If set to true, instead of being based on normals the environment effect is based on vertex positions. This is good for planar surfaces.
Note:
This option has no effect in the programmable pipeline.

void DigitalSpaces::DIOGRETextureUnitState::setScrollAnimation ( float  uSpeed,
float  vSpeed 
)

Sets up an animated scroll for the texture layer.

Note:
Useful for creating constant scrolling effects on a texture layer (for varying scrolls, see setTransformAnimation).
Parameters:
uSpeed The number of horizontal loops per second (+ve=moving right, -ve = moving left)
vSpeed The number of vertical loops per second (+ve=moving up, -ve= moving down)
Note:
This option has no effect in the programmable pipeline.

void DigitalSpaces::DIOGRETextureUnitState::setRotateAnimation ( float  speed  ) 

Sets up an animated texture rotation for this layer.

Note:
Useful for constant rotations (for varying rotations, see setTransformAnimation).
Parameters:
speed The number of complete anticlockwise revolutions per second (use -ve for clockwise)
Note:
This option has no effect in the programmable pipeline.

void DigitalSpaces::DIOGRETextureUnitState::setTransformAnimation ( const OGRETextureTransformType  ttype,
const OGREWaveformType  waveType,
float  base = 0,
float  frequency = 1,
float  phase = 0,
float  amplitude = 1 
)

Sets up a general time-relative texture modification effect.

Note:
This can be called multiple times for different values of ttype, but only the latest effect applies if called multiple time for the same ttype.
Parameters:
ttype The type of transform, either translate (scroll), scale (stretch) or rotate (spin)
waveType The shape of the wave, see WaveformType enum for details
base The base value for the function (range of output = {base, base + amplitude})
frequency The speed of the wave in cycles per second
phase The offset of the start of the wave, e.g. 0.5 to start half-way through the wave
amplitude Scales the output so that instead of lying within 0..1 it lies within 0..1*amplitude for exaggerated effects
Note:
This option has no effect in the programmable pipeline.

void DigitalSpaces::DIOGRETextureUnitState::setProjectiveTexturing ( bool  enabled,
const DIOGREFrustum projectionSettings = 0 
)

Enables or disables projective texturing on this texture unit.

Remarks:
Projective texturing allows you to generate texture coordinates based on a Frustum, which gives the impression that a texture is being projected onto the surface. Note that once you have called this method, the texture unit continues to monitor the Frustum you passed in and the projection will change if you can alter it. It also means that you must ensure that the Frustum object you pass a pointer to remains in existence for as long as this TextureUnitState does.
This effect cannot be combined with other texture generation effects, such as environment mapping. It also has no effect on passes which have a vertex program enabled - projective texturing has to be done in the vertex program instead.
Parameters:
enabled Whether to enable / disable
projectionSettings The Frustum which will be used to derive the projection parameters.

void DigitalSpaces::DIOGRETextureUnitState::removeAllEffects (  ) 

Removes all effects applied to this texture layer.

void DigitalSpaces::DIOGRETextureUnitState::removeEffect ( const OGRETextureEffectType  type  ) 

Removes a single effect applied to this texture layer.

Note:
Because you can only have 1 effect of each type (e.g. 1 texture coordinate generation) applied to a layer, only the effect type is required.

bool DigitalSpaces::DIOGRETextureUnitState::isBlank (  ) 

Determines if this texture layer is currently blank.

Note:
This can happen if a texture fails to load or some other non-fatal error. Worth checking after setting texture name.

void DigitalSpaces::DIOGRETextureUnitState::setBlank (  ) 

Sets this texture layer to be blank.

float DigitalSpaces::DIOGRETextureUnitState::getAnimationDuration (  ) 

void DigitalSpaces::DIOGRETextureUnitState::setTextureFiltering ( OGRETextureFilterOptions  filterType  ) 

Set the texture filtering for this unit, using the simplified interface.

Remarks:
You also have the option of specifying the minification, magnification and mip filter individually if you want more control over filtering options. See the alternative setTextureFiltering methods for details.
Note:
This option applies in both the fixed function and the programmable pipeline.
Parameters:
filterType The high-level filter type to use.

void DigitalSpaces::DIOGRETextureUnitState::setTextureFiltering ( OGREFilterType  ftype,
OGREFilterOptions  opts 
)

Set a single filtering option on this texture unit.

ftype The filtering type to set opts The filtering option to set

void DigitalSpaces::DIOGRETextureUnitState::setTextureFiltering ( OGREFilterOptions  minFilter,
OGREFilterOptions  magFilter,
OGREFilterOptions  mipFilter 
)

Set a the detailed filtering options on this texture unit.

minFilter The filtering to use when reducing the size of the texture. Can be FO_POINT, FO_LINEAR or FO_ANISOTROPIC magFilter The filtering to use when increasing the size of the texture Can be FO_POINT, FO_LINEAR or FO_ANISOTROPIC mipFilter The filtering to use between mip levels Can be FO_NONE (turns off mipmapping), FO_POINT or FO_LINEAR (trilinear filtering)

OGREFilterOptions DigitalSpaces::DIOGRETextureUnitState::getTextureFiltering ( OGREFilterType  ftpye  ) 

void DigitalSpaces::DIOGRETextureUnitState::setTextureAnisotropy ( unsigned int  maxAniso  ) 

Sets the anisotropy level to be used for this texture level.

maxAniso The maximal anisotropy level, should be between 2 and the maximum supported by hardware (1 is the default, ie. no anisotrophy).
Note:
This option applies in both the fixed function and the programmable pipeline.

unsigned int DigitalSpaces::DIOGRETextureUnitState::getTextureAnisotropy (  ) 

DIOGREPass* DigitalSpaces::DIOGRETextureUnitState::getParent (  ) 

Gets the parent Pass object.

bool DigitalSpaces::DIOGRETextureUnitState::hasViewRelativeTextureCoordinateGeneration (  ) 

Returns whether this unit has texture coordinate generation that depends on the camera.


The documentation for this struct was generated from the following file:

Generated on Sun Aug 31 17:46:32 2008 for Digital Spaces by  doxygen 1.5.6