OpenSimplex2
Noise-Extras
Our great sponsors
OpenSimplex2 | Noise-Extras | |
---|---|---|
24 | 22 | |
529 | 23 | |
- | - | |
4.6 | 4.4 | |
3 months ago | 3 months ago | |
Java | Java | |
Creative Commons Zero v1.0 Universal | Creative Commons Zero v1.0 Universal |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
OpenSimplex2
- Sweeping Quad Lines - Gallery One
-
I finally nailed the smooth rotation of a noise field. No unsteady or flickering edges anymore. No quality loss no matter what the actual rotation angle is.
Wow you have been playing with noise for a while :) . It amazes me all the different noises that exist now.. Perlin, Simplex, OpenSimplex, OpenSimplex2S, OpenSimplex2F, Worley... If you are curious about OpenSimplex https://github.com/KdotJPG/OpenSimplex2
-
Some of the results of my work-in-progress tool to generate random tile-based worlds. (More info in comments)
Probably true, although a neat repo for open simplex is https://github.com/KdotJPG/OpenSimplex2
-
Value Noise Resources
This may not answer what you're actually looking for - but a few years ago I found a library for coherent noise in Java, which at least meets my needs. I use bits and pieces of the Open Simplex Noise implementation from that library. It's unlicense/CC0, so easily copy-paste-able straight in to one's own project. https://github.com/KdotJPG/OpenSimplex2/
-
Question about OpenSimplex2S
So I was looking for a noise function, and I found this repo from the author of the OpenSimplex algorithm. And in the GLSL implementation, which is the one I'm gonna use, since I want to generate terrain with compute shaders, the function%20%7B) looks like this:
-
How would you loop a 3D noise?
If you want to feel safer from that, you might opt to use one of these instead. Use the ImproveXY endpoint to get a Z that repeats after 500.5626833874055. Go up one directory and into the glsl directory if you need GLSL versions instead .
- C# Simplex noise library offering 1D, 2D, and 3D forms
-
Map + River generation using the "Lanczos Value-Noise" I wrote [Details in the comments]
Fair. I definitely agree Simplex has some characteristics that don't work great in some places. Especially when you threshold near zero of a single octave. Have you tried OpenSimplex2S? It's made to be less "bubbly" than standard simplex. In own repo, In FastNoiseLite, [Shader preview (3D noise)[https://www.shadertoy.com/view/ttdGR8]. Both the 2D function and 2D slices of the 3D function might be worth looking into if you haven't yet.
-
Need some help making the GLSL implementation of OpenSimplex2 tileable
Here's a link to the original implementation: github.com/KdotJPG/OpenSimplex2/blob/master/glsl/OpenSimplex2.glsl
- Oh cool, i just found this sub reddit and had a few questions on my current project.
Noise-Extras
-
how to stack noise layers for more interesting landscape
If it helps, I wrote an implementation inspired by this here: https://github.com/KdotJPG/Noise-Extras/blob/master/OpenSimplex2S_Exp.java
-
While working on my game I made a highly optimized Noise Library for C#, I just made it open-source!
Periodicity is definitely a limitation of Simplex, at least without complicated skew adjustments. I wouldn't say this limitation should hold the noise back for non-periodic applications, but it certainly can't be ignored when it does come to them.
-
How can I Make a Procedural 2d Map that Loops at Borders?
Yep! You also need to slightly adjust the grid skew so that the corners of your target square/rectangle coincide with vertices on the noise grid. Example implementation: https://github.com/KdotJPG/Noise-Extras/blob/master/OpenSimplex2S_ImprovedXZPlanes_TileableXZ.java
-
Does anyone have a good library for Exponential Distributed Noise and/or Amortized Noise with derivatives in c#?
I have this https://github.com/KdotJPG/Noise-Extras/blob/master/OpenSimplex2S_Exp.java but it's up to you whether or not you'd consider it a good library.
-
New Blog Post! "The Perlin Problem: Moving Past Square Noise"
Tileability is an issue, you're right. Perhaps I should have made a note on that in the article. I've made some progress in the code at this link to bring proper tileability to simplex-type. It's quite usable as-is, but it does still need work to become the best it can. In particular I need to take a closer look at performance (I accounted hard for the grid re-skewing in a way that won't make much difference given a sufficiently-large repeat period), configurability (tileable in either 2 or 3 axes), quality (mostly I could improve the primes in the hash function I used), and variety (bring this to more algos/dimensionalities).
-
Wind direction from noise map?
Either way /u/pds314 I would look for a good simplex-type noise impl that supports derivatives. Here's one. Alternatively, here's a domain-rotated Perlin which addresses its square artifacts by rotating them out of the evaluation plane of focus through the extra dimension. In this, use X and Y of the 3D "ImproveXY" function" or X and Z of the 3D "ImproveXZ" function for derivatives. In the OpenSimplex2S, you can just use the 2D function with derivatives.
- Noisy map, but smooth beaches! My new algorithm!
-
Added 3D Noise and Blend Modes to my GLSL Noise library (gl-Noise)! Used it to make a Planet Generator. Demo and GitHub in comments!
Code for the domain rotation in Java is here. There are various wrappers. You would want one of the methods noise4_ImproveXYZ_ImproveXY, noise4_ImproveXYZ_ImproveXZ, or noise4_ImproveXYZ. You could copy the code from these wrappers directly, or convert it to matrix form to write it compactly in GLSL. For example, noise4_ImproveXYZ_ImproveXZ would be this. Note that I'm using left multiplication so the column-major constructor format can be rearranged to show up the way you would typically write the matrix when doing linear algebra if doing right multiplication.
-
How do I avoid the "2^64 variations of one continent" problem?
Depends on: this. Would also work well with this, or also this if you adapt to its features.
- Perlin noise Voxel planets + Caves
What are some alternatives?
FastNoise - Fast Portable Noise Library - C# C++ C Java HLSL GLSL JavaScript Rust Go
FastNoise2 - Modular node graph based noise generation library using SIMD, C++17 and templates
TinyEngine - Tiny OpenGL Wrapper / 3D Engine in C++
glNoise - A collection of GLSL noise functions for use with WebGL with an easy to use API.
gaseous-giganticus - This program procedurally generates gas giant cubemap textures for the game Space Nerds In Space. https://www.patreon.com/smcameron
simplex - Simplex noise implementation offering 1D, 2D, and 3D forms.
webgl-noise - Procedural Noise Shader Routines compatible with WebGL
world - A set of tools for wide world generation and manipulation
LearnOpenGL - Code repository of all OpenGL chapters from the book and its accompanying website https://learnopengl.com
Scattered-Biome-Blender - Smooth transitions over biome borders using scattered point evaluations.