Simplex noise
Perlin noise
noise artifacts
computational graphics
texture generation

Why does simplex noise seem to have more artifacts than classic Perlin noise?

Master System Design with Codemia

Enhance your system design skills with over 120 practice problems, detailed solutions, and hands-on exercises.

Simplex noise and classic Perlin noise are two popular methods used for generating gradient noise, which is widely applied in computer graphics, game development, and procedural generation of textures and terrains. While simplex noise was developed to overcome certain limitations of classic Perlin noise, it can exhibit more noticeable artifacts under specific circumstances. This article delves into the technical aspects of both noise types, explores the reasons behind the perceived artifacts in simplex noise, and compares it with classic Perlin noise through examples and a summary table.

Classic Perlin Noise

Classic Perlin noise, developed by Ken Perlin in 1983, is a gradient noise function based on a lattice grid. Each lattice point assigns a random gradient vector, and the noise function is evaluated by interpolating between these gradients. The interpolation is commonly performed using a fade curve, which smooths transitions between gradient vectors. This approach generates coherent noise that exhibits a naturally smooth appearance resembling pseudo-random patterns.

Characteristics

  • Grid-Based: Defined on a regular lattice grid.
  • Continuous: Smooth interpolation between gradient vectors.
  • Dimensional Flexibility: Extends easily to higher dimensions, but computationally expensive beyond 4D.
  • Periodic Artifacts: Generally, fewer noticeable artifacts when evaluated near integer coordinates due to interpolation.

Simplex Noise

Simplex noise, also by Ken Perlin, was introduced in 2001 as an improvement over classic Perlin noise. It addresses several limitations like grid orientation artifacts and is computationally efficient in higher dimensions.

Characteristics

  • Simplicial Grid: Built on a simplicial lattice, allowing for more equilateral and uniform distribution of points.
  • Less Computational Cost: More efficient in high-dimensional spaces.
  • Gradient Skewing: Provides a more isotropic appearance without directional artifacts.
  • Higher-Order Interpolation: Utilizes higher-dimensional interpolation which theoretically should produce smoother transitions.

Artifacts in Simplex Noise

While simplex noise eliminates certain types of artifacts found in Perlin noise, some users report that it introduces different artifacts, especially in specific use cases. Here are several reasons why simplex noise might seem to have more artifacts than classic Perlin noise:

1. Dimensionality and Sampling Artifacts

Simplex noise can show artifacts when dimensions are improperly handled or when the sampling frequency does not align with the simplicial grid's requirements. Since the pattern orientation is different from a regular grid, these artifacts may appear as regular patterns or aliasing in rendered outputs.

2. Lower Amplitude in Octaves

Simplex noise tends to have a lower amplitude in its higher octaves compared to classic Perlin noise. When layered (as often done in procedural texture synthesis), these quieter layers can yield more abrupt transitions or noticeable low-frequency patterns.

3. Procedural Interpretation

The human perception of noise can vary, making certain simplex noise characteristics more noticeable as artifacts. Where classic Perlin noise might mask these with its inherent grid-based structure, simplex noise's smoother and isotropic nature might inadvertently highlight inconsistencies in specific applications, such as visual renderings requiring uniformity across all frequencies.

Technical Analysis and Examples

Let's analyze a basic case in 2D to explore how these artifacts may manifest:

Assume a procedural texture is designed using octave-modulated simplex noise. This procedure frequently involves scaling and summation of different noise frequencies (octaves). Each octave is expected to contribute to the overall noise in a coherent and seamless manner:

  • Classic Perlin Noise Example: When lower frequency noise is mapped, the grid alignment may inadvertently smooth undesired periodic features due to interpolation.
  • Simplex Noise Example: Similar mapping may highlight simplex boundaries due to misalignment with Cartesian sampling, manifesting as diagonal bands or waves.

Table: Key Differences and Artifact Manifestation

AspectClassic Perlin NoiseSimplex Noise
Grid StructureLattice-based (grid)Simplicial (triangular/tetrahedral)
Efficiency in 3D+Higher computational cost in higher dimsLower computational cost
InterpolationFades at integer coordinatesUses blended sharp boundaries
Artifact TendencyFewer artifacts on grid misalignmentsDiagonal bands or waves in visuals
Amplitude in OctavesMaintains amplitude across octavesLower amplitude in higher octaves

Conclusion

While simplex noise provides several advantages, including reduced grid-based artifacts and improved isotropy, these come at the potential cost of new types of artifacts, especially when not sampled or implemented with specific considerations in mind. The correct and effective use of simplex noise requires an understanding of its underlying mechanics and thoughtful application concerning the specific use case. Users developing procedural textures or graphics should be aware of these nuances to mitigate any adverse effects.

Overall, while the perception of artifacts in simplex noise can vary, it remains a powerful tool for generating natural-looking textures with lower computational complexity in higher-dimensional scenarios.


Course illustration
Course illustration

All Rights Reserved.