Closed NuclearPhoenixx closed 5 months ago
SQLite streams are limited to a range of 32,767 blocks away from the origin, which corresponds to 524,272 voxels (524 Km if you use unit-sized voxels). It's currently an intended limitation. Keys of the database are indexed with one 64-bit integer per row, which isn't enough to store larger coordinates.
The experimental branch sqlite_large_coordinates
implements new coordinate formats that allow larger worlds. The new default format should allow x/y/z beyond 530_000. You have to create a new save though.
Works like a charm now. I was able to get to 100 million voxels and more, amazing!
Also fixes the performance issues with res://
and user://
for the SQLite stream❤️
Closing this issue since you've fixed everything. It only needs to be pulled into master anymore afaik.
Using VoxelStreamSQLite on a VoxelTerrain and moving the VoxelViewer to x/y/z greater than about 530_000 will result in the following error message and no terrain loading:
These two lines are just repeated over and over (for each block it tries to load I presume). This seems to be an issue specifically with the SQLite DB since the same issue does not affect the Region Files Stream.
A small test project: project.zip
I'm using one of the latest Windows builds of Voxel Tools that were generated by GitHub actions on here.