Update: Hilbert Curve surface grooved stone block
Hantverk'n » Devlog
Non-grooved at left and grooved at right. Edges are now left untouched by Hilbert Curve.
Hantverk'n
Status | In development |
Author | Teknologicus |
Genre | Adventure |
Tags | Exploration, Open World, Voxel |
More posts
- Fast and Accurate Color Depth Conversion17 hours ago
- Hilbert Curve surface grooved stone block2 days ago
- Overhaul of buffer use in voxel engine14 days ago
- Tetahexacontree 4x4x4 Occupancy Bitmasks Lookup Table27 days ago
- Voxel-level ambient occlusion optimization bits generation via compute shader67 days ago
- Image rotation via shearing72 days ago
- Rotation without rotating73 days ago
- Voxel volume mipmaps generation via compute shader74 days ago
- Dynamic global illumination methods86 days ago
Comments
Log in with itch.io to leave a comment.
These procedurally generated blocks support Hilbert Curve grooves which are scaled. In the above screen shot I'm using a scale of three, which means there are two voxels between each voxel groove. To calculate the the ideal "order" for the Hilbert Curve function based on the bounds of the block (or world selection bounds) I use the following math/code:
int order = log2i(clampMin(pow2Ceil(divCeil(max(bounds.width(), bounds.height(), bounds.depth()), scale)), 2))
FYI, all of these nested function calls are of functions in my C++ (template) math library.
And the inverse Hilbert Curve function I wrote is based on code from here:
https://people.math.sc.edu/burkardt/cpp_src/hilbert_curve/hilbert_curve.html
Thanks for the math! it looks super cool!
Thank you!