#include "VertexShader.h" ;------------------------------------------------------------------------------ ; Defines ;------------------------------------------------------------------------------ #define C_EYE_POSITION c10 #define C_MODEL_VIEW_MATRIX_0 c14 #define C_MODEL_VIEW_MATRIX_1 c15 #define C_MODEL_VIEW_MATRIX_2 c16 #define C_MODEL_VIEW_MATRIX_3 c17 #define C_MODEL_VIEW_MATRIX C_MODEL_VIEW_MATRIX_0 ;------------------------------------------------------------------------------ ; Vertex transformation ;------------------------------------------------------------------------------ ; Transform to projection space m4x4 OPOS, vPos, C_PROJECTION_MATRIX FIXUP_OPOS ;------------------------------------------------------------------------------ ; Lighting calculation ;------------------------------------------------------------------------------ ; Compute the normalized vertex to eye vector add rVertexToEye, C_EYE_POSITION, -vPos NormalizeVector(rVertexToEye) ; Dot with vertex normal and take absolute value dp3 rLightCoeff.x, vNormal, rVertexToEye max rLightCoeff.x, rLightCoeff.x, -rLightCoeff.x sub rLightCoeff.x, C_ONE, rLightCoeff.x mad rLightCoeff.x, rLightCoeff.x, c11.x, c11.y ; Modulate with constant diffuse mul oD0, rLightCoeff.x, C_MATERIAL_COLOR ;mov oD0, C_MATERIAL_COLOR ; Calculate fog factor CalculateLayeredFog(vPos, oFog) ;------------------------------------------------------------------------------ ; Texture coordinates ;------------------------------------------------------------------------------ dp3 r0.x, vNormal, C_MODEL_VIEW_MATRIX_0 dp3 r0.y, vNormal, C_MODEL_VIEW_MATRIX_1 ;mad oT0.xy, r0, c11.zz, c11.ww mov oT0.xy, c11.zz ; Copy base tex coords ;mov oT0.xy, vTexCoords