Blender V5.0
kernel/util/colorspace.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
2 *
3 * SPDX-License-Identifier: Apache-2.0 */
4
5#pragma once
6
7#include "kernel/globals.h"
8
10
12
14{
15 return make_float3(dot(make_float3(kernel_data.film.xyz_to_r), xyz),
16 dot(make_float3(kernel_data.film.xyz_to_g), xyz),
17 dot(make_float3(kernel_data.film.xyz_to_b), xyz));
18}
19
21{
22 return max(xyz_to_rgb(kg, xyz), zero_float3());
23}
24
26{
27 return (kernel_data.film.is_rec709) ?
28 rec709 :
29 make_float3(dot(make_float3(kernel_data.film.rec709_to_r), rec709),
30 dot(make_float3(kernel_data.film.rec709_to_g), rec709),
31 dot(make_float3(kernel_data.film.rec709_to_b), rec709));
32}
33
35{
36 return dot(c, make_float3(kernel_data.film.rgb_to_y));
37}
38
40{
41 return rgb;
42}
43
48
53
dot(value.rgb, luminance_coefficients)") DEFINE_VALUE("REDUCE(lhs
#define kernel_data
const ThreadKernelGlobalsCPU * KernelGlobals
#define ccl_device_inline
#define CCL_NAMESPACE_END
ccl_device_forceinline float3 make_float3(const float x, const float y, const float z)
ccl_device float spectrum_to_gray(KernelGlobals kg, Spectrum c)
ccl_device float3 xyz_to_rgb_clamped(KernelGlobals kg, const float3 xyz)
CCL_NAMESPACE_BEGIN ccl_device float3 xyz_to_rgb(KernelGlobals kg, const float3 xyz)
ccl_device_inline float3 spectrum_to_rgb(Spectrum s)
ccl_device float3 rec709_to_rgb(KernelGlobals kg, const float3 rec709)
ccl_device_inline Spectrum rgb_to_spectrum(const float3 rgb)
ccl_device float linear_rgb_to_gray(KernelGlobals kg, const float3 c)
CCL_NAMESPACE_BEGIN ccl_device_inline float3 zero_float3()
Definition math_float3.h:17
#define ccl_device
max
Definition text_draw.cc:251
float3 Spectrum