From e355abebee14694837281ef8813a29d8ab97f4db Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 28 Apr 2013 10:46:18 +0000 Subject: This glsl shader works for OCIO with alpha. OSX iMac with ATI. There's no logical reason I can find... but I commit it because many others have the same error, so we can check. --- intern/opencolorio/ocio_impl_glsl.cc | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'intern/opencolorio') diff --git a/intern/opencolorio/ocio_impl_glsl.cc b/intern/opencolorio/ocio_impl_glsl.cc index 0c96a000b9e..3dbf7c9f7cb 100644 --- a/intern/opencolorio/ocio_impl_glsl.cc +++ b/intern/opencolorio/ocio_impl_glsl.cc @@ -92,18 +92,15 @@ static const char *g_fragShaderText = "" "void main()\n" "{\n" " vec4 col = texture2D(tex1, gl_TexCoord[0].st);\n" -" if (predivide == false || col[3] == 1.0 || col[3] == 0.0) {\n" -" gl_FragColor = OCIODisplay(col, tex2);\n" -" } else {\n" -" float alpha = col[3];\n" -" float inv_alpha = 1.0 / alpha;\n" +" float inv_alpha = 1.0;" +" if (predivide == false || col[3] <= 0.0 || col[3] >= 1.0) {\n" +" float inv_alpha = 1.0 / col[3];\n" +"}\n" +" col[0] *= inv_alpha;\n" +" col[1] *= inv_alpha;\n" +" col[2] *= inv_alpha;\n" "\n" -" col[0] *= inv_alpha;\n" -" col[1] *= inv_alpha;\n" -" col[2] *= inv_alpha;\n" -"\n" -" gl_FragColor = OCIODisplay(col, tex2);\n" -" }\n" +" gl_FragColor = OCIODisplay(col, tex2);\n" "\n" "}\n"; -- cgit v1.2.3