Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Perlin noise #43

Open
jasonwebb opened this issue Jan 7, 2024 · 0 comments
Open

Perlin noise #43

jasonwebb opened this issue Jan 7, 2024 · 0 comments

Comments

@jasonwebb
Copy link
Owner

jasonwebb commented Jan 7, 2024

Although there already is a section on Noise, I think Perlin noise is significant enough to be documented in more detail in a dedicated section.

  • https://en.wikipedia.org/wiki/Perlin_noise
  • Ken Perlin created it in 1983 after working on the original Tron. He received an Academy Award for Technical Achievement for it in 1997.
  • Used heavily for image textures and terrain generation
  • Algorithm overview:
    1. Grid definition = define an n dimensional grid with random gradient unit vectors at each grid intersection.
    2. Dot product = for each grid cell, calculate an offset vector and a dot product for each of it's 2^n corners.
      • Offset vector = displacement (distance?) from this corner to the candidate point
      • Dot product = the dot product of the corner's gradient vector and its gradient vector
    3. Interpolation = calculate a noise value for the candidate point by lerping it between the offset vector and dot product. This is what gives Perlin noise its characteristic organic look, since there is smooth continuity across grid cells. image
  • Simplex noise = created and patented by Ken Perlin in 2011 to be an improvement with fewer artifacts and less computational time. Any legal limitations for commercial use?
    • OpenSimplex was independently created in order to get around the legal issues of simplex noise
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant