nightVisionF.glsl
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:1k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. /**
  2.  * @file nightVisionF.glsl
  3.  *
  4.  * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
  5.  * $License$
  6.  */
  7. uniform sampler2DRect RenderTexture;
  8. uniform sampler2D NoiseTexture;
  9. uniform float brightMult;
  10. uniform float noiseStrength;
  11. float luminance(vec3 color)
  12. {
  13. /// CALCULATING LUMINANCE (Using NTSC lum weights)
  14. /// http://en.wikipedia.org/wiki/Luma_%28video%29
  15. return dot(color, vec3(0.299, 0.587, 0.114));
  16. }
  17. void main(void) 
  18. {
  19. /// Get scene color
  20. vec3 color = vec3(texture2DRect(RenderTexture, gl_TexCoord[0].st));
  21. /// Extract luminance and scale up by night vision brightness
  22. float lum = luminance(color) * brightMult;
  23. /// Convert into night vision color space
  24. /// Newer NVG colors (crisper and more saturated)
  25. vec3 outColor = (lum * vec3(0.91, 1.21, 0.9)) + vec3(-0.07, 0.1, -0.12); 
  26. /// Add noise
  27. float noiseValue = texture2D(NoiseTexture, gl_TexCoord[1].st).r;
  28. noiseValue = (noiseValue - 0.5) * noiseStrength;
  29. /// Older NVG colors (more muted)
  30. // vec3 outColor = (lum * vec3(0.82, 0.75, 0.83)) + vec3(0.05, 0.32, -0.11); 
  31. outColor += noiseValue;
  32. gl_FragColor = vec4(outColor, 1.0);
  33. }