FastNoise2
CDLOD
FastNoise2 | CDLOD | |
---|---|---|
5 | 5 | |
901 | 164 | |
- | - | |
5.4 | 10.0 | |
3 days ago | about 6 years ago | |
C++ | C++ | |
MIT License | MIT License |
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.
FastNoise2
-
Is PerlinNoise overloaded to make procedural maps?
Note the notice at the top of the readme, the author is replacing that library with FastNoise2 which is also SIMD enabled, although the library as a whole is still a work in progress, it claims to have superior performance.
-
Starting of a voxel terrain engine
I am using a very fast [noise library](https://github.com/Auburn/FastNoise2). After generating a 64x64 area of noise I turn that into a 64x64x64 array of voxel byte data. I then use my own version of this [greedy meshing algorithm](https://github.com/cgerikj/binary-greedy-meshing).
-
How do space games handle the scale without loading screens?
There's a nice GDC talk about noise functions here, and if you're interested in trying things out there's an Open Source noise library written by a No Man's Sky developer here.
-
UltraNoise - An OpenSource Node based processing tool for Unity (link in comments)
Very cool! Have you considered using FastNoise2 as a noise source? It's SIMD optimized C++ https://github.com/Auburn/FastNoise2 But they've made C# bindings so there's less native legwork: https://github.com/Auburn/FastNoise2Bindings
-
Cricket, a coherent noise generation and manipulation library
Let Simplex 3D use its same gradient generator, but use 1/2 instead of 1/6 for the noise's unskew constant. This rotates the axis angles of the gradient set out of the main noise evaluation planes. I haven't implemented+run this myself, but it is implemented here in FastNoise2 (SIMD library), and I simulated the difference using OpenSimplex2 in this image (bottom with change). The result isn't perfect, but it's much nicer I think. After making this change, either set scale to 32.69428253173828125 to make a proper -1 to 1 range, or bake it into the gradient table directly.
CDLOD
-
Procedurally generated 8km Octree Terrain using Compute Shaders and WGPU (Rust)
I guess if today you want to implement a pretty and optimized "simple" terrain renderer, CDLOD is the way to go. There is even a reference implementation written in C++ with both "basic" and "chunks streaming". Note that this only applies to the mesh generation/manipulation, if you want it to look pretty you also need to implement things such as triplanar mapping for textures, and also if you want it to be usable you also probably want to implement editor tools. And I'm gonna be honest, re-coding Unity's tooling (but better!) for my terrain renderer was probably 70% of the work. Also I never got to adding support for trees or vegetation, which is a whole other subject if you want a good mix of pretty/performance.
-
Massive Infinite Terrain that Generates Instantly :D Tutorial below
You are basically describing the CDLOD technique for terrain rendering.
-
How do space games handle the scale without loading screens?
I implemented a terrain renderer using CDLOD, for which you can find two reference implementations as well as the whitepaper here, one of which is streamed.
-
Questions regarding Thatcher Ulrich's "Continuous LOD Terrain Meshing Using Adaptive Quadtrees"
There are various papers and projects if you search for "CDLOD". For example, this one: https://github.com/fstrugar/CDLOD
What are some alternatives?
FastNoise - Fast Portable Noise Library - C# C++ C Java HLSL GLSL JavaScript Rust Go
3DWorld - 3D Procedural Game Engine Using OpenGL
OpenSimplex2 - Successors to OpenSimplex Noise, plus updated OpenSimplex.
world - A set of tools for wide world generation and manipulation
Ue4MarchingCubes - 📦3D Perlin Noise using Marching cubes algorithm for Unreal Engine 4📦
TerraGen3D - 3D Procedural Terrain Generation and Texturing Tool in OpenGL/C++ [Moved to: https://github.com/Jaysmito101/TerraForge3D]
UltraNoiseExamples
FastNoise2Bindings - Bindings for FastNoise2 noise generation library
manta-ray - An open source physically based renderer.
NoiseNormalizer - Uses gradient ascent to attempt to determine the maximum value that a gradient-based coherent noise would generate.
binary-greedy-meshing - Demo: https://www.youtube.com/watch?v=LxfDmF0HxSg
TreeHundred - This is a simple C++ implementation of plant-like structures defined with bracketed OLsystems.