100 lines
2.5 KiB
Plaintext
100 lines
2.5 KiB
Plaintext
|
!!ARBvp1.0 OPTION ARB_position_invariant ;
|
||
|
|
||
|
TEMP R0, R1, R2;
|
||
|
|
||
|
PARAM defaultTexCoord = { 0, 0.5, 0, 1 };
|
||
|
|
||
|
SUB R0, program.env[4], vertex.position;
|
||
|
|
||
|
DP3 result.texcoord[0].x, vertex.attrib[9], R0;
|
||
|
DP3 result.texcoord[0].y, vertex.attrib[10], R0;
|
||
|
DP3 result.texcoord[0].z, vertex.attrib[11], R0;
|
||
|
|
||
|
MOV result.texcoord[1], defaultTexCoord;
|
||
|
DP4 result.texcoord[1].x, vertex.attrib[8], program.env[10];
|
||
|
DP4 result.texcoord[1].y, vertex.attrib[8], program.env[11];
|
||
|
|
||
|
MOV result.texcoord[2], defaultTexCoord;
|
||
|
DP4 result.texcoord[2].x, vertex.position, program.env[9];
|
||
|
|
||
|
DP4 result.texcoord[3].x, vertex.position, program.env[6];
|
||
|
DP4 result.texcoord[3].y, vertex.position, program.env[7];
|
||
|
DP4 result.texcoord[3].w, vertex.position, program.env[8];
|
||
|
|
||
|
MOV result.texcoord[4], defaultTexCoord;
|
||
|
DP4 result.texcoord[4].x, vertex.attrib[8], program.env[12];
|
||
|
DP4 result.texcoord[4].y, vertex.attrib[8], program.env[13];
|
||
|
|
||
|
MOV result.texcoord[5], defaultTexCoord;
|
||
|
DP4 result.texcoord[5].x, vertex.attrib[8], program.env[14];
|
||
|
DP4 result.texcoord[5].y, vertex.attrib[8], program.env[15];
|
||
|
|
||
|
SUB R0, program.env[4], vertex.position;
|
||
|
DP3 R1, R0, R0;
|
||
|
RSQ R1, R1.x;
|
||
|
MUL R0, R0, R1.x;
|
||
|
|
||
|
SUB R1, program.env[5], vertex.position;
|
||
|
DP3 R2, R1, R1;
|
||
|
RSQ R2, R2.x;
|
||
|
MUL R1, R1, R2.x;
|
||
|
|
||
|
ADD R0, R0, R1;
|
||
|
|
||
|
DP3 result.texcoord[6].x, vertex.attrib[9], R0;
|
||
|
DP3 result.texcoord[6].y, vertex.attrib[10], R0;
|
||
|
DP3 result.texcoord[6].z, vertex.attrib[11], R0;
|
||
|
|
||
|
MAD result.color, vertex.color, program.env[16], program.env[17];
|
||
|
|
||
|
END
|
||
|
|
||
|
!!ARBfp1.0
|
||
|
OPTION ARB_precision_hint_fastest;
|
||
|
|
||
|
TEMP light, color, R1, R2, localNormal, specular;
|
||
|
|
||
|
PARAM subOne = { -1, -1, -1, -1 };
|
||
|
PARAM scaleTwo = { 2, 2, 2, 2 };
|
||
|
|
||
|
|
||
|
DP3 specular, fragment.texcoord[6],fragment.texcoord[6];
|
||
|
RSQ specular, specular.x;
|
||
|
MUL specular, specular.x, fragment.texcoord[6];
|
||
|
|
||
|
TEX light, fragment.texcoord[0], texture[0], CUBE;
|
||
|
MAD light, light, scaleTwo, subOne;
|
||
|
|
||
|
|
||
|
TEX localNormal, fragment.texcoord[1], texture[1], 2D;
|
||
|
MOV localNormal.x, localNormal.a;
|
||
|
MAD localNormal, localNormal, scaleTwo, subOne;
|
||
|
DP3 light, light, localNormal;
|
||
|
|
||
|
TXP R1, fragment.texcoord[3], texture[3], 2D;
|
||
|
MUL light, light, R1;
|
||
|
|
||
|
TXP R1, fragment.texcoord[2], texture[2], 2D;
|
||
|
MUL light, light, R1;
|
||
|
|
||
|
TEX R1, fragment.texcoord[4], texture[4], 2D;
|
||
|
MUL color, R1, program.env[0];
|
||
|
|
||
|
DP3 specular, specular, localNormal;
|
||
|
|
||
|
TEX R1, specular, texture[6], 2D;
|
||
|
|
||
|
MUL R1, R1, program.env[1];
|
||
|
|
||
|
TEX R2, fragment.texcoord[5], texture[5], 2D;
|
||
|
ADD R2, R2, R2;
|
||
|
MAD color, R1, R2, color;
|
||
|
|
||
|
|
||
|
MUL color, light, color;
|
||
|
|
||
|
MUL result.color, color, fragment.color;
|
||
|
|
||
|
END
|
||
|
|