home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GameStar Special 2004 January
/
GSSH0104TT.iso
/
Extras
/
Tron20
/
tron_tools.exe
/
TRON_Tools
/
Tools
/
RenderStyles
/
vs_basic_3light.vsh
< prev
next >
Wrap
Text File
|
2003-03-10
|
2KB
|
51 lines
; Vertex Data:
; v0 - Position
; v1 - Normal
; v2 - uv1
;
; Constant Data:
; c0 - Constant Vector (0.0, 0.5, 1.0, 2.0)
; c1:c4 - Projection Matrix
; c5:c8 - ModelViewProj Matrix
; c5 - Light direction
; c6 - Light color
vs.1.1
// Transform position (all the way)...
LT_MACRO_RIGIDTRANS4<oPos,v0,c5> // Rigid Transform...
LT_MACRO_SKINBLENDTRANS4<r0,v0,v3,v4,r1,c25> // Skin Blended Transform (Position)...
LT_MACRO_SKINTRANS4<oPos,r0,c1> // Skin Projection...
LT_MACRO_SKINBLENDTRANS3<r6,v1,v3,v4,r1,c25> // Skin Blended Transform (Normal)...
LT_MACRO_IFSKIN<dp3 r6.w, r6, r6> // Normalize the normal...
LT_MACRO_IFSKIN<rsq r6.w, r6.w>
LT_MACRO_IFSKIN<mul r6, r6, r6.w>
// Do the Lighting...
mov r5.xyz, c21.xyz
mul r4.xyz, c24.xyz, r5.xyz // Ambiet Light first...
add r4.xyz, r4.xyz, c23.xyz // Add in Emissive...
LT_MACRO_IFRIGID<add r5, -v0, c9> // Rigid: Light Vector (Model Space)...
LT_MACRO_IFSKIN<add r5, -r0, c12> // Skin: Light Vector (Camera Space)...
LT_MACRO_LIGHT_ATT<r3.x,r5,v1,r6,r1,r2,c18>
max r3.x, r3.x, c0.x
mul r3.xyz, r3.xxx, c22.xyz // Material Attenuation...
mad r4.xyz, r3.xyz, c15.xyz, r4.xyz // Add in light 1...
LT_MACRO_IFRIGID<add r5, -v0, c10> // Rigid: Light Vector (Model Space)...
LT_MACRO_IFSKIN<add r5, -r0, c13> // Skin: Light Vector (Camera Space)...
LT_MACRO_LIGHT_ATT<r3.x,r5,v1,r6,r1,r2,c19>
max r3.x, r3.x, c0.x
mul r3.xyz, r3.xxx, c22.xyz // Material Attenuation...
mad r4.xyz, r3.xyz, c16.xyz, r4.xyz // Add in light 2...
LT_MACRO_IFRIGID<add r5, -v0, c11> // Rigid: Light Vector (Model Space)...
LT_MACRO_IFSKIN<add r5, -r0, c14> // Skin: Light Vector (Camera Space)...
LT_MACRO_LIGHT_ATT<r3.x,r5,v1,r6,r1,r2,c20>
max r3.x, r3.x, c0.x
mul r3.xyz, r3.xxx, c22.xyz // Material Attenuation...
mad oD0.xyz, r3.xyz, c17.xyz, r4.xyz // Add in light 3...
// Output UVs...
mov oT0, v2
mov oT1, v2