Subversion Repositories AndroidProjects

Rev

Blame | Last modification | View Log | RSS feed

!!ARBvp1.0


# Purpose:


# Input Parameters:
# TexCoord0: Particle texture.
# TexCoord1: Corner point of particle.
#               xy: Particle corner. x and y have to be -1 or 1.
# TexCoord2: Particle options.
#               xy: Up vector
#               z: Particle size.


# Constants
PARAM ModelViewProj[4] = { state.matrix.mvp };


TEMP vertexpos;
TEMP offsetvector, offsetlength, rightvector;

# Move vertex to corner position.
MUL offsetlength, vertex.texcoord[2].xyxx, vertex.texcoord[2].z;
MUL offsetvector, vertex.texcoord[1].y, offsetlength;
ADD vertexpos, offsetvector, vertex.position;

# Generate normal vector of the up vector.
MUL rightvector, vertex.texcoord[2].yxxx, {1.0, -1.0, 0.0, 0.0};

MUL offsetlength, rightvector, vertex.texcoord[2].z;
MUL offsetvector, vertex.texcoord[1].x, offsetlength;
ADD vertexpos, offsetvector, vertexpos;

MOV vertexpos.zw, {0.0, 0.0, 0.0, 1.0};

# Transform into world space.
DP4 result.position.x, ModelViewProj[0], vertexpos;
DP4 result.position.y, ModelViewProj[1], vertexpos;
DP4 result.position.z, ModelViewProj[2], vertexpos;
DP4 result.position.w, ModelViewProj[3], vertexpos;

MOV result.texcoord[0], vertex.texcoord[0];
MOV result.color, vertex.color;

END