13 return x *
x *
x * (
x * (
x * 6.0f - 15.0f) + 10.0f);
19 uint value_stack_offset,
20 uint parameters_stack_offsets,
21 uint results_stack_offsets,
24 uint from_min_stack_offset, from_max_stack_offset, to_min_stack_offset, to_max_stack_offset;
25 uint type_stack_offset, steps_stack_offset, result_stack_offset;
27 &from_min_stack_offset,
28 &from_max_stack_offset,
30 &to_max_stack_offset);
32 results_stack_offsets, &type_stack_offset, &steps_stack_offset, &result_stack_offset);
46 if (from_max != from_min) {
48 switch (type_stack_offset) {
51 factor = (value - from_min) / (from_max - from_min);
54 factor = (value - from_min) / (from_max - from_min);
59 factor = (from_min > from_max) ? 1.0f -
smoothstep(from_max, from_min, factor) :
64 factor = (from_min > from_max) ? 1.0f -
smootherstep(from_max, from_min, factor) :
69 result = to_min + factor * (to_max - to_min);
81 uint value_stack_offset,
82 uint parameters_stack_offsets,
83 uint results_stack_offsets,
86 uint from_min_stack_offset, from_max_stack_offset, to_min_stack_offset, to_max_stack_offset;
87 uint steps_stack_offset, clamp_stack_offset, range_type_stack_offset, result_stack_offset;
89 &from_min_stack_offset,
90 &from_max_stack_offset,
92 &to_max_stack_offset);
96 &range_type_stack_offset,
97 &result_stack_offset);
106 int type = range_type_stack_offset;
112 switch (range_type_stack_offset) {
115 factor =
safe_divide((value - from_min), (from_max - from_min));
118 factor =
safe_divide((value - from_min), (from_max - from_min));
126 factor =
safe_divide((value - from_min), (from_max - from_min));
128 factor = (
make_float3(3.0f, 3.0f, 3.0f) - 2.0f * factor) * (factor * factor);
132 factor =
safe_divide((value - from_min), (from_max - from_min));
134 factor = factor * factor * factor * (factor * (factor * 6.0f - 15.0f) + 10.0f);
138 result = to_min + factor * (to_max - to_min);
@ NODE_MAP_RANGE_SMOOTHERSTEP
@ NODE_MAP_RANGE_SMOOTHSTEP
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
#define ccl_device_inline
#define ccl_device_noinline
#define CCL_NAMESPACE_END
const KernelGlobalsCPU *ccl_restrict KernelGlobals
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
ccl_device_inline void stack_store_float3(ccl_private float *stack, uint a, float3 f)
CCL_NAMESPACE_BEGIN ccl_device_inline float3 stack_load_float3(ccl_private float *stack, uint a)
ccl_device_inline uint4 read_node(KernelGlobals kg, ccl_private int *offset)
ccl_device_forceinline void svm_unpack_node_uchar3(uint i, ccl_private uint *x, ccl_private uint *y, ccl_private uint *z)
ccl_device_inline float stack_load_float_default(ccl_private float *stack, uint a, uint value)
ccl_device_inline void stack_store_float(ccl_private float *stack, uint a, float f)
ccl_device_inline float stack_load_float(ccl_private float *stack, uint a)
ccl_device_forceinline void svm_unpack_node_uchar4(uint i, ccl_private uint *x, ccl_private uint *y, ccl_private uint *z, ccl_private uint *w)
ccl_device_noinline int svm_node_vector_map_range(KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, uint value_stack_offset, uint parameters_stack_offsets, uint results_stack_offsets, int offset)
ccl_device_noinline int svm_node_map_range(KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, uint value_stack_offset, uint parameters_stack_offsets, uint results_stack_offsets, int offset)
CCL_NAMESPACE_BEGIN ccl_device_inline float smootherstep(float edge0, float edge1, float x)
MINLINE float smoothstep(float edge0, float edge1, float x)
ccl_device_inline float3 one_float3()
ccl_device_inline float3 zero_float3()
T clamp(const T &a, const T &min, const T &max)
T safe_divide(const T &a, const T &b)