init: sdl init: enet init: video: mode init: video: misc init: gl Renderer: GeForce 6600/AGP/SSE2/3DNOW! (NVIDIA Corporation) Driver: 2.1.1 NVIDIA 100.14.19 Rendering using the OpenGL 1.5 GLSL shader path. init: console init: gl: effects VS default: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; MOV result.texcoord[0], vertex.texcoord[0]; MOV result.color, vertex.color; END PS default: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; TEMP diffuse; TEX diffuse, fragment.texcoord[0], texture[0], 2D; MUL result.color, fragment.color, diffuse; END ************** VS rgbonly: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; MOV result.texcoord[0], vertex.texcoord[0]; MOV result.color, vertex.color; END PS rgbonly: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; TEMP diffuse; TEX diffuse, fragment.texcoord[0], texture[0], 2D; MUL result.color.xyz, fragment.color, diffuse; MOV result.color.w, fragment.color; END ************** VS notexture: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; MOV result.color, vertex.color; END PS notexture: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; MOV result.color, fragment.color; END ************** VS fogged: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; MOV result.texcoord[0], vertex.texcoord[0]; MOV result.color, vertex.color; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; END PS fogged: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse; TEX diffuse, fragment.texcoord[0], texture[0], 2D; MUL result.color, fragment.color, diffuse; END ************** VS foggednotexture: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; MOV result.color, vertex.color; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; END PS foggednotexture: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; MOV result.color, fragment.color; END ************** VS nocolor: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; END PS nocolor: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; END ************** VS nocolorglsl: void main() { gl_Position = ftransform(); } PS nocolorglsl: void main() {} ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS stdworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS stdworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[14], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS decalworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS decalworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[14], dynlight.x, lm; TEMP decal; TEX decal, fragment.texcoord[0], texture[2], 2D; LRP diffuse, decal.w, decal, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS colorworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS colorworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, program.env[16]; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS glowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS glowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, program.env[16]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[14], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[14], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water END ************** VS pulseworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS result.texcoord[2], k; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; TEMP pulse; TEX pulse, fragment.texcoord[0], texture[2], 2D; LRP diffuse, fragment.texcoord[2], pulse, diffuse; MUL diffuse, diffuse, 2; MUL result.color, diffuse, lm; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water END ************** VS pulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP k, col; MUL k, program.env[6], program.env[17].x; FRC k, k; MAD k, k, 2, -1; ABS k, k; SUB col, program.env[18], program.env[16]; MAD result.texcoord[2], k, col, program.env[16]; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS pulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; MUL diffuse, diffuse, 2; TEMP glow; TEX glow, fragment.texcoord[0], texture[2], 2D; MUL glow, glow, fragment.texcoord[2]; MAD result.color, lm, diffuse, glow; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS fogworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; END PS fogworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; MOV result.color, state.fog.color; END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap DP4 result.texcoord[4].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[4].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[4].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[4], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[4].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap DP4 result.texcoord[4].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[4].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[4].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[4], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[4].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap DP4 result.texcoord[4].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[4].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[4].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[5].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[4], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[4].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[10], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap DP4 result.texcoord[4].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[4].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[4].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[5].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[4], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[4].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[10], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap DP4 result.texcoord[4].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[4].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[4].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[5].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[4], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[4].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[11], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap DP4 result.texcoord[4].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[4].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[4].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[5].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[4], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[4].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[11], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap DP4 result.texcoord[4].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[4].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[4].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[5].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[4], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[4].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[12], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap DP4 result.texcoord[4].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[4].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[4].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[5].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[4], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[4].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[12], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap DP4 result.texcoord[4].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[4].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[4].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[5].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[4], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[4].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[5], program.env[2].w, program.env[2]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[13], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap DP4 result.texcoord[4].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[4].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[4].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[5].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[4], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[4].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[5], program.env[2].w, program.env[2]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[13], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap DP4 result.texcoord[4].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[4].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[4].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[5].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[4], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[4].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[5], program.env[2].w, program.env[2]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[13], dynlight.x, lm; MAD dynlightdir.xyz, fragment.texcoord[5], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[14], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap DP4 result.texcoord[4].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[4].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[4].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[5].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[4], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[4].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[5], program.env[2].w, program.env[2]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[13], dynlight.x, lm; MAD dynlightdir.xyz, fragment.texcoord[5], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[14], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[14], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; MAD result.texcoord[2], vertex.color, 2, -1; SUB result.texcoord[3], program.env[4], opos; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[14], dynlight.x, lm; ATTRIB normal = fragment.texcoord[2]; ATTRIB camvec = fragment.texcoord[3]; TEMP rvec; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD rvec, rvec, 2, -camvec; TEMP reflect; TEX reflect, rvec, texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[14], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, lm, program.env[7]; MAD lm.rgb, smvals.y, -smambient, lm; #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD lm.rgb, program.env[14], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water END ************** VS envworldfast: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP camvec, normal, rvec; MAD normal, vertex.color, 2, -1; SUB camvec, program.env[4], opos; DP3 rvec, camvec, normal; MUL rvec, rvec, normal; MAD result.texcoord[2], rvec, 2, -camvec; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS envworldfast: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; TEMP diffuse, lm; TEX diffuse, fragment.texcoord[0], texture[0], 2D; TEX lm, fragment.texcoord[1], texture[1], 2D; #pragma CUBE2_shadowmap lm #pragma CUBE2_dynlight lm TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD lm.rgb, program.env[10], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD lm.rgb, program.env[11], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD lm.rgb, program.env[12], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD lm.rgb, program.env[13], dynlight.x, lm; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD lm.rgb, program.env[14], dynlight.x, lm; TEMP reflect; TEX reflect, fragment.texcoord[2], texture[2], CUBE; MUL diffuse, diffuse, 2; MUL diffuse, diffuse, lm; LRP result.color, program.env[16], reflect, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[14], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[14], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; #pragma CUBE2_water END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[12], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[12], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[13], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[13], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[14], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[14], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD light.rgb, program.env[14], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD light.rgb, program.env[14], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[14], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[14], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD light.rgb, program.env[14], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD light.rgb, program.env[14], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[14], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water END ************** VS bumpspecmapworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[14], dynlight.x, light; MUL result.color, diffuse, light; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpspecmapglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecmapglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MUL he.w, he, diffuse; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap DP4 result.texcoord[2].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[2].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[2].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[2], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[2].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; #pragma CUBE2_water END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water END ************** VS bumpglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[2].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[2].w, 1; MAD result.texcoord[3].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[2], fragment.texcoord[2]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[13], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; MAD result.color, glow, program.env[16], diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap DP4 result.texcoord[3].x, state.matrix.texture[2].row[0], vertex.position; DP4 result.texcoord[3].y, state.matrix.texture[2].row[1], vertex.position; DP4 result.texcoord[3].z, state.matrix.texture[2].row[2], vertex.position; #pragma CUBE2_dynlight MAD result.texcoord[4].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light TEMP smvals, smdiff, smambient; TEX smvals, fragment.texcoord[3], texture[7], 2D; MAD_SAT smdiff.xz, -fragment.texcoord[3].z, smvals.y, smvals; CMP smvals.y, -smdiff.x, smvals.y, 0; MAD_SAT smvals.y, -8, smdiff.z, smvals.y; SUB_SAT smambient.rgb, light, program.env[7]; MAD light.rgb, smvals.y, -smambient, light; #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[7], fragment.texcoord[7]; MAD light.rgb, program.env[13], dynlight.x, light; TEMP dynlightdir; MAD dynlightdir.xyz, fragment.texcoord[4], program.env[3].w, program.env[3]; DP3_SAT dynlight.x, dynlightdir, dynlightdir; SUB dynlight.x, 1, dynlight.x; MAD light.rgb, program.env[14], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; #pragma CUBE2_water MAD result.texcoord[0].z, opos.z, program.env[8].y, program.env[8].z; END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, bump, light; TEX lmc, lmtc, texture[1], 2D; TEX lmlv, lmtc, texture[2], 2D; MAD lmlv, lmlv, 2, -1; TEMP camvts; DP3 camvts.w, cam, cam; RSQ camvts.w, camvts.w; MUL camvts.xyz, camvts.w, cam; TEX diffuse, dtc, texture[0], 2D; MUL diffuse, diffuse, 2; TEX bump, dtc, texture[3], 2D; MAD bump.xyz, bump, 2, -1; PARAM specfactor = 32; TEMP he; ADD he, camvts, lmlv; DP3 he.w, he, he; RSQ he.w, he.w; MUL he.xyz, he.w, he; DP3_SAT he.w, he, bump; POW he.w, he.w, specfactor.x; MAD diffuse.xyz, he.w, program.env[17], diffuse; DP3_SAT light, bump, lmlv; MUL light, light, lmc; MAX light, light, program.env[5]; #pragma CUBE2_shadowmap light #pragma CUBE2_dynlight light TEMP dynlight; DPH_SAT dynlight.x, -fragment.texcoord[3], fragment.texcoord[3]; MAD light.rgb, program.env[10], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[4], fragment.texcoord[4]; MAD light.rgb, program.env[11], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[5], fragment.texcoord[5]; MAD light.rgb, program.env[12], dynlight.x, light; DPH_SAT dynlight.x, -fragment.texcoord[6], fragment.texcoord[6]; MAD light.rgb, program.env[13], dynlight.x, light; MUL diffuse.rgb, diffuse, light; TEMP glow; TEX glow, dtc, texture[4], 2D; TEMP pulsecol; LRP pulsecol, fragment.texcoord[1].w, program.env[21], program.env[16]; MAD result.color, glow, pulsecol, diffuse; #pragma CUBE2_water MOV result.color.a, fragment.texcoord[0].z; END ************** VS bumpspecpulseglowworld: !!ARBvp1.0 OPTION ARB_position_invariant; ATTRIB opos = vertex.position; DP3 result.texcoord[0].x, opos, program.env[0]; DP3 result.texcoord[0].y, opos, program.env[1]; DP3 result.texcoord[1].x, state.matrix.texture[1].row[0], vertex.texcoord[1]; DP3 result.texcoord[1].y, state.matrix.texture[1].row[1], vertex.texcoord[1]; TEMP fogplane; MAD fogplane, state.matrix.modelview.row[2], program.env[8].x, program.env[9]; DP4 result.fogcoord, -opos, fogplane; TEMP camv, normal, tangent, binormal, x, y; MAD normal, vertex.color, 2, -1; DP3 x, normal, program.env[2]; MUL x, x, normal; SUB tangent, program.env[2], x; DP3 x, tangent, program.env[3]; MUL x, x, tangent; DP3 y, normal, program.env[3]; MUL y, y, normal; SUB binormal, program.env[3], x; SUB binormal, binormal, y; SUB camv, program.env[4], opos; DP3 result.texcoord[2].x, camv, tangent; DP3 result.texcoord[2].y, camv, binormal; DP3 result.texcoord[2].z, camv, normal; TEMP pulse, pulsecol; MUL pulse, program.env[6], program.env[20].x; FRC pulse, pulse; MAD pulse, pulse, 2, -1; ABS result.texcoord[1].w, pulse.x; #pragma CUBE2_shadowmap #pragma CUBE2_dynlight MAD result.texcoord[3].xyz, vertex.position, program.env[10].w, program.env[10]; MOV result.texcoord[3].w, 1; MAD result.texcoord[4].xyz, vertex.position, program.env[11].w, program.env[11]; MOV result.texcoord[4].w, 1; MAD result.texcoord[5].xyz, vertex.position, program.env[12].w, program.env[12]; MOV result.texcoord[5].w, 1; MAD result.texcoord[6].xyz, vertex.position, program.env[13].w, program.env[13]; MOV result.texcoord[6].w, 1; MAD result.texcoord[7].xyz, vertex.position, program.env[14].w, program.env[14]; MOV result.texcoord[7].w, 1; #pragma CUBE2_water END PS bumpspecpulseglowworld: !!ARBfp1.0 OPTION ARB_precision_hint_fastest; OPTION ARB_fog_linear; ATTRIB dtc = fragment.texcoord[0]; ATTRIB lmtc = fragment.texcoord[1]; ATTRIB cam = fragment.texcoord[2]; TEMP diffuse, lmc, lmlv, b