Blender Git Commit Log

Git Commits -> Revision 4e35285

Revision 4e35285 by Brecht Van Lommel (tmp-ocio-v2)
February 1, 2021, 14:42 (GMT)
OpenColorIO: update GPU display shader for version 2.0

To avoid baking exposure and gamma into the GLSL shader and requiring slow
recompiles when tweaking, we manually apply them in the shader. This leads
to some logic duplicaton between the CPU and GPU display processor, but it
seems unavoidable.

Caching was also changed. Previously this was done both on the imbuf and
opencolorio module levels. Now it's all done in the opencolorio module by
simply matching color space names. We no longer use cacheIDs from OpenColorIO
since computing them is expensive, and they are unlikely to match now that
more is baked into the shader code.

Shaders can now use multiple 2D textures, 3D textures and uniforms, rather
than a single 3D texture. So allocating and binding those adds some code.

Color space conversions for blending with overlays is now hardcoded in the
shader. This was using harcoded numbers anyway, if this every becomes a
general OpenColorIO transform it can be changed, but for now there is no
point to add code complexity.

Commit Details:

Full Hash: 4e352851e4dc47d22325db3308d91b879958bcd0
Parent Commit: a5139ce
Lines Changed: +632, -572

6 Modified Paths:

/intern/opencolorio/gpu_shader_display_transform.glsl (+31, -11) (Diff)
/intern/opencolorio/ocio_capi.cc (+28, -20) (Diff)
/intern/opencolorio/ocio_capi.h (+15, -11) (Diff)
/intern/opencolorio/ocio_impl.h (+39, -31) (Diff)
/intern/opencolorio/ocio_impl_glsl.cc (+432, -355) (Diff)
/source/blender/imbuf/intern/colormanagement.c (+87, -144) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021