The compositor sometimes produces straight alpha even though premultiplied alpha is expected. Moreover, there is an inconsistency between the CPU and GPU compositors. For the GPU compositor, this is because GPU textures sometimes store straight alpha, while the compositor always expects premultiplied alpha, so we need to premultiply the alpha in those cases. For the CPU compositor, this is because the image operation didn't premultiply the alpha of byte textures, so we need to ensure premultiplied alpha in those cases. There is a data loss issue in case of byte images, since the IMB module unpremultiplies premultiplied images then the compositor premultiplies it again. But this will be handled in a different patch since it require some design and refactoring first. Pull Request: https://projects.blender.org/blender/blender/pulls/114305 |
||
---|---|---|
.. | ||
intern | ||
nodes | ||
operations | ||
realtime_compositor | ||
tests | ||
CMakeLists.txt | ||
COM_compositor.hh | ||
COM_defines.h | ||
COM_precomp.h |