/************************************************** * File: Facing.txt Vertex Shader * * Author: Ben Cohen (02/11/2000) * * Description: Facing camera objects * *************************************************/ /************************************************* * Constants: * * c0 - constants vector {0,1.0,0.5,256} * c1 - screen offsets {0.53125, 0.53125, 0.03125, 0.0} * c2-c5 - World->screen transformation matrix. * c6 - Light direction * c7 - Directional light colour * c8 - Ambient light Colour * * Streams: * v0 - Centre Position vector {x,y,z,w} * v1 - Vertex position {x,y,z,w} * v2 - Colour * v3 - Texture co-ords {u,v} * ************************************************/ xvs.1.0 #include "Shader_def.h" #define R_WORLDVIEW_MATRIX_0 r0 #define R_WORLDVIEW_MATRIX_1 r1 #define R_WORLDVIEW_MATRIX_2 r2 ; Copy matrix to temp registers mov r2.w, v0.z +mov r1.xyz, c[CV_FACING_BLIT_1] mov r1.w, v0.y +mov r0.xyz, c[CV_FACING_BLIT_0] mov r0.w, v0.x mov r2.xyz, c[CV_FACING_BLIT_2] ; Copy vertex colour across +mov oD0, v2 ; Transform position by inverserworld->view matrix dp4 r0.x, v1, R_WORLDVIEW_MATRIX_0 dp4 r0.y, v1, R_WORLDVIEW_MATRIX_1 dp4 r0.z, v1, R_WORLDVIEW_MATRIX_2 dp4 r0.w, v1, c[CV_FACING_BLIT_3] ; Copy texture co-ords across mov oT0, v3 ; Transform position by view->screen matrix dp4 oPos.x, r0, c[CV_WORLDVIEWPROJ_0] dp4 oPos.y, r0, c[CV_WORLDVIEWPROJ_1] dp4 oPos.z, r0, c[CV_WORLDVIEWPROJ_2] dp4 oPos.w, r0, c[CV_WORLDVIEWPROJ_3] /***************/ /* END OF FILE */ /***************/