MAPPER_NAME
Description: 
What the mapper does
Params:
What to type in the argument space
<Argument Name> = (type) <default value>
e.g. if it says
UPerSec=(float) 0.0;
it means you have to type in
UPerSec=1.0;
to get your U coordinate scrolling at one unit per second and it has to be a float. If you don't type anything the
default value is 0.0.

Types:
(float) - any real number
(int) - any integer
(bool) - either TRUE or FALSE


LINEAR_OFFSET
Description:
Makes the texture scroll at the speed specified
Params:
UPerSec=(float) 0.0;
VPerSec=(float) 0.0;
UScale=(float) 1.0;
VScale=(float) 1.0;

CLASSIC_ENVIRONMENT
Description:
Uses the Normals to look up the environment map

ENVIRONMENT
Description:
Uses the Reflection direction to look up the environment map

SCREEN
Description:
Projects takes the screen coordinate as the UV coordinate
Params:
UScale=(float) 1.0f;
VScale=(float) 1.0f;

SILHOUETTE
Description: Obsolete, not supported

SCALE
Description:
Scales the UV coordinates. Useful for detail mapping.
Params:
UScale=(float) 1.0f;
VScale=(float) 1.0f;

GRID
Description:
Given a texture that is divided up in to a grid, it animates the texture by looking
up the texture from the topleft to the bottom right, going left to right and then
top to bottom (the same way you would read English text). The texture map must be divided
up evenly.
Params:
FPS=(float) 1.0f; The frames per second
Log2Width=(int) 1; So 0=width 1, 1=width 2, 2=width 4. The default means animate using a texture divided up into quarters.
Last=(int) GridWidth*GridWidth; The last frame to use

ROTATE
Description:
Rotates a texture map counterclockwise about a specified center then scales the texture
Params:
Speed=(float) 0.1f; In Hertz. 1 = 1 rotate per second
UCenter=(float) 0.0f;
VCenter=(float) 0.0f;
UScale=(float) 1.0;
VScale=(float) 1.0;

SINE_LINEAR_OFFSET
Description:
Moves the texture map in the shape of a Lissajous figure.
Params:
UAmp=(float) 1.0f;
UFreq=(float) 1.0f;
UPhase=(float) 0.0f;	
VAmp=(float) 1.0f;	
VFreq=(float) 1.0f;
VPhase=(float) 0.0f;

STEP_LINEAR_OFFSET
Description:
Similar to Linear Offset but moves stuff around in discrete steps
Params:
UStep=(float) 0.0f;
VStep=(float) 0.0f;
SPS=(float) 0.0f; Steps per second

ZIGZAG_LINEAR_OFFSET
Description:
Similar to Linear Offset but reverses direction periodically.
Params:
UPerSec=(float) 0.0f;
VPerSec=(float) 0.0f;
Period=(float) 0.0f; Time it takes to make a zigzag in seconds

WS_CLASSIC_ENVIRONMENT
Description:
World space normal environment map

WS_ENVIRONMENT
Description:
World space reflection environment map

GRID_CLASSIC_ENVIRONMENT
Description:
Animated normal environment map

GRID_ENVIRONMENT
Description:
Animated reflection environtment map

RANDOM
Description: Randomly rotates and translates a texture with linear offset
FPS=(float) 0.0f; Frames per second
UPerSec=(float) 0.0;
VPerSec=(float) 0.0;

EDGE
Description: Uses the Z-coordinate of the reflection or normal vector to access the U coordinate
The V-coordinate is linear offset
VPerSec=(float) 0.0
UseReflect=FALSE
VStart=(float) 0.0

BUMPENV
Description: Sets up and possibly animates the bump matrix, also has the LinearOffset features
NOTE: even if you don't want to animate the bump matrix, you should use this mapper
so that the matrix gets set up with the identity settings.
BumpRotation = (float) 0.1f; In Hertz. 1 = 1 rotate per second  (DEFAULT = 0.0)
BumpScale = scale factor applied to the bumps					(DEFAULT = 1.0)
UPerSec=(float) 0.0;
VPerSec=(float) 0.0;
UScale=(float) 1.0;
VScale=(float) 1.0;


-----------
TODO:
-the ability to affect the period of the zigzag in only one direction (V) while the other (U) continues to offset undisturbed in the original linear fashion.
-groovy scaling
-scale random
-random mapper random time