Shader State Variables

From WikiName
Jump to: navigation, search

Jitter provides several built in uniform variables exposing OpenGL state in a GLSL shader. These can be accessed by specifying the variable name in the state attribute of the XML param tag. e.g.
<param name="itvmat" type="mat3" state="NORMAL_MATRIX" />

Available state bindings are listed below.

Model View and Projection Matrices
WORLD_MATRIX
VIEW_MATRIX
MODELVIEW_MATRIX
PROJECTION_MATRIX
VIEW_PROJECTION_MATRIX
MODELVIEW_PROJECTION_MATRIX
PREV_MODELVIEW_PROJECTION_MATRIX
NORMAL_MATRIX

Texture
TEXTURE0-7_MATRIX
TEXDIM0-7

Light
LIGHT_VIEWPROJ_MATRIX0-7
LIGHT_RANGE0-7
LIGHT0-7_POSITION
LIGHT0-7_DIRECTION
LIGHT0-7_AMBIENT
LIGHT0-7_DIFFUSE
LIGHT0-7_SPECULAR
LIGHT0-7_CUTOFF
LIGHT0-7_EXPONENT

Vertex
POSITION
NORMAL
TANGENT
BITANGENT
VERTEX_ATTR
EDGEFLAG
BLENDWEIGHT
COLOR0
COLOR1
AMBIENT
DIFFUSE
SPECULAR
EMISSION
FOGCOORD
TEXCOORD0-7
TEXUNIT0-7

Camera
CAMERA_POSITION
CAMERA_DIRECTION
VIEWPORT
INVERSE_VIEWPORT
NEAR_CLIP
FAR_CLIP
FAR_CORNER

Matrix variables can be transformed in certain ways using the transform attribute in the XML param tag:
<param name="itvmat" type="mat4" state="VIEW_MATRIX" transform="INVERSE_TRANSPOSE" />
Matrix Transformations
IDENTITY
TRANSPOSE
INVERSE
INVERSE_TRANSPOSE