ps.1.1

;------------------------------------------------------------------------------
; Environment mapping on a bumped surface
; t0 - Normalmap
; t3 - Cube environment map (*must* be a cube map!)
;
; c0 - color to multiply the results by
; Input texture coords required here are a little wonky.
; tc0.uv <- U,V into the normal map
; tc1.uvw, tc2.uvw, tc3.uvw <- 3x3 matrix transform 
;								from tangent space->env map space
; tc1.q, tc2.q, tc3.q <- eye vector in env map space
;------------------------------------------------------------------------------
; This version doesn't multiply by lighting.

; Get the 3-vector from the normal map
tex t0

; Perform matrix multiply to get a local normal bump.  Then
; reflect the eye vector through the normal and sample from 
; a cubic environment map.
texm3x3pad t1, t0_bx2
texm3x3pad t2, t0_bx2		
texm3x3vspec t3, t0_bx2

; result goes in output color
mul r0.rgb, t3, c0 ; constant color
+mov r0.a, c0.a

mul		r1.rgb, r0, r0
lrp		r0.rgb, c1, r1, r0 ; blend between color and color * color
dp3		r1.rgb, r0, c3
lrp		r0.rgb, c2, r0, r1 ; blend between color and greyscale