Team Fortress 2 Source Code as on 22/4/2020
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.

32 lines
1019 B

  1. ps.1.1
  2. ;------------------------------------------------------------------------------
  3. ; Environment mapping on a bumped surface
  4. ; t0 - Normalmap
  5. ; t3 - Cube environment map (*must* be a cube map!)
  6. ;
  7. ; c0 - color to multiply the results by
  8. ; Input texture coords required here are a little wonky.
  9. ; tc0.uv <- U,V into the normal map
  10. ; tc1.uvw, tc2.uvw, tc3.uvw <- 3x3 matrix transform
  11. ; from tangent space->env map space
  12. ; tc1.q, tc2.q, tc3.q <- eye vector in env map space
  13. ;------------------------------------------------------------------------------
  14. ; Get the 3-vector from the normal map
  15. tex t0
  16. ; Perform matrix multiply to get a local normal bump. Then
  17. ; reflect the eye vector through the normal and sample from
  18. ; a cubic environment map.
  19. texm3x3pad t1, t0_bx2
  20. texm3x3pad t2, t0_bx2
  21. texm3x3vspec t3, t0_bx2
  22. ; result goes in output color (multiply by constant color c0)
  23. mul r0, t3, c0
  24. ; The output alpha comes from the normal map.
  25. mov r0.w, t0.a ; don't need this if we aren't alpha blending!