float3 ACESFilm(float3 x) { float a = 2.51f; float b = 0.03f; float c = 2.43f; float d = 0.59f; float e = 0.14f; return saturate((x*(a*x+b))/(x*(c*x+d)+e)); }の近似. 定義域を[0 2]に狭める.
//domain x: [0 2] float3 ACESFilmApprox(float3 x) { return -0.053173 + x*(2.170622 + x*(-2.132296 + x*(0.996822 + x*-0.176583))); }