#include "vector2.h"
#include "vector4.h"
Go to the source code of this file.
◆ NOISE_FBM
Value:float noise_fbm(
T co,
float detail,
float roughness,
float lacunarity,
int use_normalize) \
{ \
float fscale = 1.0; \
float amp = 1.0; \
float maxamp = 0.0; \
\
for (
int i = 0;
i <= int(detail);
i++) { \
maxamp += amp; \
amp *= roughness; \
fscale *= lacunarity; \
} \
float rmd = detail -
floor(detail); \
if (rmd != 0.0) { \
float sum2 =
sum + t * amp; \
return use_normalize ? \
mix(0.5 *
sum / maxamp + 0.5, 0.5 * sum2 / (maxamp + amp) + 0.5, rmd) : \
} \
else { \
return use_normalize ? 0.5 *
sum / maxamp + 0.5 :
sum; \
} \
}
static T sum(const btAlignedObjectArray< T > &items)
CCL_NAMESPACE_BEGIN ccl_device_noinline float noise_fbm(float p, const float detail, const float roughness, const float lacunarity, bool normalize)
float safe_snoise(float co)
Definition at line 108 of file node_noise.h.
◆ NOISE_HETERO_TERRAIN
| #define NOISE_HETERO_TERRAIN |
( |
| T | ) |
|
Value:
{ \
float pwr = roughness; \
\
\
p *= lacunarity; \
\
for (
int i = 1;
i <= (int)detail;
i++) { \
float increment = (
safe_snoise(p) + offset) * pwr * value; \
value += increment; \
pwr *= roughness; \
p *= lacunarity; \
} \
\
float rmd = detail -
floor(detail); \
if (rmd != 0.0) { \
float increment = (
safe_snoise(p) + offset) * pwr * value; \
value += rmd * increment; \
} \
\
return value; \
}
ccl_device_noinline float noise_hetero_terrain(float p, const float detail, const float roughness, const float lacunarity, const float offset)
Definition at line 158 of file node_noise.h.
◆ NOISE_HYBRID_MULTI_FRACTAL
| #define NOISE_HYBRID_MULTI_FRACTAL |
( |
| T | ) |
|
◆ NOISE_MULTI_FRACTAL
| #define NOISE_MULTI_FRACTAL |
( |
| T | ) |
|
Value:
{ \
float value = 1.0; \
float pwr = 1.0; \
\
for (
int i = 0;
i <= (int)detail;
i++) { \
pwr *= roughness; \
p *= lacunarity; \
} \
\
float rmd = detail -
floor(detail); \
if (rmd != 0.0) { \
} \
\
return value; \
}
ccl_device_noinline float noise_multi_fractal(float p, const float detail, const float roughness, const float lacunarity)
Definition at line 137 of file node_noise.h.
◆ NOISE_RIDGED_MULTI_FRACTAL
| #define NOISE_RIDGED_MULTI_FRACTAL |
( |
| T | ) |
|
Value:
T co,
float detail,
float roughness,
float lacunarity,
float offset,
float gain) \
{ \
float pwr = roughness; \
\
signal *= signal; \
float value = signal; \
float weight = 1.0; \
\
for (
int i = 1;
i <= (int)detail;
i++) { \
p *= lacunarity; \
weight =
clamp(signal * gain, 0.0, 1.0); \
signal *= signal; \
signal *= weight; \
value += signal * pwr; \
pwr *= roughness; \
} \
\
return value; \
}
ccl_device_noinline float noise_ridged_multi_fractal(float p, const float detail, const float roughness, const float lacunarity, const float offset, const float gain)
constexpr T clamp(T, U, U) RET
ccl_device_inline float2 fabs(const float2 a)
Definition at line 217 of file node_noise.h.
◆ vector3
◆ safe_noise() [1/4]
◆ safe_noise() [2/4]
| float safe_noise |
( |
vector2 | co | ) |
|
◆ safe_noise() [3/4]
◆ safe_noise() [4/4]
| float safe_noise |
( |
vector4 | co | ) |
|
◆ safe_snoise() [1/4]
◆ safe_snoise() [2/4]
| float safe_snoise |
( |
vector2 | co | ) |
|
◆ safe_snoise() [3/4]
◆ safe_snoise() [4/4]
| float safe_snoise |
( |
vector4 | co | ) |
|