Fix #147618: PyGPU incorrect colors when drawing images
644fb2b679 fixed a long standing issue
that offscreen example showed the wrong colors. However the fix assumes
that input texture color space is always sRGB.
This adds a shader variation that draws textures that are stored in scene referred
linear color space (like all of our Image data-block).
Co-authored-by: Clément Foucault <foucault.clem@gmail.com>
Pull Request: https://projects.blender.org/blender/blender/pulls/147788
This commit is contained in:
committed by
Clément Foucault
parent
ce88d773db
commit
e2dc63c5de
@@ -42,9 +42,17 @@
|
||||
"``IMAGE``\n" \
|
||||
" :Attributes: vec3 pos, vec2 texCoord\n" \
|
||||
" :Uniforms: sampler2D image\n" \
|
||||
"``IMAGE_SCENE_LINEAR_TO_REC709_SRGB``\n" \
|
||||
" :Attributes: vec3 pos, vec2 texCoord\n" \
|
||||
" :Uniforms: sampler2D image\n" \
|
||||
" :Note: Expect texture to be in scene linear color space\n" \
|
||||
"``IMAGE_COLOR``\n" \
|
||||
" :Attributes: vec3 pos, vec2 texCoord\n" \
|
||||
" :Uniforms: sampler2D image, vec4 color\n" \
|
||||
"``IMAGE_COLOR_SCENE_LINEAR_TO_REC709_SRGB``\n" \
|
||||
" :Attributes: vec3 pos, vec2 texCoord\n" \
|
||||
" :Uniforms: sampler2D image, vec4 color\n" \
|
||||
" :Note: Expect texture to be in scene linear color space\n" \
|
||||
"``SMOOTH_COLOR``\n" \
|
||||
" :Attributes: vec3 pos, vec4 color\n" \
|
||||
" :Uniforms: none\n" \
|
||||
@@ -70,7 +78,10 @@
|
||||
static const PyC_StringEnumItems pygpu_shader_builtin_items[] = {
|
||||
{GPU_SHADER_3D_FLAT_COLOR, "FLAT_COLOR"},
|
||||
{GPU_SHADER_3D_IMAGE, "IMAGE"},
|
||||
{GPU_SHADER_3D_IMAGE_SCENE_LINEAR_TO_REC709_SRGB, "IMAGE_SCENE_LINEAR_TO_REC709_SRGB"},
|
||||
{GPU_SHADER_3D_IMAGE_COLOR, "IMAGE_COLOR"},
|
||||
{GPU_SHADER_3D_IMAGE_COLOR_SCENE_LINEAR_TO_REC709_SRGB,
|
||||
"IMAGE_COLOR_SCENE_LINEAR_TO_REC709_SRGB"},
|
||||
{GPU_SHADER_3D_SMOOTH_COLOR, "SMOOTH_COLOR"},
|
||||
{GPU_SHADER_3D_UNIFORM_COLOR, "UNIFORM_COLOR"},
|
||||
{GPU_SHADER_3D_POLYLINE_FLAT_COLOR, "POLYLINE_FLAT_COLOR"},
|
||||
|
||||
Reference in New Issue
Block a user