Blender  V3.3
blender::noise Namespace Reference

Functions

Hash Functions

Create a randomized hash from the given inputs. Contrary to hash functions in BLI_hash.hh these functions produce better randomness but are more expensive to compute.

uint32_t hash (uint32_t kx)
 
uint32_t hash (uint32_t kx, uint32_t ky)
 
uint32_t hash (uint32_t kx, uint32_t ky, uint32_t kz)
 
uint32_t hash (uint32_t kx, uint32_t ky, uint32_t kz, uint32_t kw)
 
uint32_t hash_float (float kx)
 
uint32_t hash_float (float2 k)
 
uint32_t hash_float (float3 k)
 
uint32_t hash_float (float4 k)
 
float hash_to_float (uint32_t kx)
 
float hash_to_float (uint32_t kx, uint32_t ky)
 
float hash_to_float (uint32_t kx, uint32_t ky, uint32_t kz)
 
float hash_to_float (uint32_t kx, uint32_t ky, uint32_t kz, uint32_t kw)
 
float hash_float_to_float (float k)
 
float hash_float_to_float (float2 k)
 
float hash_float_to_float (float3 k)
 
float hash_float_to_float (float4 k)
 
float2 hash_float_to_float2 (float2 k)
 
float3 hash_float_to_float3 (float k)
 
float3 hash_float_to_float3 (float2 k)
 
float3 hash_float_to_float3 (float3 k)
 
float3 hash_float_to_float3 (float4 k)
 
float4 hash_float_to_float4 (float4 k)
 
Perlin Noise

Perlin, Ken. "Improving noise." Proceedings of the 29th annual conference on Computer graphics and interactive techniques. 2002.

This implementation is functionally identical to the implementations in EEVEE, OSL, and SVM. So any changes should be applied in all relevant implementations.

float perlin_signed (float position)
 
float perlin_signed (float2 position)
 
float perlin_signed (float3 position)
 
float perlin_signed (float4 position)
 
float perlin (float position)
 
float perlin (float2 position)
 
float perlin (float3 position)
 
float perlin (float4 position)
 
float perlin_fractal (float position, float octaves, float roughness)
 
float perlin_fractal (float2 position, float octaves, float roughness)
 
float perlin_fractal (float3 position, float octaves, float roughness)
 
float perlin_fractal (float4 position, float octaves, float roughness)
 
float perlin_fractal_distorted (float position, float octaves, float roughness, float distortion)
 
float perlin_fractal_distorted (float2 position, float octaves, float roughness, float distortion)
 
float perlin_fractal_distorted (float3 position, float octaves, float roughness, float distortion)
 
float perlin_fractal_distorted (float4 position, float octaves, float roughness, float distortion)
 
float3 perlin_float3_fractal_distorted (float position, float octaves, float roughness, float distortion)
 
float3 perlin_float3_fractal_distorted (float2 position, float octaves, float roughness, float distortion)
 
float3 perlin_float3_fractal_distorted (float3 position, float octaves, float roughness, float distortion)
 
float3 perlin_float3_fractal_distorted (float4 position, float octaves, float roughness, float distortion)
 
BLI_INLINE float mix (float v0, float v1, float x)
 
BLI_INLINE float mix (float v0, float v1, float v2, float v3, float x, float y)
 
BLI_INLINE float mix (float v0, float v1, float v2, float v3, float v4, float v5, float v6, float v7, float x, float y, float z)
 
BLI_INLINE float mix (float v0, float v1, float v2, float v3, float v4, float v5, float v6, float v7, float v8, float v9, float v10, float v11, float v12, float v13, float v14, float v15, float x, float y, float z, float w)
 
BLI_INLINE float fade (float t)
 
BLI_INLINE float negate_if (float value, uint32_t condition)
 
BLI_INLINE float noise_grad (uint32_t hash, float x)
 
BLI_INLINE float noise_grad (uint32_t hash, float x, float y)
 
BLI_INLINE float noise_grad (uint32_t hash, float x, float y, float z)
 
BLI_INLINE float noise_grad (uint32_t hash, float x, float y, float z, float w)
 
BLI_INLINE float floor_fraction (float x, int &i)
 
BLI_INLINE float perlin_noise (float position)
 
BLI_INLINE float perlin_noise (float2 position)
 
BLI_INLINE float perlin_noise (float3 position)
 
BLI_INLINE float perlin_noise (float4 position)
 
template<typename T >
float perlin_fractal_template (T position, float octaves, float roughness)
 
BLI_INLINE float random_float_offset (float seed)
 
BLI_INLINE float2 random_float2_offset (float seed)
 
BLI_INLINE float3 random_float3_offset (float seed)
 
BLI_INLINE float4 random_float4_offset (float seed)
 
BLI_INLINE float perlin_distortion (float position, float strength)
 
BLI_INLINE float2 perlin_distortion (float2 position, float strength)
 
BLI_INLINE float3 perlin_distortion (float3 position, float strength)
 
BLI_INLINE float4 perlin_distortion (float4 position, float strength)
 
Musgrave Multi Fractal
float musgrave_ridged_multi_fractal (float co, float H, float lacunarity, float octaves, float offset, float gain)
 
float musgrave_ridged_multi_fractal (const float2 co, float H, float lacunarity, float octaves, float offset, float gain)
 
float musgrave_ridged_multi_fractal (const float3 co, float H, float lacunarity, float octaves, float offset, float gain)
 
float musgrave_ridged_multi_fractal (const float4 co, float H, float lacunarity, float octaves, float offset, float gain)
 
float musgrave_hybrid_multi_fractal (float co, float H, float lacunarity, float octaves, float offset, float gain)
 
float musgrave_hybrid_multi_fractal (const float2 co, float H, float lacunarity, float octaves, float offset, float gain)
 
float musgrave_hybrid_multi_fractal (const float3 co, float H, float lacunarity, float octaves, float offset, float gain)
 
float musgrave_hybrid_multi_fractal (const float4 co, float H, float lacunarity, float octaves, float offset, float gain)
 
float musgrave_fBm (float co, float H, float lacunarity, float octaves)
 
float musgrave_fBm (const float2 co, float H, float lacunarity, float octaves)
 
float musgrave_fBm (const float3 co, float H, float lacunarity, float octaves)
 
float musgrave_fBm (const float4 co, float H, float lacunarity, float octaves)
 
float musgrave_multi_fractal (float co, float H, float lacunarity, float octaves)
 
float musgrave_multi_fractal (const float2 co, float H, float lacunarity, float octaves)
 
float musgrave_multi_fractal (const float3 co, float H, float lacunarity, float octaves)
 
float musgrave_multi_fractal (const float4 co, float H, float lacunarity, float octaves)
 
float musgrave_hetero_terrain (float co, float H, float lacunarity, float octaves, float offset)
 
float musgrave_hetero_terrain (const float2 co, float H, float lacunarity, float octaves, float offset)
 
float musgrave_hetero_terrain (const float3 co, float H, float lacunarity, float octaves, float offset)
 
float musgrave_hetero_terrain (const float4 co, float H, float lacunarity, float octaves, float offset)
 
Jenkins Lookup3 Hash Functions
BLI_INLINE uint32_t hash_bit_rotate (uint32_t x, uint32_t k)
 
BLI_INLINE void hash_bit_mix (uint32_t &a, uint32_t &b, uint32_t &c)
 
BLI_INLINE void hash_bit_final (uint32_t &a, uint32_t &b, uint32_t &c)
 
BLI_INLINE uint32_t float_as_uint (float f)
 
BLI_INLINE float uint_to_float_01 (uint32_t k)
 

Voronoi Noise

Note
Ported from Cycles code.

Original code is under the MIT License, Copyright (c) 2013 Inigo Quilez.

Smooth Voronoi:

Distance To Edge based on:

With optimization to change -2..2 scan window to -1..1 for better performance, as explained in https://www.shadertoy.com/view/llG3zy.

enum  { NOISE_SHD_VORONOI_EUCLIDEAN = 0 , NOISE_SHD_VORONOI_MANHATTAN = 1 , NOISE_SHD_VORONOI_CHEBYCHEV = 2 , NOISE_SHD_VORONOI_MINKOWSKI = 3 }
 
void voronoi_f1 (float w, float randomness, float *r_distance, float3 *r_color, float *r_w)
 
void voronoi_smooth_f1 (float w, float smoothness, float randomness, float *r_distance, float3 *r_color, float *r_w)
 
void voronoi_f2 (float w, float randomness, float *r_distance, float3 *r_color, float *r_w)
 
void voronoi_distance_to_edge (float w, float randomness, float *r_distance)
 
void voronoi_n_sphere_radius (float w, float randomness, float *r_radius)
 
void voronoi_f1 (const float2 coord, float exponent, float randomness, int metric, float *r_distance, float3 *r_color, float2 *r_position)
 
void voronoi_smooth_f1 (const float2 coord, float smoothness, float exponent, float randomness, int metric, float *r_distance, float3 *r_color, float2 *r_position)
 
void voronoi_f2 (const float2 coord, float exponent, float randomness, int metric, float *r_distance, float3 *r_color, float2 *r_position)
 
void voronoi_distance_to_edge (const float2 coord, float randomness, float *r_distance)
 
void voronoi_n_sphere_radius (const float2 coord, float randomness, float *r_radius)
 
void voronoi_f1 (const float3 coord, float exponent, float randomness, int metric, float *r_distance, float3 *r_color, float3 *r_position)
 
void voronoi_smooth_f1 (const float3 coord, float smoothness, float exponent, float randomness, int metric, float *r_distance, float3 *r_color, float3 *r_position)
 
void voronoi_f2 (const float3 coord, float exponent, float randomness, int metric, float *r_distance, float3 *r_color, float3 *r_position)
 
void voronoi_distance_to_edge (const float3 coord, float randomness, float *r_distance)
 
void voronoi_n_sphere_radius (const float3 coord, float randomness, float *r_radius)
 
void voronoi_f1 (const float4 coord, float exponent, float randomness, int metric, float *r_distance, float3 *r_color, float4 *r_position)
 
void voronoi_smooth_f1 (const float4 coord, float smoothness, float exponent, float randomness, int metric, float *r_distance, float3 *r_color, float4 *r_position)
 
void voronoi_f2 (const float4 coord, float exponent, float randomness, int metric, float *r_distance, float3 *r_color, float4 *r_position)
 
void voronoi_distance_to_edge (const float4 coord, float randomness, float *r_distance)
 
void voronoi_n_sphere_radius (const float4 coord, float randomness, float *r_radius)
 
BLI_INLINE float voronoi_distance (const float a, const float b)
 
static float voronoi_distance (const float2 a, const float2 b, const int metric, const float exponent)
 
static float voronoi_distance (const float3 a, const float3 b, const int metric, const float exponent)
 
static float voronoi_distance (const float4 a, const float4 b, const int metric, const float exponent)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
NOISE_SHD_VORONOI_EUCLIDEAN 
NOISE_SHD_VORONOI_MANHATTAN 
NOISE_SHD_VORONOI_CHEBYCHEV 
NOISE_SHD_VORONOI_MINKOWSKI 

Definition at line 1368 of file noise.cc.

Function Documentation

◆ fade()

BLI_INLINE float blender::noise::fade ( float  t)

Definition at line 338 of file noise.cc.

References t.

Referenced by perlin_noise().

◆ float_as_uint()

BLI_INLINE uint32_t blender::noise::float_as_uint ( float  f)

Definition at line 119 of file noise.cc.

Referenced by hash_float().

◆ floor_fraction()

BLI_INLINE float blender::noise::floor_fraction ( float  x,
int &  i 
)

Definition at line 381 of file noise.cc.

References x.

Referenced by perlin_noise().

◆ hash() [1/4]

uint32_t blender::noise::hash ( uint32_t  kx)

◆ hash() [2/4]

uint32_t blender::noise::hash ( uint32_t  kx,
uint32_t  ky 
)

Definition at line 78 of file noise.cc.

References Freestyle::a, usdtokens::b(), Freestyle::c, and hash_bit_final().

◆ hash() [3/4]

uint32_t blender::noise::hash ( uint32_t  kx,
uint32_t  ky,
uint32_t  kz 
)

Definition at line 90 of file noise.cc.

References Freestyle::a, usdtokens::b(), Freestyle::c, and hash_bit_final().

◆ hash() [4/4]

uint32_t blender::noise::hash ( uint32_t  kx,
uint32_t  ky,
uint32_t  kz,
uint32_t  kw 
)

Definition at line 103 of file noise.cc.

References Freestyle::a, usdtokens::b(), Freestyle::c, hash_bit_final(), and hash_bit_mix().

◆ hash_bit_final()

BLI_INLINE void blender::noise::hash_bit_final ( uint32_t a,
uint32_t b,
uint32_t c 
)

Definition at line 49 of file noise.cc.

References Freestyle::a, usdtokens::b(), Freestyle::c, and hash_bit_rotate().

Referenced by hash().

◆ hash_bit_mix()

BLI_INLINE void blender::noise::hash_bit_mix ( uint32_t a,
uint32_t b,
uint32_t c 
)

Definition at line 27 of file noise.cc.

References Freestyle::a, usdtokens::b(), Freestyle::c, and hash_bit_rotate().

Referenced by hash().

◆ hash_bit_rotate()

BLI_INLINE uint32_t blender::noise::hash_bit_rotate ( uint32_t  x,
uint32_t  k 
)

Definition at line 22 of file noise.cc.

References x.

Referenced by hash_bit_final(), and hash_bit_mix().

◆ hash_float() [1/4]

uint32_t blender::noise::hash_float ( float  kx)

◆ hash_float() [2/4]

uint32_t blender::noise::hash_float ( float2  k)

Definition at line 134 of file noise.cc.

References float_as_uint(), and hash().

◆ hash_float() [3/4]

uint32_t blender::noise::hash_float ( float3  k)

Definition at line 139 of file noise.cc.

References float_as_uint(), and hash().

◆ hash_float() [4/4]

uint32_t blender::noise::hash_float ( float4  k)

Definition at line 144 of file noise.cc.

References float_as_uint(), and hash().

◆ hash_float_to_float() [1/4]

float blender::noise::hash_float_to_float ( float  k)

◆ hash_float_to_float() [2/4]

float blender::noise::hash_float_to_float ( float2  k)

Definition at line 183 of file noise.cc.

References hash_float(), and uint_to_float_01().

◆ hash_float_to_float() [3/4]

float blender::noise::hash_float_to_float ( float3  k)

Definition at line 188 of file noise.cc.

References hash_float(), and uint_to_float_01().

◆ hash_float_to_float() [4/4]

float blender::noise::hash_float_to_float ( float4  k)

Definition at line 193 of file noise.cc.

References hash_float(), and uint_to_float_01().

◆ hash_float_to_float2()

float2 blender::noise::hash_float_to_float2 ( float2  k)

◆ hash_float_to_float3() [1/4]

float3 blender::noise::hash_float_to_float3 ( float  k)

◆ hash_float_to_float3() [2/4]

float3 blender::noise::hash_float_to_float3 ( float2  k)

Definition at line 210 of file noise.cc.

References hash_float_to_float().

◆ hash_float_to_float3() [3/4]

float3 blender::noise::hash_float_to_float3 ( float3  k)

Definition at line 217 of file noise.cc.

References hash_float_to_float().

◆ hash_float_to_float3() [4/4]

float3 blender::noise::hash_float_to_float3 ( float4  k)

Definition at line 224 of file noise.cc.

References hash_float_to_float().

◆ hash_float_to_float4()

float4 blender::noise::hash_float_to_float4 ( float4  k)

◆ hash_to_float() [1/4]

float blender::noise::hash_to_float ( uint32_t  kx)

◆ hash_to_float() [2/4]

float blender::noise::hash_to_float ( uint32_t  kx,
uint32_t  ky 
)

Definition at line 161 of file noise.cc.

References hash(), and uint_to_float_01().

◆ hash_to_float() [3/4]

float blender::noise::hash_to_float ( uint32_t  kx,
uint32_t  ky,
uint32_t  kz 
)

Definition at line 166 of file noise.cc.

References hash(), and uint_to_float_01().

◆ hash_to_float() [4/4]

float blender::noise::hash_to_float ( uint32_t  kx,
uint32_t  ky,
uint32_t  kz,
uint32_t  kw 
)

Definition at line 171 of file noise.cc.

References hash(), and uint_to_float_01().

◆ mix() [1/4]

BLI_INLINE float blender::noise::mix ( float  v0,
float  v1,
float  v2,
float  v3,
float  v4,
float  v5,
float  v6,
float  v7,
float  v8,
float  v9,
float  v10,
float  v11,
float  v12,
float  v13,
float  v14,
float  v15,
float  x,
float  y,
float  z,
float  w 
)

Definition at line 312 of file noise.cc.

References mix(), v1, v2, w(), x, y, and z.

◆ mix() [2/4]

BLI_INLINE float blender::noise::mix ( float  v0,
float  v1,
float  v2,
float  v3,
float  v4,
float  v5,
float  v6,
float  v7,
float  x,
float  y,
float  z 
)

Definition at line 292 of file noise.cc.

References v1, v2, x, y, y1, and z.

◆ mix() [3/4]

BLI_INLINE float blender::noise::mix ( float  v0,
float  v1,
float  v2,
float  v3,
float  x,
float  y 
)

Definition at line 268 of file noise.cc.

References v1, v2, x, and y.

◆ mix() [4/4]

BLI_INLINE float blender::noise::mix ( float  v0,
float  v1,
float  x 
)

Definition at line 252 of file noise.cc.

References v1, and x.

Referenced by mix(), perlin_noise(), and voronoi_smooth_f1().

◆ musgrave_fBm() [1/4]

float blender::noise::musgrave_fBm ( const float2  co,
float  H,
float  lacunarity,
float  octaves 
)

2D Musgrave fBm

Parameters
Hfractal increment parameter.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.

Definition at line 874 of file noise.cc.

References CLAMPIS, floorf, H, perlin_signed(), and pow().

◆ musgrave_fBm() [2/4]

float blender::noise::musgrave_fBm ( const float3  co,
float  H,
float  lacunarity,
float  octaves 
)

3D Musgrave fBm

Parameters
Hfractal increment parameter.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.

Definition at line 1029 of file noise.cc.

References CLAMPIS, floorf, H, perlin_signed(), and pow().

◆ musgrave_fBm() [3/4]

float blender::noise::musgrave_fBm ( const float4  co,
float  H,
float  lacunarity,
float  octaves 
)

4D Musgrave fBm

Parameters
Hfractal increment parameter.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.

Definition at line 1186 of file noise.cc.

References CLAMPIS, floorf, H, perlin_signed(), and pow().

◆ musgrave_fBm() [4/4]

float blender::noise::musgrave_fBm ( float  co,
float  H,
float  lacunarity,
float  octaves 
)

1D Musgrave fBm

Parameters
Hfractal increment parameter.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.

Definition at line 720 of file noise.cc.

References CLAMPIS, floorf, H, perlin_signed(), and pow().

Referenced by blender::nodes::node_shader_tex_musgrave_cc::MusgraveFunction::call().

◆ musgrave_hetero_terrain() [1/4]

float blender::noise::musgrave_hetero_terrain ( const float2  co,
float  H,
float  lacunarity,
float  octaves,
float  offset 
)

2D Musgrave Heterogeneous Terrain

Parameters
Hfractal dimension of the roughest area.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.
offsetraises the terrain from ‘sea level’.

Definition at line 926 of file noise.cc.

References CLAMPIS, floorf, H, offset, perlin_signed(), and pow().

◆ musgrave_hetero_terrain() [2/4]

float blender::noise::musgrave_hetero_terrain ( const float3  co,
float  H,
float  lacunarity,
float  octaves,
float  offset 
)

3D Musgrave Heterogeneous Terrain

Parameters
Hfractal dimension of the roughest area.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.
offsetraises the terrain from ‘sea level’.

Definition at line 1083 of file noise.cc.

References CLAMPIS, floorf, H, offset, perlin_signed(), and pow().

◆ musgrave_hetero_terrain() [3/4]

float blender::noise::musgrave_hetero_terrain ( const float4  co,
float  H,
float  lacunarity,
float  octaves,
float  offset 
)

4D Musgrave Heterogeneous Terrain

Parameters
Hfractal dimension of the roughest area.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.
offsetraises the terrain from ‘sea level’.

Definition at line 1240 of file noise.cc.

References CLAMPIS, floorf, H, offset, perlin_signed(), and pow().

◆ musgrave_hetero_terrain() [4/4]

float blender::noise::musgrave_hetero_terrain ( float  co,
float  H,
float  lacunarity,
float  octaves,
float  offset 
)

1D Musgrave Heterogeneous Terrain

Parameters
Hfractal dimension of the roughest area.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.
offsetraises the terrain from ‘sea level’.

Definition at line 772 of file noise.cc.

References CLAMPIS, floorf, H, offset, perlin_signed(), and pow().

Referenced by blender::nodes::node_shader_tex_musgrave_cc::MusgraveFunction::call().

◆ musgrave_hybrid_multi_fractal() [1/4]

float blender::noise::musgrave_hybrid_multi_fractal ( const float2  co,
float  H,
float  lacunarity,
float  octaves,
float  offset,
float  gain 
)

2D Hybrid Additive/Multiplicative Multi-fractal Terrain

Parameters
Hfractal dimension of the roughest area.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.
offsetraises the terrain from ‘sea level’.

Definition at line 958 of file noise.cc.

References CLAMPIS, floorf, H, offset, perlin_signed(), and pow().

◆ musgrave_hybrid_multi_fractal() [2/4]

float blender::noise::musgrave_hybrid_multi_fractal ( const float3  co,
float  H,
float  lacunarity,
float  octaves,
float  offset,
float  gain 
)

3D Hybrid Additive/Multiplicative Multi-fractal Terrain

Parameters
Hfractal dimension of the roughest area.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.
offsetraises the terrain from ‘sea level’.

Definition at line 1115 of file noise.cc.

References CLAMPIS, floorf, H, offset, perlin_signed(), and pow().

◆ musgrave_hybrid_multi_fractal() [3/4]

float blender::noise::musgrave_hybrid_multi_fractal ( const float4  co,
float  H,
float  lacunarity,
float  octaves,
float  offset,
float  gain 
)

4D Hybrid Additive/Multiplicative Multi-fractal Terrain

Parameters
Hfractal dimension of the roughest area.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.
offsetraises the terrain from ‘sea level’.

Definition at line 1272 of file noise.cc.

References CLAMPIS, floorf, H, offset, perlin_signed(), and pow().

◆ musgrave_hybrid_multi_fractal() [4/4]

float blender::noise::musgrave_hybrid_multi_fractal ( float  co,
float  H,
float  lacunarity,
float  octaves,
float  offset,
float  gain 
)

1D Hybrid Additive/Multiplicative Multi-fractal Terrain

Parameters
Hfractal dimension of the roughest area.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.
offsetraises the terrain from ‘sea level’.

Definition at line 803 of file noise.cc.

References CLAMPIS, floorf, H, offset, perlin_signed(), and pow().

Referenced by blender::nodes::node_shader_tex_musgrave_cc::MusgraveFunction::call().

◆ musgrave_multi_fractal() [1/4]

float blender::noise::musgrave_multi_fractal ( const float2  co,
float  H,
float  lacunarity,
float  octaves 
)

2D Musgrave Multi-fractal

Parameters
Hhighest fractal dimension.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.

Definition at line 901 of file noise.cc.

References CLAMPIS, floorf, H, perlin_signed(), and pow().

◆ musgrave_multi_fractal() [2/4]

float blender::noise::musgrave_multi_fractal ( const float3  co,
float  H,
float  lacunarity,
float  octaves 
)

3D Musgrave Multi-fractal

Parameters
Hhighest fractal dimension.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.

Definition at line 1057 of file noise.cc.

References CLAMPIS, floorf, H, perlin_signed(), and pow().

◆ musgrave_multi_fractal() [3/4]

float blender::noise::musgrave_multi_fractal ( const float4  co,
float  H,
float  lacunarity,
float  octaves 
)

4D Musgrave Multi-fractal

Parameters
Hhighest fractal dimension.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.

Definition at line 1214 of file noise.cc.

References CLAMPIS, floorf, H, perlin_signed(), and pow().

◆ musgrave_multi_fractal() [4/4]

float blender::noise::musgrave_multi_fractal ( float  co,
float  H,
float  lacunarity,
float  octaves 
)

1D Musgrave Multi-fractal

Parameters
Hhighest fractal dimension.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.

Definition at line 747 of file noise.cc.

References CLAMPIS, floorf, H, perlin_signed(), and pow().

Referenced by blender::nodes::node_shader_tex_musgrave_cc::MusgraveFunction::call().

◆ musgrave_ridged_multi_fractal() [1/4]

float blender::noise::musgrave_ridged_multi_fractal ( const float2  co,
float  H,
float  lacunarity,
float  octaves,
float  offset,
float  gain 
)

2D Ridged Multi-fractal Terrain

Parameters
Hfractal dimension of the roughest area.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.
offsetraises the terrain from ‘sea level’.

Definition at line 998 of file noise.cc.

References blender::math::abs(), CLAMPIS, H, offset, perlin_signed(), and pow().

◆ musgrave_ridged_multi_fractal() [2/4]

float blender::noise::musgrave_ridged_multi_fractal ( const float3  co,
float  H,
float  lacunarity,
float  octaves,
float  offset,
float  gain 
)

3D Ridged Multi-fractal Terrain

Parameters
Hfractal dimension of the roughest area.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.
offsetraises the terrain from ‘sea level’.

Definition at line 1155 of file noise.cc.

References blender::math::abs(), CLAMPIS, H, offset, perlin_signed(), and pow().

◆ musgrave_ridged_multi_fractal() [3/4]

float blender::noise::musgrave_ridged_multi_fractal ( const float4  co,
float  H,
float  lacunarity,
float  octaves,
float  offset,
float  gain 
)

4D Ridged Multi-fractal Terrain

Parameters
Hfractal dimension of the roughest area.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.
offsetraises the terrain from ‘sea level’.

Definition at line 1312 of file noise.cc.

References blender::math::abs(), CLAMPIS, H, offset, perlin_signed(), and pow().

◆ musgrave_ridged_multi_fractal() [4/4]

float blender::noise::musgrave_ridged_multi_fractal ( float  co,
float  H,
float  lacunarity,
float  octaves,
float  offset,
float  gain 
)

1D Ridged Multi-fractal Terrain

Parameters
Hfractal dimension of the roughest area.
lacunaritygap between successive frequencies.
octavesnumber of frequencies in the fBm.
offsetraises the terrain from ‘sea level’.

Definition at line 843 of file noise.cc.

References blender::math::abs(), CLAMPIS, H, offset, perlin_signed(), and pow().

Referenced by blender::nodes::node_shader_tex_musgrave_cc::MusgraveFunction::call().

◆ negate_if()

BLI_INLINE float blender::noise::negate_if ( float  value,
uint32_t  condition 
)

Definition at line 343 of file noise.cc.

Referenced by noise_grad().

◆ noise_grad() [1/4]

BLI_INLINE float blender::noise::noise_grad ( uint32_t  hash,
float  x 
)

Definition at line 348 of file noise.cc.

References usdtokens::g(), hash(), negate_if(), and x.

Referenced by perlin_noise().

◆ noise_grad() [2/4]

BLI_INLINE float blender::noise::noise_grad ( uint32_t  hash,
float  x,
float  y 
)

Definition at line 355 of file noise.cc.

References hash(), negate_if(), v, x, and y.

◆ noise_grad() [3/4]

BLI_INLINE float blender::noise::noise_grad ( uint32_t  hash,
float  x,
float  y,
float  z 
)

Definition at line 363 of file noise.cc.

References ELEM, hash(), negate_if(), v, x, y, and z.

◆ noise_grad() [4/4]

BLI_INLINE float blender::noise::noise_grad ( uint32_t  hash,
float  x,
float  y,
float  z,
float  w 
)

Definition at line 372 of file noise.cc.

References hash(), negate_if(), v, w(), x, y, and z.

◆ perlin() [1/4]

float blender::noise::perlin ( float  position)

Definition at line 511 of file noise.cc.

References perlin_signed().

Referenced by perlin_fractal_template().

◆ perlin() [2/4]

float blender::noise::perlin ( float2  position)

Definition at line 516 of file noise.cc.

References perlin_signed().

◆ perlin() [3/4]

float blender::noise::perlin ( float3  position)

Definition at line 521 of file noise.cc.

References perlin_signed().

◆ perlin() [4/4]

float blender::noise::perlin ( float4  position)

Definition at line 526 of file noise.cc.

References perlin_signed().

◆ perlin_distortion() [1/4]

BLI_INLINE float blender::noise::perlin_distortion ( float  position,
float  strength 
)

Definition at line 615 of file noise.cc.

References perlin_signed(), and random_float_offset().

Referenced by perlin_float3_fractal_distorted(), and perlin_fractal_distorted().

◆ perlin_distortion() [2/4]

BLI_INLINE float2 blender::noise::perlin_distortion ( float2  position,
float  strength 
)

Definition at line 620 of file noise.cc.

References perlin_signed(), and random_float2_offset().

◆ perlin_distortion() [3/4]

BLI_INLINE float3 blender::noise::perlin_distortion ( float3  position,
float  strength 
)

Definition at line 626 of file noise.cc.

References perlin_signed(), and random_float3_offset().

◆ perlin_distortion() [4/4]

BLI_INLINE float4 blender::noise::perlin_distortion ( float4  position,
float  strength 
)

Definition at line 633 of file noise.cc.

References perlin_signed(), and random_float4_offset().

◆ perlin_float3_fractal_distorted() [1/4]

float3 blender::noise::perlin_float3_fractal_distorted ( float  position,
float  octaves,
float  roughness,
float  distortion 
)

◆ perlin_float3_fractal_distorted() [2/4]

float3 blender::noise::perlin_float3_fractal_distorted ( float2  position,
float  octaves,
float  roughness,
float  distortion 
)

◆ perlin_float3_fractal_distorted() [3/4]

float3 blender::noise::perlin_float3_fractal_distorted ( float3  position,
float  octaves,
float  roughness,
float  distortion 
)

◆ perlin_float3_fractal_distorted() [4/4]

float3 blender::noise::perlin_float3_fractal_distorted ( float4  position,
float  octaves,
float  roughness,
float  distortion 
)

◆ perlin_fractal() [1/4]

float blender::noise::perlin_fractal ( float  position,
float  octaves,
float  roughness 
)

◆ perlin_fractal() [2/4]

float blender::noise::perlin_fractal ( float2  position,
float  octaves,
float  roughness 
)

Definition at line 565 of file noise.cc.

References perlin_fractal_template(), and usdtokens::roughness().

◆ perlin_fractal() [3/4]

float blender::noise::perlin_fractal ( float3  position,
float  octaves,
float  roughness 
)

Definition at line 570 of file noise.cc.

References perlin_fractal_template(), and usdtokens::roughness().

◆ perlin_fractal() [4/4]

float blender::noise::perlin_fractal ( float4  position,
float  octaves,
float  roughness 
)

Definition at line 575 of file noise.cc.

References perlin_fractal_template(), and usdtokens::roughness().

◆ perlin_fractal_distorted() [1/4]

float blender::noise::perlin_fractal_distorted ( float  position,
float  octaves,
float  roughness,
float  distortion 
)

◆ perlin_fractal_distorted() [2/4]

float blender::noise::perlin_fractal_distorted ( float2  position,
float  octaves,
float  roughness,
float  distortion 
)

Definition at line 649 of file noise.cc.

References perlin_distortion(), perlin_fractal(), and usdtokens::roughness().

◆ perlin_fractal_distorted() [3/4]

float blender::noise::perlin_fractal_distorted ( float3  position,
float  octaves,
float  roughness,
float  distortion 
)

Definition at line 655 of file noise.cc.

References perlin_distortion(), perlin_fractal(), and usdtokens::roughness().

◆ perlin_fractal_distorted() [4/4]

float blender::noise::perlin_fractal_distorted ( float4  position,
float  octaves,
float  roughness,
float  distortion 
)

Definition at line 661 of file noise.cc.

References perlin_distortion(), perlin_fractal(), and usdtokens::roughness().

◆ perlin_fractal_template()

template<typename T >
float blender::noise::perlin_fractal_template ( T  position,
float  octaves,
float  roughness 
)

Definition at line 533 of file noise.cc.

References CLAMPIS, blender::math::floor(), perlin(), usdtokens::roughness(), sum(), and t.

Referenced by perlin_fractal().

◆ perlin_noise() [1/4]

BLI_INLINE float blender::noise::perlin_noise ( float  position)

Definition at line 387 of file noise.cc.

References fade(), floor_fraction(), hash(), mix(), noise_grad(), r, and X.

Referenced by perlin_signed().

◆ perlin_noise() [2/4]

BLI_INLINE float blender::noise::perlin_noise ( float2  position)

Definition at line 400 of file noise.cc.

References fade(), floor_fraction(), hash(), mix(), noise_grad(), r, v, X, and Y.

◆ perlin_noise() [3/4]

BLI_INLINE float blender::noise::perlin_noise ( float3  position)

Definition at line 420 of file noise.cc.

References fade(), floor_fraction(), hash(), mix(), noise_grad(), r, v, w(), X, Y, and Z.

◆ perlin_noise() [4/4]

BLI_INLINE float blender::noise::perlin_noise ( float4  position)

Definition at line 447 of file noise.cc.

References fade(), floor_fraction(), hash(), mix(), noise_grad(), r, t, v, X, Y, and Z.

◆ perlin_signed() [1/4]

float blender::noise::perlin_signed ( float  position)

◆ perlin_signed() [2/4]

float blender::noise::perlin_signed ( float2  position)

Definition at line 494 of file noise.cc.

References perlin_noise().

◆ perlin_signed() [3/4]

float blender::noise::perlin_signed ( float3  position)

Definition at line 499 of file noise.cc.

References perlin_noise().

◆ perlin_signed() [4/4]

float blender::noise::perlin_signed ( float4  position)

Definition at line 504 of file noise.cc.

References perlin_noise().

◆ random_float2_offset()

BLI_INLINE float2 blender::noise::random_float2_offset ( float  seed)

Definition at line 592 of file noise.cc.

References hash_float_to_float(), and seed.

Referenced by perlin_distortion(), and perlin_float3_fractal_distorted().

◆ random_float3_offset()

BLI_INLINE float3 blender::noise::random_float3_offset ( float  seed)

Definition at line 598 of file noise.cc.

References hash_float_to_float(), and seed.

Referenced by perlin_distortion(), and perlin_float3_fractal_distorted().

◆ random_float4_offset()

BLI_INLINE float4 blender::noise::random_float4_offset ( float  seed)

Definition at line 605 of file noise.cc.

References hash_float_to_float(), and seed.

Referenced by perlin_distortion(), and perlin_float3_fractal_distorted().

◆ random_float_offset()

BLI_INLINE float blender::noise::random_float_offset ( float  seed)

Definition at line 587 of file noise.cc.

References hash_float_to_float(), and seed.

Referenced by perlin_distortion(), and perlin_float3_fractal_distorted().

◆ uint_to_float_01()

BLI_INLINE float blender::noise::uint_to_float_01 ( uint32_t  k)

Definition at line 151 of file noise.cc.

Referenced by hash_float_to_float(), and hash_to_float().

◆ voronoi_distance() [1/4]

BLI_INLINE float blender::noise::voronoi_distance ( const float  a,
const float  b 
)

Definition at line 1375 of file noise.cc.

References Freestyle::a, blender::math::abs(), and usdtokens::b().

Referenced by voronoi_f1(), voronoi_f2(), and voronoi_smooth_f1().

◆ voronoi_distance() [2/4]

static float blender::noise::voronoi_distance ( const float2  a,
const float2  b,
const int  metric,
const float  exponent 
)
static

◆ voronoi_distance() [3/4]

static float blender::noise::voronoi_distance ( const float3  a,
const float3  b,
const int  metric,
const float  exponent 
)
static

◆ voronoi_distance() [4/4]

static float blender::noise::voronoi_distance ( const float4  a,
const float4  b,
const int  metric,
const float  exponent 
)
static

◆ voronoi_distance_to_edge() [1/4]

void blender::noise::voronoi_distance_to_edge ( const float2  coord,
float  randomness,
float r_distance 
)

◆ voronoi_distance_to_edge() [2/4]

void blender::noise::voronoi_distance_to_edge ( const float3  coord,
float  randomness,
float r_distance 
)

◆ voronoi_distance_to_edge() [3/4]

void blender::noise::voronoi_distance_to_edge ( const float4  coord,
float  randomness,
float r_distance 
)

◆ voronoi_distance_to_edge() [4/4]

void blender::noise::voronoi_distance_to_edge ( float  w,
float  randomness,
float r_distance 
)

◆ voronoi_f1() [1/4]

void blender::noise::voronoi_f1 ( const float2  coord,
float  exponent,
float  randomness,
int  metric,
float r_distance,
float3 r_color,
float2 r_position 
)

◆ voronoi_f1() [2/4]

void blender::noise::voronoi_f1 ( const float3  coord,
float  exponent,
float  randomness,
int  metric,
float r_distance,
float3 r_color,
float3 r_position 
)

Definition at line 1822 of file noise.cc.

References blender::math::floor(), hash_float_to_float3(), and voronoi_distance().

◆ voronoi_f1() [3/4]

void blender::noise::voronoi_f1 ( const float4  coord,
float  exponent,
float  randomness,
int  metric,
float r_distance,
float3 r_color,
float4 r_position 
)

◆ voronoi_f1() [4/4]

void blender::noise::voronoi_f1 ( float  w,
float  randomness,
float r_distance,
float3 r_color,
float r_w 
)

◆ voronoi_f2() [1/4]

void blender::noise::voronoi_f2 ( const float2  coord,
float  exponent,
float  randomness,
int  metric,
float r_distance,
float3 r_color,
float2 r_position 
)

◆ voronoi_f2() [2/4]

void blender::noise::voronoi_f2 ( const float3  coord,
float  exponent,
float  randomness,
int  metric,
float r_distance,
float3 r_color,
float3 r_position 
)

Definition at line 1916 of file noise.cc.

References blender::math::floor(), hash_float_to_float3(), and voronoi_distance().

◆ voronoi_f2() [3/4]

void blender::noise::voronoi_f2 ( const float4  coord,
float  exponent,
float  randomness,
int  metric,
float r_distance,
float3 r_color,
float4 r_position 
)

◆ voronoi_f2() [4/4]

void blender::noise::voronoi_f2 ( float  w,
float  randomness,
float r_distance,
float3 r_color,
float r_w 
)

◆ voronoi_n_sphere_radius() [1/4]

void blender::noise::voronoi_n_sphere_radius ( const float2  coord,
float  randomness,
float r_radius 
)

◆ voronoi_n_sphere_radius() [2/4]

void blender::noise::voronoi_n_sphere_radius ( const float3  coord,
float  randomness,
float r_radius 
)

◆ voronoi_n_sphere_radius() [3/4]

void blender::noise::voronoi_n_sphere_radius ( const float4  coord,
float  randomness,
float r_radius 
)

◆ voronoi_n_sphere_radius() [4/4]

void blender::noise::voronoi_n_sphere_radius ( float  w,
float  randomness,
float r_radius 
)

◆ voronoi_smooth_f1() [1/4]

void blender::noise::voronoi_smooth_f1 ( const float2  coord,
float  smoothness,
float  exponent,
float  randomness,
int  metric,
float r_distance,
float3 r_color,
float2 r_position 
)

◆ voronoi_smooth_f1() [2/4]

void blender::noise::voronoi_smooth_f1 ( const float3  coord,
float  smoothness,
float  exponent,
float  randomness,
int  metric,
float r_distance,
float3 r_color,
float3 r_position 
)

◆ voronoi_smooth_f1() [3/4]

void blender::noise::voronoi_smooth_f1 ( const float4  coord,
float  smoothness,
float  exponent,
float  randomness,
int  metric,
float r_distance,
float3 r_color,
float4 r_position 
)

◆ voronoi_smooth_f1() [4/4]

void blender::noise::voronoi_smooth_f1 ( float  w,
float  smoothness,
float  randomness,
float r_distance,
float3 r_color,
float r_w 
)