19 const float distortion,
22 const float droughness,
26 p = (p + 0.000001f) * 0.999999f;
41 n = (p.
x + p.
y + p.
z) * 10.0f;
62 if (distortion != 0.0f) {
63 n += distortion * (
noise_fbm(p * dscale, detail, droughness, 2.0f,
true) * 2.0f - 1.0f);
88 uint bands_dir_offset;
89 uint rings_dir_offset;
94 uint distortion_offset;
97 uint droughness_offset;
103 node.
y, &type_offset, &bands_dir_offset, &rings_dir_offset, &profile_offset);
106 node.
w, &detail_offset, &dscale_offset, &droughness_offset, &phase_offset);
ccl_device_inline void stack_store_float(ccl_private float *stack, const uint a, const float f)
ccl_device_inline uint4 read_node(KernelGlobals kg, ccl_private int *const offset)
ccl_device_inline void stack_store_float3(ccl_private float *stack, const uint a, const float3 f)
ccl_device_inline float stack_load_float_default(const ccl_private float *stack, const uint a, const uint value)
ccl_device_forceinline void svm_unpack_node_uchar2(const uint i, ccl_private uint *x, ccl_private uint *y)
ccl_device_forceinline void svm_unpack_node_uchar3(const uint i, ccl_private uint *x, ccl_private uint *y, ccl_private uint *z)
ccl_device_forceinline void svm_unpack_node_uchar4(const uint i, ccl_private uint *x, ccl_private uint *y, ccl_private uint *z, ccl_private uint *w)
ccl_device_inline bool stack_valid(const uint a)
CCL_NAMESPACE_BEGIN ccl_device_inline float3 stack_load_float3(const ccl_private float *stack, const uint a)
#define ccl_device_noinline_cpu
const ThreadKernelGlobalsCPU * KernelGlobals
#define ccl_device_noinline
#define CCL_NAMESPACE_END
CCL_NAMESPACE_BEGIN ccl_device_noinline float noise_fbm(float p, const float detail, const float roughness, const float lacunarity, bool normalize)
@ 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 float *stack, const 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, const float distortion, const float detail, const float dscale, const float droughness, const float phase)