|
@@ -1079,6 +1079,36 @@ layout(std140) uniform CanvasPigmentBlock{
|
|
|
PigmentData paper;
|
|
PigmentData paper;
|
|
|
}uCanvasPigment;
|
|
}uCanvasPigment;
|
|
|
|
|
|
|
|
|
|
+#if 0 //s-log3 test
|
|
|
|
|
+
|
|
|
|
|
+float _LinearFromSLOG3(float input){
|
|
|
|
|
+ float outval;
|
|
|
|
|
+ if(input>=171.2102946929/1023.0){
|
|
|
|
|
+ outval = pow(10.0, ((input*1023.0-420.0)/261.5)) * (0.18 + 0.01) - 0.01;
|
|
|
|
|
+ }else{
|
|
|
|
|
+ outval = (input*1023.0-95.0) * 0.01125000 / (171.2102946929-95.0);
|
|
|
|
|
+ }
|
|
|
|
|
+ return outval/9.0;
|
|
|
|
|
+}
|
|
|
|
|
+vec3 LinearFromSLOG3(vec3 input){
|
|
|
|
|
+ return vec3(_LinearFromSLOG3(input.x),_LinearFromSLOG3(input.y),_LinearFromSLOG3(input.z));
|
|
|
|
|
+}
|
|
|
|
|
+float _LinearToSLOG3(float input){ input*=9.0;
|
|
|
|
|
+ float outval;
|
|
|
|
|
+ if(input>=0.01125000){
|
|
|
|
|
+ outval = (420.0 + log((input + 0.01)/(0.18 + 0.01))/log(10.0) * 261.5) / 1023.0;
|
|
|
|
|
+ }else{
|
|
|
|
|
+ outval = (input * (171.2102946929 - 95.0)/0.01125000 + 95.0) / 1023.0;
|
|
|
|
|
+ }
|
|
|
|
|
+ return outval;
|
|
|
|
|
+}
|
|
|
|
|
+vec3 LinearToSLOG3(vec3 input){
|
|
|
|
|
+ return vec3(_LinearToSLOG3(input.x),_LinearToSLOG3(input.y),_LinearToSLOG3(input.z));
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+#endif // if 0
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
void main(){
|
|
void main(){
|
|
|
ivec2 iuv=ivec2(gl_FragCoord.xy)+frag_offset;
|
|
ivec2 iuv=ivec2(gl_FragCoord.xy)+frag_offset;
|
|
|
//ivec2(fUV*vec2(display_size)); //int xof=iuv.x%2; int yof=iuv.y%2; iuv.x-=xof; iuv.y-=yof;
|
|
//ivec2(fUV*vec2(display_size)); //int xof=iuv.x%2; int yof=iuv.y%2; iuv.x-=xof; iuv.y-=yof;
|