Changeset View
Changeset View
Standalone View
Standalone View
source/blender/gpu/shaders/common/gpu_shader_common_color_utils.glsl
| Show First 20 Lines • Show All 140 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| /* ** YCCA to RGBA ** */ | /* ** YCCA to RGBA ** */ | ||||
| void ycca_to_rgba_itu_601(vec4 ycca, out vec4 color) | void ycca_to_rgba_itu_601(vec4 ycca, out vec4 color) | ||||
| { | { | ||||
| ycca.xyz *= 255.0; | ycca.xyz *= 255.0; | ||||
| ycca.xyz -= vec3(16.0, 128.0, 128.0); | ycca.xyz -= vec3(16.0, 128.0, 128.0); | ||||
| color.rgb = mat3(vec3(1.164), 0.0, -0.392, 2.017, 1.596, -0.813, 0.0) * ycca.xyz; | color.rgb = mat3(1.164, 1.164, 1.164, 0.0, -0.392, 2.017, 1.596, -0.813, 0.0) * ycca.xyz; | ||||
| color.rgb /= 255.0; | color.rgb /= 255.0; | ||||
| color.a = ycca.a; | color.a = ycca.a; | ||||
| } | } | ||||
| void ycca_to_rgba_itu_709(vec4 ycca, out vec4 color) | void ycca_to_rgba_itu_709(vec4 ycca, out vec4 color) | ||||
| { | { | ||||
| ycca.xyz *= 255.0; | ycca.xyz *= 255.0; | ||||
| ycca.xyz -= vec3(16.0, 128.0, 128.0); | ycca.xyz -= vec3(16.0, 128.0, 128.0); | ||||
| color.rgb = mat3(vec3(1.164), 0.0, -0.213, 2.115, 1.793, -0.534, 0.0) * ycca.xyz; | color.rgb = mat3(1.164, 1.164, 1.164, 0.0, -0.213, 2.115, 1.793, -0.534, 0.0) * ycca.xyz; | ||||
| color.rgb /= 255.0; | color.rgb /= 255.0; | ||||
| color.a = ycca.a; | color.a = ycca.a; | ||||
| } | } | ||||
| void ycca_to_rgba_jpeg(vec4 ycca, out vec4 color) | void ycca_to_rgba_jpeg(vec4 ycca, out vec4 color) | ||||
| { | { | ||||
| ycca.xyz *= 255.0; | ycca.xyz *= 255.0; | ||||
| color.rgb = mat3(vec3(1.0), 0.0, -0.34414, 1.772, 1.402, -0.71414, 0.0) * ycca.xyz; | color.rgb = mat3(1.0, 1.0, 1.0, 0.0, -0.34414, 1.772, 1.402, -0.71414, 0.0) * ycca.xyz; | ||||
| color.rgb += vec3(-179.456, 135.45984, -226.816); | color.rgb += vec3(-179.456, 135.45984, -226.816); | ||||
| color.rgb /= 255.0; | color.rgb /= 255.0; | ||||
| color.a = ycca.a; | color.a = ycca.a; | ||||
| } | } | ||||
| /* ** RGBA to YCCA ** */ | /* ** RGBA to YCCA ** */ | ||||
| void rgba_to_ycca_itu_601(vec4 rgba, out vec4 ycca) | void rgba_to_ycca_itu_601(vec4 rgba, out vec4 ycca) | ||||
| Show All 23 Lines | void rgba_to_ycca_jpeg(vec4 rgba, out vec4 ycca) | ||||
| ycca.xyz /= 255.0; | ycca.xyz /= 255.0; | ||||
| ycca.a = rgba.a; | ycca.a = rgba.a; | ||||
| } | } | ||||
| /* ** YUVA to RGBA ** */ | /* ** YUVA to RGBA ** */ | ||||
| void yuva_to_rgba_itu_709(vec4 yuva, out vec4 color) | void yuva_to_rgba_itu_709(vec4 yuva, out vec4 color) | ||||
| { | { | ||||
| color.rgb = mat3(vec3(1.0), 0.0, -0.21482, 2.12798, 1.28033, -0.38059, 0.0) * yuva.xyz; | color.rgb = mat3(1.0, 1.0, 1.0, 0.0, -0.21482, 2.12798, 1.28033, -0.38059, 0.0) * yuva.xyz; | ||||
| color.a = yuva.a; | color.a = yuva.a; | ||||
| } | } | ||||
| /* ** RGBA to YUVA ** */ | /* ** RGBA to YUVA ** */ | ||||
| void rgba_to_yuva_itu_709(vec4 rgba, out vec4 yuva) | void rgba_to_yuva_itu_709(vec4 rgba, out vec4 yuva) | ||||
| { | { | ||||
| yuva.xyz = mat3(0.2126, -0.09991, 0.615, 0.7152, -0.33609, -0.55861, 0.0722, 0.436, -0.05639) * | yuva.xyz = mat3(0.2126, -0.09991, 0.615, 0.7152, -0.33609, -0.55861, 0.0722, 0.436, -0.05639) * | ||||
| ▲ Show 20 Lines • Show All 60 Lines • Show Last 20 Lines | |||||