11 return interp(col1, col2, t);
16 return interp(col1, col1 + col2, t);
21 return interp(col1, col1 * col2, t);
30 return one - (tm3 + t * (one - col2)) * (one - col1);
40 outcol.
x *= tm + 2.0f * t * col2.
x;
42 outcol.
x = 1.0f - (tm + 2.0f * t * (1.0f - col2.
x)) * (1.0f - outcol.
x);
45 outcol.
y *= tm + 2.0f * t * col2.
y;
47 outcol.
y = 1.0f - (tm + 2.0f * t * (1.0f - col2.
y)) * (1.0f - outcol.
y);
50 outcol.
z *= tm + 2.0f * t * col2.
z;
52 outcol.
z = 1.0f - (tm + 2.0f * t * (1.0f - col2.
z)) * (1.0f - outcol.
z);
59 return interp(col1, col1 - col2, t);
69 outcol.
x = tm * outcol.
x + t * outcol.
x / col2.
x;
71 outcol.
y = tm * outcol.
y + t * outcol.
y / col2.
y;
73 outcol.
z = tm * outcol.
z + t * outcol.
z / col2.
z;
102 if (outcol.
x != 0.0f) {
103 float tmp = 1.0f - t * col2.
x;
106 else if ((tmp = outcol.
x / tmp) > 1.0f)
111 if (outcol.
y != 0.0f) {
112 float tmp = 1.0f - t * col2.
y;
115 else if ((tmp = outcol.
y / tmp) > 1.0f)
120 if (outcol.
z != 0.0f) {
121 float tmp = 1.0f - t * col2.
z;
124 else if ((tmp = outcol.
z / tmp) > 1.0f)
135 float tmp, tm = 1.0f - t;
139 tmp = tm + t * col2.
x;
142 else if ((tmp = (1.0f - (1.0f - outcol.
x) / tmp)) < 0.0f)
149 tmp = tm + t * col2.
y;
152 else if ((tmp = (1.0f - (1.0f - outcol.
y) / tmp)) < 0.0f)
159 tmp = tm + t * col2.
z;
162 else if ((tmp = (1.0f - (1.0f - outcol.
z) / tmp)) < 0.0f)
178 if (hsv2.
y != 0.0f) {
183 outcol =
interp(outcol, tmp, t);
200 hsv.
y = tm * hsv.
y + t * hsv2.
y;
214 hsv.
z = tm * hsv.
z + t * hsv2.
z;
224 if (hsv2.
y != 0.0f) {
230 outcol =
interp(outcol, tmp, t);
241 float3 scr = one - (one - col2) * (one - col1);
243 return tm * col1 + t * ((one - col1) * col2 * col1 + col1 * scr);
248 return col1 + t * (2.0f * col2 +
make_float3(-1.0f, -1.0f, -1.0f));
307 return svm_mix(type, fac, c1, c2);
312 float a = 1.0f + contrast;
313 float b = brightness - contrast * 0.5f;
315 color.x =
max(a * color.x +
b, 0.0f);
316 color.y =
max(a * color.y +
b, 0.0f);
317 color.z =
max(a * color.z +
b, 0.0f);
void rgb_to_hsl(float r, float g, float b, float *r_h, float *r_s, float *r_l)
void rgb_to_hsv(float r, float g, float b, float *r_h, float *r_s, float *r_v)
void hsv_to_rgb(float h, float s, float v, float *r_r, float *r_g, float *r_b)
void hsl_to_rgb(float h, float s, float l, float *r_r, float *r_g, float *r_b)
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Brightness Control the brightness and contrast of the input color Vector Map input vector components with curves Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert Invert a color
ccl_device float3 svm_mix_dodge(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_overlay(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_clamp(float3 col)
ccl_device float3 svm_combine_color(NodeCombSepColorType type, float3 color)
ccl_device float3 svm_mix_val(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_screen(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_soft(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_add(float t, float3 col1, float3 col2)
ccl_device float3 svm_separate_color(NodeCombSepColorType type, float3 color)
ccl_device_noinline_cpu float3 svm_mix(NodeMix type, float t, float3 c1, float3 c2)
ccl_device float3 svm_mix_dark(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_diff(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_mul(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_sub(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_light(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_sat(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_exclusion(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_color(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_burn(float t, float3 col1, float3 col2)
ccl_device_noinline_cpu float3 svm_mix_clamped_factor(NodeMix type, float t, float3 c1, float3 c2)
ccl_device float3 svm_mix_div(float t, float3 col1, float3 col2)
CCL_NAMESPACE_BEGIN ccl_device float3 svm_mix_blend(float t, float3 col1, float3 col2)
ccl_device float3 svm_mix_hue(float t, float3 col1, float3 col2)
ccl_device_inline float3 svm_brightness_contrast(float3 color, float brightness, float contrast)
ccl_device float3 svm_mix_linear(float t, float3 col1, float3 col2)
local_group_size(16, 16) .push_constant(Type b
#define ccl_device_noinline_cpu
#define ccl_device_inline
#define CCL_NAMESPACE_END
ccl_device_inline float2 fabs(const float2 a)
ccl_device_inline float2 interp(const float2 a, const float2 b, float t)
CCL_NAMESPACE_BEGIN ccl_device_inline float3 zero_float3()