498 Commits

Author SHA1 Message Date
Marc Gilleron
3c1e4e2ab3 Reverted prefetch as the current code doesn't support editing LOD0 if upper lods aren't loaded.
This part needs to be designed before we can do things like that.
2022-03-24 00:25:51 +00:00
Marc Gilleron
3d747f6525 Schedule tasks in batches to reduce locking when many are sent 2022-03-22 20:51:56 +00:00
Marc Gilleron
8db923a75f Added experimental octree pre-fetching to speedup initial loading.
Unfortunately, the major bottleneck remains tasks on the main thread.
2022-03-22 19:37:00 +00:00
Marc Gilleron
f53856f2c3 Made LodOctree update recursively.
If subdivision conditions are fulfilled, it no longer needs to be
updated several times to reach its target shape.
2022-03-22 19:35:52 +00:00
Marc Gilleron
c8a15602bb Removed unused variable 2022-03-20 23:13:07 +00:00
Marc Gilleron
8d8d8b336d Moved VoxelLodTerrain and VoxelTerrain stuff to their own folders 2022-03-20 22:57:53 +00:00
Marc Gilleron
f764fe7f1a Switch to unordered_map 2022-03-20 22:32:33 +00:00
Marc Gilleron
e96f9ff562 Separate mesh block classes to remove unnecessary data in each
# Conflicts:
#	terrain/voxel_lod_terrain.cpp
2022-03-20 22:04:53 +00:00
Marc Gilleron
ee60e0556e Fix mesh blocks created by edition not visible 2022-03-20 22:03:19 +00:00
Marc Gilleron
cef16f670a Use refs in VoxelDataBlock iteration, no null should be found 2022-03-20 19:28:50 +00:00
Marc Gilleron
d6203a917a Use refs in VoxelMeshBlock iteration, no null should be found 2022-03-20 19:16:58 +00:00
Marc Gilleron
99e688e52c Detect and log an error when a script tries to set the same data block on different positions 2022-03-20 18:47:51 +00:00
Marc Gilleron
669e5230ed Update VoxelLodTerrain stats 2022-03-20 18:30:18 +00:00
Marc Gilleron
3c3822b019 Fix warning method name 2022-03-20 14:49:46 +00:00
Marc Gilleron
bf946db0ef Fix setting mesher and stream of VoxelLodTerrain 2022-03-19 22:43:57 +00:00
Marc Gilleron
7964887aef Fix iterator 2022-03-19 20:56:13 +00:00
Marc Gilleron
e99ffd64ea Fix required typename 2022-03-19 20:22:35 +00:00
Marc Gilleron
79b1ebdaa0 Fix invalid member 2022-03-19 20:11:39 +00:00
Marc Gilleron
48670d9a8e Separate mesh map data structures between updating and final 2022-03-19 19:43:33 +00:00
Marc Gilleron
775300c0f4 Remove old code 2022-03-19 19:39:39 +00:00
Marc Gilleron
a5d0f16430 Rename _on_data_block_enter => _on_data_block_entered 2022-03-19 19:39:24 +00:00
Marc Gilleron
c39bd4cb10 Expose getter and setter for VoxelViewer network peer ID 2022-03-19 19:38:36 +00:00
Marc Gilleron
7f106f4358 Fix broken transition updates 2022-03-16 00:05:04 +00:00
Marc Gilleron
5ddcbc2065 Added optional threaded execution of VoxelLodTerrain's process function 2022-03-15 00:29:39 +00:00
Marc Gilleron
4c68e7b298 Comments 2022-03-15 00:18:44 +00:00
Marc Gilleron
646618e78a Avoid creating ArrayMesh instance if empty 2022-03-15 00:17:42 +00:00
Marc Gilleron
7277a6a79f Renamed has_block => has_data_block 2022-03-14 23:48:23 +00:00
Marc Gilleron
c9edc64ae0 Fix compilation with newest Godot 2022-03-14 00:26:25 +00:00
Marc Gilleron
f631d8880c Added configuration warnings to resources 2022-03-06 01:10:47 +00:00
Marc Gilleron
199d18c008 Don't leave nulls in array 2022-02-27 02:54:35 +00:00
Marc Gilleron
07d5f1fb2a Fix float precision in VoxelBoxMover when compiling with 64-bit floats 2022-02-23 00:29:22 +00:00
Marc Gilleron
b72ffa260d Rename for_all_blocks => for_each_block 2022-02-20 21:35:35 +00:00
Marc Gilleron
0137ca3036 Namespaced VoxelBuffer in gd:: because it is actually a wrapper 2022-02-15 21:49:20 +00:00
Marc Gilleron
9eeac4d908 Fix comparison signedness warning (7) 2022-02-13 19:10:38 +00:00
Marc Gilleron
949abb0358 Fix comparison signedness warning (6) 2022-02-13 18:57:46 +00:00
Marc Gilleron
ded04b86ce Fix comparison signedness warning (5) 2022-02-13 18:50:33 +00:00
Marc Gilleron
268ed4b836 Fix comparison signedness warning (4) 2022-02-13 18:37:00 +00:00
Marc Gilleron
6e10277ead Fix comparison signedness warning (3) 2022-02-13 18:16:05 +00:00
Marc Gilleron
21daedd5dc Fix old struct type 2022-02-13 17:17:37 +00:00
Marc Gilleron
e958739759 Fix some narrowing conversions 2022-02-13 16:19:54 +00:00
Marc Gilleron
942fc9e980 Option to show octree nodes in editor 2022-02-13 01:19:21 +00:00
Marc Gilleron
b3faec2bef Removed voxel_block_request.h, use specialized structs 2022-02-12 23:37:02 +00:00
Marc Gilleron
d18bbe0376 Made LodOctree more generic
- `update` now solely relies on predicates to split/join
- Removed some member variables only used in the older update
- Distance checks now use "octree space", elininates some coordinate
  conversions which are now done up-front
2022-02-12 18:09:46 +00:00
Marc Gilleron
27a9c94e44 Fixed inexistent parameter 2022-02-07 22:06:56 +00:00
Marc Gilleron
91bbe56cea Added missing bindings 2022-02-07 22:06:24 +00:00
Marc Gilleron
f1c59d452a Removed more Vector<T> usages.
Remaining uses are necessary to communicate with Godot APIs.
2022-02-06 22:26:30 +00:00
Marc Gilleron
98eed9adba Remove some usages of Vector<T>. Also fixed some indexing issues in streams.
Reason: in a future port to GDExtension, that class won't be available.
This may also apply to Map and HashMap.

Note: the issues in streams were not hit so far because they are in
multi-block load/save functions. We've been loading and saving blocks
one by one at the moment.
2022-02-06 21:26:48 +00:00
Marc Gilleron
ba1930769f Use NonCopyable 2022-02-06 00:37:52 +00:00
Marc Gilleron
2b610f83e3 Fix GCC warning 2022-02-05 17:12:31 +00:00
Marc Gilleron
239a87a6e9 Moved noise and SDF range utilities to util/ 2022-02-05 16:14:57 +00:00