23 p = (p + 0.000001f) * 0.999999f;
38 n = (p.
x + p.
y + p.
z) * 10.0f;
59 if (distortion != 0.0f) {
60 n += distortion * (
noise_fbm(p * dscale, detail, droughness, 2.0f,
true) * 2.0f - 1.0f);
83 uint type_offset, bands_dir_offset, rings_dir_offset, profile_offset;
85 uint co_offset, scale_offset, distortion_offset, detail_offset, dscale_offset, droughness_offset,
87 uint color_offset, fac_offset;
90 node.y, &type_offset, &bands_dir_offset, &rings_dir_offset, &profile_offset);
93 node.w, &detail_offset, &dscale_offset, &droughness_offset, &phase_offset);
const KernelGlobalsCPU *ccl_restrict KernelGlobals
#define ccl_device_noinline_cpu
#define ccl_device_noinline
#define CCL_NAMESPACE_END
CCL_NAMESPACE_BEGIN ccl_device_noinline float noise_fbm(float p, float detail, float roughness, float lacunarity, bool normalize)
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_forceinline void svm_unpack_node_uchar2(uint i, ccl_private uint *x, ccl_private uint *y)
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_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_inline bool stack_valid(uint a)
@ NODE_WAVE_BANDS_DIRECTION_Z
@ NODE_WAVE_BANDS_DIRECTION_Y
@ NODE_WAVE_BANDS_DIRECTION_X
@ NODE_WAVE_RINGS_DIRECTION_Y
@ NODE_WAVE_RINGS_DIRECTION_X
@ NODE_WAVE_RINGS_DIRECTION_Z
ccl_device_noinline int svm_node_tex_wave(KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, uint4 node, int offset)
CCL_NAMESPACE_BEGIN ccl_device_noinline_cpu float svm_wave(NodeWaveType type, NodeWaveBandsDirection bands_dir, NodeWaveRingsDirection rings_dir, NodeWaveProfile profile, float3 p, float distortion, float detail, float dscale, float droughness, float phase)