3DWorld
OpenSimplex2
Our great sponsors
3DWorld | OpenSimplex2 | |
---|---|---|
54 | 24 | |
1,062 | 526 | |
- | - | |
9.9 | 4.6 | |
7 days ago | 3 months ago | |
C++ | Java | |
GNU General Public License v3.0 only | 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.
3DWorld
-
Generating Master of Orion 2 like starmap
You mean you want to draw the individual stars themselves? It's likely just a texture, probably white so that it can be colored differently for each star. This is how I've done it. Try a Google image search for "flare texture". You can find some of the ones I used here (flare*.jpg): https://github.com/fegennari/3DWorld/tree/master/textures
-
Map Generation by Diamond Square with Shading and Raycasted Shadows.
I remember it being called "wave surfing", where you start at the current pixel and draw a line to the light source, checking the elevation vs. the altitude value of the line (Y or Z) at every step. I have the code in my mesh_shadow_gen class here: https://github.com/fegennari/3DWorld/blob/master/src/visibility.cpp
-
How to manage a buffer containing objects of varying size? For sparse chunk loading/unloading
This all sounds complex, but the system can be made to work well. I've written something similar myself, except with VBOs rather than SSBOs. My code can be found in these two files: https://github.com/fegennari/3DWorld/blob/master/src/buildings.h
-
Procedurally Generated Spider Model and Animation
C++ code for drawing spiders can be found in my GitHub project, in the spider_draw_t class: https://github.com/fegennari/3DWorld/blob/master/src/building_animal_draw.cpp
-
Procedurally generated 8km Octree Terrain using Compute Shaders and WGPU (Rust)
Filling the cracks properly generally gives better performance and fewer drawing artifacts compared to skirts. If you use indexed triangles and set them up in neat rows and columns, it's pretty easy to get right. No lookup tables or big switch cases, and it works with any number of LODs. See the crack_ibuf_t code starting around like 1800 here: https://github.com/fegennari/3DWorld/blob/master/src/tiled_mesh.cpp
-
Pixel planets with Pygame and OpenSimplex
I wrote a planet name generator that combines multi-character combinations. It may not do as good as a proper Markov Chain, but may produce names that sound better than your simple approach. If you're interested, the code can be found here: https://github.com/fegennari/3DWorld/blob/master/src/Universe_name.cpp
-
Reusing vertices while using marching cubes/tetrahedra
The code for this is in my voxel_manager::add_triangles_for_voxel() on line 497 here: https://github.com/fegennari/3DWorld/blob/master/src/voxels.cpp
- Memory Management for infinite procedural generation algorithm (please help me I beg)
-
Best approach to render a lot of text.
Thanks. Yes, I was looking at this. The problem is that the texture atlases are in a different format than the ones I currently use. The MSDF versions don't have all of the ASCII characters and some characters have a different number of pixels. So it's not a drop in replacement for my system, which is using texture atlases like this: https://github.com/fegennari/3DWorld/blob/master/textures/atlas/text_atlas.png
-
Rigid Body Physics with rotation question
I have some code for this here, but it's part of a large project and not easy to read/understand: https://github.com/fegennari/3DWorld/blob/master/src/free_obj.cpp
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.
What are some alternatives?
tinygltf - Header only C++11 tiny glTF 2.0 library
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
single_file_libs - List of single-file C/C++ libraries.
glNoise - A collection of GLSL noise functions for use with WebGL with an easy to use API.
MarkovNameGenerator - :black_nib: Markov process-based procedural name and word generator demo
simplex - Simplex noise implementation offering 1D, 2D, and 3D forms.
PolyWorld - A world generator that is based on Voronoi diagrams
webgl-noise - Procedural Noise Shader Routines compatible with WebGL
Cities - Procedural city & road placement
LearnOpenGL - Code repository of all OpenGL chapters from the book and its accompanying website https://learnopengl.com