invmonochrome.nvp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. ;
  2. ; Command & Conquer Generals(tm)
  3. ; Copyright 2025 Electronic Arts Inc.
  4. ;
  5. ; This program is free software: you can redistribute it and/or modify
  6. ; it under the terms of the GNU General Public License as published by
  7. ; the Free Software Foundation, either version 3 of the License, or
  8. ; (at your option) any later version.
  9. ;
  10. ; This program is distributed in the hope that it will be useful,
  11. ; but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. ; GNU General Public License for more details.
  14. ;
  15. ; You should have received a copy of the GNU General Public License
  16. ; along with this program. If not, see <http://www.gnu.org/licenses/>.
  17. ;
  18. ;////////////////////////////////////////////////////////////////////////////////
  19. ;// //
  20. ;// (c) 2001-2003 Electronic Arts Inc. //
  21. ;// //
  22. ;////////////////////////////////////////////////////////////////////////////////
  23. ; Terrain pixel shader
  24. ; Created: Mark Wilczynski, August 2001
  25. ; Declare pixel shader version 1.1
  26. ps.1.1
  27. tex t0 ; get texture 0
  28. ;dp3 r1, c1, t0
  29. ;add r0,r1,-c2
  30. ;mul r0,r0,c3
  31. ;mov r0,t0 ;do nothing
  32. //Inverted image
  33. ;dp3 r1, t0, c0 ;black & white conversion
  34. ;mul r0, 1-r1, c1 ;modulate inverted by filter color
  35. ;lrp r0, c2, r0, t0 ;blend modified image into original image so smooth fade in/out
  36. //Red inverted image
  37. dp3 r1, t0, c0 ;black & white conversion
  38. mul r1, r1, c1 ;modulate by filter color (inverse of red)
  39. lrp r0, c2, 1-r1, t0 ;blend modified image into original image so smooth fade in/out
  40. ;Code to clamp and expand dynamic range
  41. ;add_sat r1,r1,-c7 ;clamp out low values - 30
  42. ;add_sat r1,r1,c5 ;clamp out upper values +60
  43. ;add r1,r1,-c6 ;shift to center range at 0
  44. ;add r0,r0,-c5
  45. ;mul_x4 r0,r0,c6