You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.0 KiB
35 lines
1.0 KiB
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 (multiply by constant color c0) |
|
mul r0, t3, c0 |
|
|
|
; Multiply the output color by the alpha channel of the normal map. |
|
mul r0.rgb, t0.a, r0 |
|
|
|
|
|
|
|
|
|
|