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.

35 lines
1.0 KiB

  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. ; This version doesn't multiply by lighting.
  15. ; Get the 3-vector from the normal map
  16. tex t0
  17. ; Perform matrix multiply to get a local normal bump. Then
  18. ; reflect the eye vector through the normal and sample from
  19. ; a cubic environment map.
  20. texm3x3pad t1, t0_bx2
  21. texm3x3pad t2, t0_bx2
  22. texm3x3vspec t3, t0_bx2
  23. ; result goes in output color (multiply by constant color c0)
  24. mul r0, t3, c0
  25. ; Multiply the output color by the alpha channel of the normal map.
  26. mul r0.rgb, t0.a, r0