#include <lib_noise.h>
The noise class used for the Cinema 4D shaders.
Private Member Functions | |
C4DNoise () | |
~C4DNoise () | |
Alloc/Free | |
static C4DNoise * | Alloc (Int32 seed) |
static C4DNoise * | Alloc2 (Int32 seed) |
static void | Free (C4DNoise *&p) |
Menu Container | |
static BaseContainer | CreateMenuContainer (Bool bIncludeNone=false) |
Has Octaves/Absolute/Cycles | |
static Bool | HasOctaves (NoiseType t) |
static Bool | HasAbsolute (NoiseType t) |
static Bool | HasCycles (NoiseType t) |
Miscellaneous | |
static void | EvaluateSampleOffset (NoiseType type, Float rOctaves, Float rDelta, Float &rSampleOffset) |
static void | GetNoisePreview (NoiseType t, IconData &dat, String *str=nullptr) |
Private | |
static const UChar * | GetPermutationTable () |
const Float * | GetFBMTable () |
const Float * | GetValueTable () |
const Float * | GetImpulseTable () |
const Int32 * | GetTPPermutationTable () |
const NoiseGradient * | GetNoiseGradient () |
const Int32 * | GetPermutationTableA () |
Noise | |
Float | Noise (NoiseType t, Bool two_d, const Vector &p, Float time=0.0, Float octaves=4.0, Bool absolute=false, Float sampleRad=0.25, Float detailAtt=0.25, Int32 t_repeat=0) |
Init Fbm | |
Bool | InitFbm (Int32 lMaxOctaves, Float rLacunarity, Float h) |
SNoise | |
Float | SNoise (Vector p) |
Float | SNoise (Vector p, Float t, Int32 lRepeat) |
Turbulence | |
Float | Turbulence (Vector p, Float t, Float rOctaves, Bool bAbsolute, Int32 lRepeat) |
Fbm/Multifractal | |
Float | Fbm (Vector p, Float t, Float rOctaves, Int32 lRepeat) |
Float | RidgedMultifractal (Vector p, Float t, Float rOctaves, Float rOffset, Float rGain, Int32 lRepeat) |
|
private |
|
private |
Allocates a noise instance. Destroy the allocated noise instance with Free(). Use AutoAlloc to automate the allocation and destruction based on scope.
[in] | seed | The noise seed. |
|
static |
|
static |
Creates a menu container with the different noise options available.
[in] | bIncludeNone | Pass true to include the None option. |
Checks if a certain noise type supports the octaves parameter.
[in] | t | The noise type: NoiseType |
Checks if a certain noise type supports the absolute parameter.
[in] | t | The noise type: NoiseType |
Checks if a certain noise type supports the cycles parameter.
[in] | t | The noise type: NoiseType |
|
static |
Evaluates the sample offset.
[in] | type | The noise type: NoiseType |
[in] | rOctaves | The number of octaves. |
[in] | rDelta | The delta. |
[out] | rSampleOffset | Assigned the sample offset. |
Generates a noise preview in dat.
[in] | t | The noise type: NoiseType |
[out] | dat | Filled with the noise preview. |
[out] | str | If not nullptr then the name of the noise is assigned. The caller owns the pointed string. |
Float Noise | ( | NoiseType | t, |
Bool | two_d, | ||
const Vector & | p, | ||
Float | time = 0.0 , |
||
Float | octaves = 4.0 , |
||
Bool | absolute = false , |
||
Float | sampleRad = 0.25 , |
||
Float | detailAtt = 0.25 , |
||
Int32 | t_repeat = 0 |
||
) |
Samples a 2D or 3D noise.
[in] | t | The noise type: NoiseType |
[in] | two_d | true for 2D sampling, false for 3D sampling. |
[in] | p | The position. |
[in] | time | The time. |
[in] | octaves | The number of octaves. |
[in] | absolute | true to return an absolute value. |
[in] | sampleRad | The sample radius. |
[in] | detailAtt | The detail attenuation. |
[in] | t_repeat | Must be 2^x - 1 , where x = [1..10] , i.e. one of 1, 3, 7, 15, 31, 63, 127, 255, 511, and 1023.A noise repeats itself in time every 1024 units. Using a smaller t_repeat the noise will repeat at an earlier time. |
Initializes Fractal Brownian Motion.
[in] | lMaxOctaves | The maximum number of octaves. |
[in] | rLacunarity | The lacunarity. |
[in] | h | The h parameter. |
const Float* GetFBMTable | ( | ) |
Private.
const Float* GetValueTable | ( | ) |
Private.
const Float* GetImpulseTable | ( | ) |
Private.
|
static |
Private.
const Int32* GetTPPermutationTable | ( | ) |
Private.
const NoiseGradient* GetNoiseGradient | ( | ) |
Private.
const Int32* GetPermutationTableA | ( | ) |
Private.
Generates a signed noise value.
[in] | p | The noise coordinate. |
Generates a periodic signed noise value.
[in] | p | The noise coordinate. |
[in] | t | The time. |
[in] | lRepeat | Must be 2^x - 1 , where x = [1..10] , i.e. one of 1, 3, 7, 15, 31, 63, 127, 255, 511, and 1023.A noise repeats itself in time every 1024 units. Using a smaller lRepeat the noise will repeat at an earlier time. |
Generates a periodic turbulence value, this is a sum of multiple noises with different frequency.
[in] | p | The noise coordinate. |
[in] | t | The time. |
[in] | rOctaves | The number of octaves. |
[in] | bAbsolute | true to return an absolute value. |
[in] | lRepeat | Must be 2^x - 1 , where x = [1..10] , i.e. one of 1, 3, 7, 15, 31, 63, 127, 255, 511, and 1023.A noise repeats itself in time every 1024 units. Using a smaller lRepeat the noise will repeat at an earlier time. |
Generates a periodic Fractional Brownian Motion value.
[in] | p | The noise coordinate. |
[in] | t | The time. |
[in] | rOctaves | The number of octaves. Must not exceed the value passed to InitFbm(), but can be lower. |
[in] | lRepeat | Must be 2^x - 1 , where x = [1..10] , i.e. one of 1, 3, 7, 15, 31, 63, 127, 255, 511, and 1023.A noise repeats itself in time every 1024 units. Using a smaller lRepeat the noise will repeat at an earlier time. |
Float RidgedMultifractal | ( | Vector | p, |
Float | t, | ||
Float | rOctaves, | ||
Float | rOffset, | ||
Float | rGain, | ||
Int32 | lRepeat | ||
) |
Generates a periodic fractal function used for such things as landscapes or mountain ranges.
[in] | p | The evaluation point. |
[in] | t | The time. |
[in] | rOctaves | The number of octaves. Must not exceed the value passed to InitFbm(), but can be lower. |
[in] | rOffset | The zero offset, this controls the multifractality. |
[in] | rGain | The amplification of the fractal value. |
[in] | lRepeat | Must be 2^x - 1 , where x = [1..10] , i.e. one of 1, 3, 7, 15, 31, 63, 127, 255, 511, and 1023.A noise repeats itself in time every 1024 units. Using a smaller lRepeat the noise will repeat at an earlier time. |