ProtoTracer  1.0
Real-time 3D rendering and animation engine
Loading...
Searching...
No Matches
FlowNoise Class Reference

A dynamic simplex noise gradient material for a flowing effect. More...

#include <FlowNoise.h>

Inheritance diagram for FlowNoise:
Collaboration diagram for FlowNoise:

Public Member Functions

 FlowNoise ()
 Default constructor for FlowNoise.
 
void SetGradient (RGBColor color, uint8_t colorIndex)
 Sets a specific gradient color.
 
void Update (float ratio)
 Updates the material's state based on the provided time ratio.
 
MaterialGetMaterial ()
 Retrieves the associated material.
 
RGBColor GetRGB (const Vector3D &position, const Vector3D &normal, const Vector3D &uvw) override
 Computes the color at a given position using simplex noise.
 
- Public Member Functions inherited from Material
virtual ~Material ()=default
 Virtual destructor for proper cleanup in derived classes.
 

Private Attributes

FunctionGenerator fGenMatGradientP = FunctionGenerator(FunctionGenerator::Sine, 0.25f, 1.5f, 4.35f)
 Function for gradient property modulation.
 
FunctionGenerator fGenMatGradientX = FunctionGenerator(FunctionGenerator::Sine, 0.0f, 0.5f, 3.12f)
 Function for x-axis modulation.
 
FunctionGenerator fGenMatGradientY = FunctionGenerator(FunctionGenerator::Sine, 0.0f, 0.5f, 1.93f)
 Function for y-axis modulation.
 
FunctionGenerator fGenMatGradientZ = FunctionGenerator(FunctionGenerator::Sine, 0.0f, 0.5f, 4.56f)
 Function for z-axis modulation.
 
RGBColor noiseSpectrum [2] = {RGBColor(14, 33, 160), RGBColor(236, 83, 176)}
 Gradient colors for the noise material.
 
GradientMaterial< 2 > gNoiseMat = GradientMaterial<2>(noiseSpectrum, 2.0f, false)
 Gradient material for simplex noise.
 
SimplexNoise< 2 > sNoise = SimplexNoise<2>(1, &gNoiseMat)
 Simplex noise generator.
 
float simplexNoiseDepth = 0.0f
 Depth parameter for simplex noise.
 

Additional Inherited Members

- Public Types inherited from Material
enum  Method {
  Base , Add , Subtract , Multiply ,
  Divide , Darken , Lighten , Screen ,
  Overlay , SoftLight , Replace , EfficientMask ,
  Bypass
}
 Defines blending methods for combining colors. More...
 

Detailed Description

A dynamic simplex noise gradient material for a flowing effect.

The FlowNoise class generates a gradient using simplex noise and animates the z-position over time. The result is a flowing, lava lamp-like visual effect.

Definition at line 27 of file FlowNoise.h.

Constructor & Destructor Documentation

◆ FlowNoise()

FlowNoise ( )
inline

Default constructor for FlowNoise.

Definition at line 42 of file FlowNoise.h.

Member Function Documentation

◆ GetMaterial()

Material * GetMaterial ( )
virtual

Retrieves the associated material.

Returns
Pointer to the Material instance.

Implements AnimatedMaterial.

Definition at line 23 of file FlowNoise.cpp.

References sNoise.

◆ GetRGB()

RGBColor GetRGB ( const Vector3D position,
const Vector3D normal,
const Vector3D uvw 
)
overridevirtual

Computes the color at a given position using simplex noise.

Parameters
positionThe position in 3D space.
normalThe surface normal vector.
uvwThe texture coordinates.
Returns
The computed color as an RGBColor.

Implements Material.

Definition at line 27 of file FlowNoise.cpp.

References SimplexNoise< colors >::GetRGB(), and sNoise.

◆ SetGradient()

void SetGradient ( RGBColor  color,
uint8_t  colorIndex 
)

Sets a specific gradient color.

Parameters
colorThe RGB color to set.
colorIndexThe index in the gradient array to modify.

Definition at line 3 of file FlowNoise.cpp.

References gNoiseMat, noiseSpectrum, and GradientMaterial< colorCount >::UpdateGradient().

Referenced by ProtogenProject::UpdateFace().

◆ Update()

void Update ( float  ratio)
virtual

Member Data Documentation

◆ fGenMatGradientP

FunctionGenerator fGenMatGradientP = FunctionGenerator(FunctionGenerator::Sine, 0.25f, 1.5f, 4.35f)
private

Function for gradient property modulation.

Definition at line 29 of file FlowNoise.h.

Referenced by Update().

◆ fGenMatGradientX

FunctionGenerator fGenMatGradientX = FunctionGenerator(FunctionGenerator::Sine, 0.0f, 0.5f, 3.12f)
private

Function for x-axis modulation.

Definition at line 30 of file FlowNoise.h.

Referenced by Update().

◆ fGenMatGradientY

FunctionGenerator fGenMatGradientY = FunctionGenerator(FunctionGenerator::Sine, 0.0f, 0.5f, 1.93f)
private

Function for y-axis modulation.

Definition at line 31 of file FlowNoise.h.

Referenced by Update().

◆ fGenMatGradientZ

FunctionGenerator fGenMatGradientZ = FunctionGenerator(FunctionGenerator::Sine, 0.0f, 0.5f, 4.56f)
private

Function for z-axis modulation.

Definition at line 32 of file FlowNoise.h.

Referenced by Update().

◆ gNoiseMat

GradientMaterial<2> gNoiseMat = GradientMaterial<2>(noiseSpectrum, 2.0f, false)
private

Gradient material for simplex noise.

Definition at line 34 of file FlowNoise.h.

Referenced by SetGradient(), and Update().

◆ noiseSpectrum

RGBColor noiseSpectrum[2] = {RGBColor(14, 33, 160), RGBColor(236, 83, 176)}
private

Gradient colors for the noise material.

Definition at line 33 of file FlowNoise.h.

Referenced by SetGradient().

◆ simplexNoiseDepth

float simplexNoiseDepth = 0.0f
private

Depth parameter for simplex noise.

Definition at line 36 of file FlowNoise.h.

Referenced by Update().

◆ sNoise

SimplexNoise<2> sNoise = SimplexNoise<2>(1, &gNoiseMat)
private

Simplex noise generator.

Definition at line 35 of file FlowNoise.h.

Referenced by GetMaterial(), GetRGB(), and Update().


The documentation for this class was generated from the following files: