Noise function for procedurally generated blocks
Vorxel » Devlog
I'm using a stateless pgc hash function in 3D coordinate space to generate noise for my procedurally generated blocks. In case anyone is curious about the code, here are pcg hash functions for 1D, 2D and 3D in integer coordinates written in C++
inline constexpr uint32_t pcgHash(uint32_t x) { uint32_t state = (x * 0x2C9277B5u) + 0xAC564B05u, word = ((state >> ((state >> 28) + 4)) ^ state) * 0x108EF2D9u; return word ^ (word >> 22); } inline constexpr uint32_t pcgHash(uint32_t x, uint32_t y) { uint32_t h = pcgHash(x) + pcgHash(y); return h ^ (h >> ((x % 15) + 1)); } inline constexpr uint32_t pcgHash(uint32_t x, uint32_t y, uint32_t z) { uint32_t h = pcgHash(x) + pcgHash(y) + pcgHash(z); return h ^ (h >> ((x % 15) + 1)); }
and what the 2D noise it generates looks like via shadertoy
https://www.shadertoy.com/view/Mcsyz4
Update: The following code yields good looking noise and is slightly faster
inline constexpr uint32_t pcgHash(uint32_t x, uint32_t y) { return pcgHash(pcgHash(y) + x); }
Vorxel
Status | In development |
Author | Teknologicus |
Genre | Adventure |
Tags | Exploration, Open World, Voxel |
More posts
- Fixed bug with dynamic direct sunlight and level of detailFeb 04, 2025
- Voxel Cone Tracing ExperimentFeb 04, 2025
- Dynamic direct sunlight working with level of detailFeb 01, 2025
- Improved dynamic direct sunlightJan 27, 2025
- Dynamic direct sunlightJan 26, 2025
- Previous folly and finally successJan 19, 2025
- Rasterized triangles are evil!Jan 10, 2025
- Procedurally Generated Blocks (Video)Jan 07, 2025
- Fog is working againJan 04, 2025
- Improved fragment/compute shading ratesJan 02, 2025
Leave a comment
Log in with itch.io to leave a comment.