EmaMaker
6ea3fbc8aa
world benchmark
2022-08-22 17:34:43 +02:00
EmaMaker
3cb0a0529c
use hilbert curve for better compression
...
space filling curves better preserve spatial locality compared to nested iteration
2022-08-22 17:34:43 +02:00
EmaMaker
dd4732c1c1
only generate and mesh one chunk per loop cycle
...
add setup for voxel size
modeling/meshing needs optimization
switch to using a bitfield instead of queues
2022-08-22 17:34:25 +02:00
EmaMaker
a96c09df4b
try new approach based on interval maps
...
they resolve the problems and the redundancies of interval trees, while giving a serius memory usage benefit (20% of the one used by interval trees in test scene)
test scene is a world made of a cube of sides RENDER_DISTANCE*2 with player at the center
2022-08-16 21:45:26 +02:00
EmaMaker
f8a31093cd
chunkrenderer: generate only one mesh per chunk
2022-08-11 23:30:59 +02:00
EmaMaker
61838a93b2
chunk: handle setting blocks via Chunk
...
Instead of directly calling IntervalTree. This allows clamping indices to avoid out of bounds when converting to and from an array
2022-08-11 18:50:18 +02:00
EmaMaker
5bff4bc367
chunk: handle intervaltree<->array conversion
2022-08-11 16:34:12 +02:00
EmaMaker
9c6cf30120
intervaltree: support for single-unit intervals
...
The structure is still not perfect and needs revising in some edge cases where unneeded child nodes are left instead of being added in the parent
2022-08-11 16:05:56 +02:00
EmaMaker
83beccc48c
chunkrenderer: greedy meshing like 0fps/roboleary
...
Also includes face culling to avoid rendering faces that are hidden by other blocks
2022-08-11 15:26:49 +02:00
EmaMaker
8fb2af285c
chunk: change generation tests
2022-08-11 15:01:28 +02:00
EmaMaker
5dc4978f48
initial commit
...
working interval trees and stupid meshing
2022-08-08 23:37:16 +02:00