vs_2_0 dcl_position v0 dcl_normal v1 dcl_texcoord0 v3 dcl_texcoord1 v4 dcl_texcoord2 v5 dcl_texcoord3 v6 dcl_tangent v7 dcl_binormal v8 dcl_texcoord4 v9 #include "..\..\VertexShader.h" ;------------------------------------------------------------------------------ ; Geometry transform ;------------------------------------------------------------------------------ ; Copy model-space geometry to pipeline registers mov pPos, vPos mov pNormal, vNormal ; Copy model-space basis vectors to pipeline registers mov pBasisU, vBasisU mov pBasisV, vBasisV ; Transform position to projection space m4x4 OPOS, vPos, C_PROJECTION_MATRIX FIXUP_OPOS #include "..\..\VertexShader.h" ;------------------------------------------------------------------------------ ; Defines ;------------------------------------------------------------------------------ #define C_EYE_POSITION c10 #define C_HALF c11 ;------------------------------------------------------------------------------ ; Diffuse color ;------------------------------------------------------------------------------ ; Calculate normalized eye vector add rVertexToEye, C_EYE_POSITION, -pPos NormalizeVector(rVertexToEye) ; Calculate normalized half vector add rHalfVector, rVertexToEye, vLightDir NormalizeVector(rHalfVector) ; Calculate self-shadowing term dp3 rTemp, pNormal, rHalfVector sge rTemp, rTemp, C_ZERO ; Store attenuated material color in diffuse channel mov oD0.xyz, C_MATERIAL_COLOR mul oD0.w, C_MATERIAL_COLOR, rTemp ; Transform H vector into texture space and store in the specular channel dp3 rTemp.x, rHalfVector, pBasisU dp3 rTemp.y, rHalfVector, pBasisV dp3 rTemp.z, rHalfVector, pNormal mad oD1.xyz, rTemp, C_HALF, C_HALF #ifdef _PCBUILD mov oD1.w, C_ONE #endif #include "..\..\VertexShader.h" ;------------------------------------------------------------------------------ ; Fog calculation ;------------------------------------------------------------------------------ #include "..\..\VertexShader.h" ;------------------------------------------------------------------------------ ; Texture coordinates ;------------------------------------------------------------------------------ ; Copy base texture coords mul oT0.xy, vTexCoords, C_TEXCOORD_DECOMPRESS ; Copy light map coords from UV set 3 mul oT1.xy, vTexCoords3, C_TEXCOORD_DECOMPRESS