Blender  V3.3
blackbody.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: BSD-3-Clause
2  *
3  * Adapted from Open Shading Language
4  * Copyright (c) 2009-2010 Sony Pictures Imageworks Inc., et al.
5  * All Rights Reserved.
6  *
7  * Modifications Copyright 2011-2022 Blender Foundation. */
8 
9 #pragma once
10 
11 #include "kernel/svm/math_util.h"
12 
14 
15 /* Blackbody Node */
16 
19  ccl_private float *stack,
20  uint temperature_offset,
21  uint col_offset)
22 {
23  /* Input */
24  float temperature = stack_load_float(stack, temperature_offset);
25 
26  float3 color_rgb = rec709_to_rgb(kg, svm_math_blackbody_color_rec709(temperature));
27  color_rgb = max(color_rgb, zero_float3());
28 
29  stack_store_float3(stack, col_offset, color_rgb);
30 }
31 
unsigned int uint
Definition: BLI_sys_types.h:67
CCL_NAMESPACE_BEGIN ccl_device_noinline void svm_node_blackbody(KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, uint temperature_offset, uint col_offset)
Definition: blackbody.h:17
#define ccl_private
Definition: cuda/compat.h:48
#define ccl_device_noinline
Definition: cuda/compat.h:40
#define CCL_NAMESPACE_END
Definition: cuda/compat.h:9
const KernelGlobalsCPU *ccl_restrict KernelGlobals
ccl_device_inline void stack_store_float3(ccl_private float *stack, uint a, float3 f)
ccl_device_inline float stack_load_float(ccl_private float *stack, uint a)
ShaderData
Definition: kernel/types.h:925
ccl_device float3 rec709_to_rgb(KernelGlobals kg, float3 rec709)
ccl_device_inline float3 zero_float3()
Definition: math_float3.h:80
ccl_device float3 svm_math_blackbody_color_rec709(float t)
Definition: math_util.h:192
float max