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],