Guest User

Untitled

a guest
Jan 1st, 2019
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. void Main()
  2. {
  3.  
  4. float4 color = Sample();
  5.  
  6. float Gamma = 1.2;
  7. float IntensityContrast = 1.3;
  8. float Saturation = 1.7;
  9. float ToneMappingCurve = 2.0;
  10. float ToneMappingOversaturation = 40.0;
  11.  
  12. float Brightness = 0.16;
  13. float BrightnessCurve = 1.28;
  14. float BrightnessMultiplier = 0.85;
  15. float BrightnessToneMappingCurve = 0.42;
  16.  
  17. float HPDTonemappingExposure = 2.2;
  18. float HPDTonemappingClipping = 0.0004;
  19. float HPDTonemappingUpperTone = 6.2;
  20. float HPDTonemappingGreyTone = 0.5;
  21. float HPDTonemappingMiddleTone = 1.7;
  22. float HPDTonemappingLowerTone = 0.06;
  23.  
  24. color.rgb = pow(color.rgb, Gamma);
  25.  
  26. color.rgb*=Brightness;
  27. color.rgb+=0.000001;
  28. float3 xncol=normalize(color.rgb);
  29. float3 scl=color.rgb/xncol.rgb;
  30. scl=pow(scl, IntensityContrast);
  31. xncol.rgb=pow(xncol.rgb, Saturation);
  32. color.rgb=scl*xncol.rgb;
  33.  
  34. float lumamax=ToneMappingOversaturation;
  35. color.rgb=(color.rgb * (1.0 + color.rgb/lumamax))/(color.rgb + ToneMappingCurve);
  36.  
  37. float Y = dot(color.rgb, float3(0.299, 0.587, 0.114)); //0.299 * R + 0.587 * G + 0.114 * B;
  38. float U = dot(color.rgb, float3(-0.14713, -0.28886, 0.436)); //-0.14713 * R - 0.28886 * G + 0.436 * B;
  39. float V = dot(color.rgb, float3(0.615, -0.51499, -0.10001)); //0.615 * R - 0.51499 * G - 0.10001 * B;
  40.  
  41. Y=pow(Y, BrightnessCurve);
  42. Y=Y*BrightnessMultiplier;
  43. Y=Y/(Y+BrightnessToneMappingCurve);
  44. float desaturatefact=clamp(Y*Y*Y*1.7, 0.0, 1.0);
  45. U=mix(U, 0.0, desaturatefact);
  46. V=mix(V, 0.0, desaturatefact);
  47. color.rgb=V * float3(1.13983, -0.58060, 0.0) + U * float3(0.0, -0.39465, 2.03211) + Y;
  48.  
  49. float3 xColor = color.xyz;
  50. xColor = max(xColor, HPDTonemappingClipping);
  51. color = pow(abs((xColor * (HPDTonemappingUpperTone * xColor + HPDTonemappingGreyTone )) / (xColor * (HPDTonemappingUpperTone * xColor + HPDTonemappingMiddleTone) + HPDTonemappingLowerTone )), HPDTonemappingExposure);
  52.  
  53. SetOutput(color);
  54.  
  55. }
Add Comment
Please, Sign In to add comment