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.# ConstantsPARAM 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