利用者:Sobotka/Color Management/Slaying Blender Colormanagement Dragon

提供: wiki
移動先: 案内検索

Known Problems

Luminance Related

blender/intern/cycles/util/util_color.h:239:	return c.x*0.2126f + c.y*0.7152f + c.z*0.0722f;
blender/intern/cycles/kernel/shaders/node_convert_from_color.osl:28:	Val = Color[0] * 0.2126 + Color[1] * 0.7152 + Color[2] * 0.0722;
blender/intern/cycles/kernel/shaders/node_convert_from_color.osl:29:	ValInt = (int)(Color[0] * 0.2126 + Color[1] * 0.7152 + Color[2] * 0.0722);
blender/extern/libmv/libmv/autotrack/autotrack.cc:57:                  (disable_green ? 0.0f : 0.7152f) +
blender/extern/libmv/libmv/autotrack/autotrack.cc:66:        (*output)(y, x, 0) = (0.2126f * r + 0.7152f * g + 0.0722f * b) / scale;
blender/extern/libmv/libmv/image/image_converter.h:30:// var_R * 0.2126 + var_G * 0.7152 + var_B * 0.0722
blender/extern/libmv/libmv/image/image_converter.h:33:  return static_cast<T>(r * 0.2126 + g * 0.7152 + b * 0.0722);
blender/extern/libmv/libmv/image/image_converter.h:42:  return (unsigned char)(r * 0.2126 + g * 0.7152 + b * 0.0722 +0.5);
blender/source/blender/blenkernel/intern/tracking.c:2180:	        (disable_green ? 0.0f : 0.7152f) +
blender/source/blender/blenkernel/intern/tracking.c:2194:					float gray = (0.2126f * r + 0.7152f * g + 0.0722f * b) / scale;
blender/source/blender/blenkernel/intern/tracking.c:2211:					float gray = (0.2126f * r + 0.7152f * g + 0.0722f * b) / scale;
blender/source/blender/blenkernel/intern/tracking_util.c:624:		                           0.7152f * pixel[1] +
blender/source/blender/blenkernel/intern/tracking_region_tracker.c:101:		                   0.2126f, 0.7152f, 0.0722f);
blender/source/blender/blenkernel/intern/tracking_region_tracker.c:105:		                         0.2126f, 0.7152f, 0.0722f);
blender/source/blender/blenkernel/intern/node.c:3433:	register_node_type_cmp_rgbtobw();
blender/source/blender/blenkernel/intern/node.c:3503:	register_node_type_sh_rgbtobw();
blender/source/blender/blenkernel/intern/node.c:3581:	register_node_type_tex_rgbtobw();
blender/source/blender/nodes/texture/nodes/node_texture_valToRgb.c:81:static bNodeSocketTemplate rgbtobw_in[] = {
blender/source/blender/nodes/texture/nodes/node_texture_valToRgb.c:85:static bNodeSocketTemplate rgbtobw_out[] = {
blender/source/blender/nodes/texture/nodes/node_texture_valToRgb.c:91:static void rgbtobw_valuefn(float *out, TexParams *p, bNode *UNUSED(node), bNodeStack **in, short thread)
blender/source/blender/nodes/texture/nodes/node_texture_valToRgb.c:98:static void rgbtobw_exec(void *data, int UNUSED(thread), bNode *node, bNodeExecData *execdata, bNodeStack **in, bNodeStack **out)
blender/source/blender/nodes/texture/nodes/node_texture_valToRgb.c:100:	tex_output(node, execdata, in, out[0], &rgbtobw_valuefn, data);
blender/source/blender/nodes/texture/nodes/node_texture_valToRgb.c:103:void register_node_type_tex_rgbtobw(void)
blender/source/blender/nodes/texture/nodes/node_texture_valToRgb.c:108:	node_type_socket_templates(&ntype, rgbtobw_in, rgbtobw_out);
blender/source/blender/nodes/texture/nodes/node_texture_valToRgb.c:109:	node_type_exec(&ntype, NULL, NULL, rgbtobw_exec);
blender/source/blender/nodes/NOD_shader.h:55:void register_node_type_sh_rgbtobw(void);
blender/source/blender/nodes/NOD_composite.h:88:void register_node_type_cmp_rgbtobw(void);
blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c:93:static bNodeSocketTemplate sh_node_rgbtobw_in[] = {
blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c:97:static bNodeSocketTemplate sh_node_rgbtobw_out[] = {
blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c:103:static void node_shader_exec_rgbtobw(void *UNUSED(data), int UNUSED(thread), bNode *UNUSED(node), bNodeExecData *UNUSED(execdata), bNodeStack **in, bNodeStack **out)
blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c:113:static int gpu_shader_rgbtobw(GPUMaterial *mat, bNode *UNUSED(node), bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out)
blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c:115:	return GPU_stack_link(mat, "rgbtobw", in, out);
blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c:118:void register_node_type_sh_rgbtobw(void)
blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c:124:	node_type_socket_templates(&ntype, sh_node_rgbtobw_in, sh_node_rgbtobw_out);
blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c:125:	node_type_exec(&ntype, NULL, NULL, node_shader_exec_rgbtobw);
blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c:126:	node_type_gpu(&ntype, gpu_shader_rgbtobw);
blender/source/blender/nodes/NOD_texture.h:50:void register_node_type_tex_rgbtobw(void);
blender/source/blender/nodes/composite/nodes/node_composite_valToRgb.c:68:static bNodeSocketTemplate cmp_node_rgbtobw_in[] = {
blender/source/blender/nodes/composite/nodes/node_composite_valToRgb.c:72:static bNodeSocketTemplate cmp_node_rgbtobw_out[] = {
blender/source/blender/nodes/composite/nodes/node_composite_valToRgb.c:77:void register_node_type_cmp_rgbtobw(void)
blender/source/blender/nodes/composite/nodes/node_composite_valToRgb.c:82:	node_type_socket_templates(&ntype, cmp_node_rgbtobw_in, cmp_node_rgbtobw_out);
blender/source/blender/gpu/intern/gpu_material.c:587:				GPU_link(mat, "ramp_rgbtobw", *diff, &fac);
blender/source/blender/gpu/intern/gpu_material.c:611:				GPU_link(mat, "ramp_rgbtobw", rgb, &fac);
blender/source/blender/gpu/intern/gpu_material.c:644:		GPU_link(mat, "ramp_rgbtobw", *spec, &fac);
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:710:void rgbtobw(vec4 color, out float outval)  
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1333:	rgbtobw( texture2D(ima, STll), Hll );
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1334:	rgbtobw( texture2D(ima, STlr), Hlr );
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1335:	rgbtobw( texture2D(ima, STul), Hul );
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1359:	rgbtobw(texture2D(ima, STl), Hl);
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1360:	rgbtobw(texture2D(ima, STr), Hr);
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1361:	rgbtobw(texture2D(ima, STd), Hd);
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1362:	rgbtobw(texture2D(ima, STu), Hu);
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1406:				rgbtobw(texelFetch(ima, iTexTmp, 0), H[i][j]);
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1448:	rgbtobw( texture2D(ima, STc), Hc );
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1449:	rgbtobw( texture2D(ima, STl), Hl );
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1450:	rgbtobw( texture2D(ima, STr), Hr );
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1451:	rgbtobw( texture2D(ima, STd), Hd );
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1452:	rgbtobw( texture2D(ima, STu), Hu );
blender/source/blender/gpu/shaders/gpu_shader_material.glsl:1990:void ramp_rgbtobw(vec3 color, out float outval)
./blender/source/gameengine/Rasterizer/RAS_OpenGLFilters/RAS_GrayScale2DFilter.h
blender/intern/cycles/util/util_color.h:237:ccl_device float linear_rgb_to_gray(float3 c)

https://developer.blender.org/diffusion/B/browse/master/source/blender/freestyle/intern/image/Image.h$269-279

Cycles hard coded sRGB transforms

./util/util_color.h
./kernel/shaders/node_color.h
./kernel/shaders/node_convert_from_color.osl