PPFilmGrain.bsl 584 B

1234567891011121314151617181920212223242526272829303132
  1. #include "$ENGINE$\PPBase.bslinc"
  2. shader PPFilmGrain
  3. {
  4. mixin PPBase;
  5. code
  6. {
  7. [internal]
  8. cbuffer Params
  9. {
  10. float gIntensity;
  11. float gTime;
  12. }
  13. SamplerState gInputSamp
  14. {
  15. Filter = MIN_MAG_MIP_POINT;
  16. };
  17. Texture2D gInputTex;
  18. float4 fsmain(VStoFS input) : SV_Target0
  19. {
  20. float2 uv = input.uv0;
  21. float x = (uv.x + 4.0f) * (uv.y + 4.0f) * gTime;
  22. float4 grain = (fmod((fmod(x, 13.0f) + 1.0f) * (fmod(x, 123.0f) + 1.0f), 0.01f) - 0.005f) * gIntensity;
  23. float4 color = gInputTex.Sample(gInputSamp, uv);
  24. return color + grain;
  25. }
  26. };
  27. };