home *** CD-ROM | disk | FTP | other *** search
ARB Vertex shader | 2004-08-14 | 3.8 KB | 103 lines |
- !!ARBvp1.0 OPTION ARB_position_invariant ;
-
- # Parallax Mapping Mod v1.0
- # by Junkguy
- # junkguy@gmail.com
- # www.junkguy.tk
- # Released on August 14, 2004
- #
- # YOU -MAY- MAKE YOUR OWN LEVEL AND ITS TEXTURES BE COMPATIBLE WITH THIS MOD AND
- # MAKE USE OF THE PARALLAX MAPPING TECHNOLOGY. SEE THE README FOR DETAILS.
- #
- # YOU MAY -NOT- USE THIS MOD AS A BASE FOR YOUR OWN MODS OR LEVELS.
- #
- # YOU MAY -NOT- INCLUDE THIS MOD, THIS SHADER, THE TEXTURES,
- # OR ANY OF THIS CODE IN YOUR OWN MOD OR LEVEL WITHOUT PERMISSION FROM JUNKGUY.
-
- 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;
- SUB R1, program.env[5], vertex.position;
- DP3 result.texcoord[7].x, vertex.attrib[9], R1;
- DP3 result.texcoord[7].y, vertex.attrib[10], R1;
- DP3 result.texcoord[7].z, vertex.attrib[11], R1;
- MOV result.texcoord[7].w, 1.0;
- 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, eye, height, newtexcoord, newbumpcoord, newspeccoord, newspeclook;
- PARAM subOne = { -1, -1, -1, -1 };
- PARAM scaleTwo = { 2, 2, 2, 2 };
- DP3 R1, fragment.texcoord[7], fragment.texcoord[7];
- RSQ R1, R1.x;
- MUL eye, fragment.texcoord[7], R1;
- TEX height, fragment.texcoord[1], texture[1], 2D;
- MAD height.x, height.z, -0.05, 0.05;
- MAD newbumpcoord, height.xxxx, eye, fragment.texcoord[1];
- MAD newtexcoord, height.xxxx, eye, fragment.texcoord[4];
- MAD newspeccoord, height.xxxx, eye, fragment.texcoord[5];
- MAD newspeclook, height.xxxx, eye, fragment.texcoord[6];
- DP3 specular, newspeclook,newspeclook;
- RSQ specular, specular.x;
- MUL specular, specular.x, newspeclook;
- TEX light, fragment.texcoord[0], texture[0], CUBE;
- MAD light, light, scaleTwo, subOne;
- TEX localNormal, newbumpcoord, texture[1], 2D;
- MOV localNormal.x, localNormal.a;
- MOV localNormal.z, 0.99;
- 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, newtexcoord, 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, newspeccoord, texture[5], 2D;
- ADD R2, R2, R2;
- MAD color, R1, R2, color;
- MUL color, light, color;
- MUL result.color, color, fragment.color;
-
- END
-
-