#include "VertexShader.h" // Theirs: // v0 = pos // c0 = viewproj // c4 = m_matWorld // c15 = (1,-1,-1,0.5) // c16 = m_vTexCoordScale // c17 = v4EyePos // c18 = g_vFog // c94 = vLightReflectDir // c95 = vLightDir // Ours: // v0 = pos // c6 = worldviewproj // c10 = world // c15 = (1,-1,-1,0.5) // c16 = m_vTexCoordScale // c17 = v4EyePos // c18 = g_vFog // c19 = vLightReflectDir // c20 = vLightDir // c21 = vSpecularColor //Mesh: m4x4 r7, vPos, c10 m4x4 r0, vPos, c6 mov OPOS,r0 FIXUP_OPOS //Water: mul r8.xy,r7.xz,c16.x add oT0.xy,r8,c16.y mad r1,r0.wwww,c15.xzxx,r0 //For Nvidia cards: mul r2,r1,c15.xyxx rcp r2.w,r2.w mul oT1,r2,r2.w sge oT1.w,r2,r2 //Allow separate scale on refraction tex mul r9.xy, r7.xz, c16.z add oT2.xy, r8, c16.w //Fresnel factor sub r3,c17,r7 dp3 r3.w,r3,r3 rsq r3.w,r3.w mul r3.xyz,r3,r3.w mul r3,r3,c17.w add oT3.xy,r3.xz,c17.w mov oD0,c19 mad oFog,r0.w,c18.x,c18.y