!!ARBvp1.0 # # Fragment program to ... # # Orion Sky Lawlor, olawlor@acm.org, 2005/2/7 (Public Domain) # # Compute clip coordinates by the multiplying by modelview & projection matrix PARAM mvp[4] = { state.matrix.mvp }; # Map vertex to clip coordinates, by multiplying by mvp matrix: DP4 result.position.x, mvp[0], vertex.position; DP4 result.position.y, mvp[1], vertex.position; DP4 result.position.z, mvp[2], vertex.position; DP4 result.position.w, mvp[3], vertex.position; # Compute world position of vertex by multiplying by modelview PARAM mv[4] = { state.matrix.modelview }; TEMP world; # Location of vertex in world coordinates DP4 world.x, mv[0], vertex.position; DP4 world.y, mv[1], vertex.position; DP4 world.z, mv[2], vertex.position; MOV world.w, {1,1,1,1}; # Compute world normal of vertex by multiplying by modelview inverse transpose PARAM mvi[4] = { state.matrix.modelview.invtrans}; TEMP worldN; DP4 worldN.x, mvi[0], vertex.normal; DP4 worldN.y, mvi[1], vertex.normal; DP4 worldN.z, mvi[2], vertex.normal; MOV worldN.w, {1,1,1,0}; TEMP L; DP4 L.w,worldN,worldN; # Normalize RSQ L,L.w; MUL worldN,worldN,L; MOV result.texcoord[3],0.1; MOV result.texcoord[4],world; # world-space position MOV result.texcoord[5],worldN; # world-space normal END