!!ARBvp1.0
#********************************************************************#
# Coder : Abdul Bezrati #
# Contact: [email]abezrati@hotmail.com[/email] #
# Info : Texture Coordinates = vertex.texcoord[0] #
# Tangent Vector = vertex.texcoord[1] #
# Binoraml Vector = vertex.texcoord[2] #
#********************************************************************#
OPTION ARB_position_invariant;
PARAM modelViewInvTrans[4] = { state.matrix.modelview.invtrans};
PARAM modelView[4] = { state.matrix.modelview};
TEMP eyeVector;
DP4 eyeVector.x, modelView[0], vertex.position;
DP4 eyeVector.y, modelView[1], vertex.position;
DP4 eyeVector.z, modelView[2], vertex.position;
MOV eyeVector, -eyeVector;
MOV result.texcoord[0], vertex.texcoord[0];
DP3 result.texcoord[1].x, modelViewInvTrans[0], vertex.texcoord[1];
DP3 result.texcoord[1].y, modelViewInvTrans[0], vertex.texcoord[2];
DP3 result.texcoord[1].z, modelViewInvTrans[0], vertex.normal;
DP3 result.texcoord[2].x, modelViewInvTrans[1], vertex.texcoord[1];
DP3 result.texcoord[2].y, modelViewInvTrans[1], vertex.texcoord[2];
DP3 result.texcoord[2].z, modelViewInvTrans[1], vertex.normal;
DP3 result.texcoord[3].x, modelViewInvTrans[2], vertex.texcoord[1];
DP3 result.texcoord[3].y, modelViewInvTrans[2], vertex.texcoord[2];
DP3 result.texcoord[3].z, modelViewInvTrans[2], vertex.normal;
MOV result.texcoord[1].w, eyeVector.x;
MOV result.texcoord[2].w, eyeVector.y;
MOV result.texcoord[3].w, eyeVector.z;
END
#
!!ARBfp1.0
#*********************************************************************#
#Author:Abdul Bezrati "Java Cool Dude" #
#*********************************************************************#
TEMP normalVector, reflectionVector, viewVector;
TEMP usefulTemp, cubeMapFragment;
TEX usefulTemp, fragment.texcoord[0], texture[0], 2D;
MAD usefulTemp, usefulTemp, 2.0, -1.0;
DP3 normalVector.x, usefulTemp, fragment.texcoord[1];
DP3 normalVector.y, usefulTemp, fragment.texcoord[2];
DP3 normalVector.z, usefulTemp, fragment.texcoord[3];
DP3 normalVector.w, normalVector, normalVector;
RSQ normalVector.w, normalVector.w;
MUL normalVector, normalVector, normalVector.w;
MOV viewVector.x , fragment.texcoord[1].w;
MOV viewVector.y , fragment.texcoord[2].w;
MOV viewVector.z , fragment.texcoord[3].w;
DP3 usefulTemp , normalVector, viewVector;
ADD usefulTemp , usefulTemp , usefulTemp;
MAD reflectionVector, usefulTemp, normalVector, -viewVector;
TEX usefulTemp , fragment.texcoord[0], texture[1], 2D;
TEX cubeMapFragment, reflectionVector , texture[2], CUBE;
MUL usefulTemp, usefulTemp, 1.6;
MUL result.color, usefulTemp, cubeMapFragment;
END