Commit Graph

68 Commits (44f84a942263c86280ec8ed75bd435c95b67d582)

Author SHA1 Message Date
Marc Gilleron a9952179a7 Transition meshes WIP and bug fixes
- Allow meshers to specify compression flags
- Use uncompressed COLOR to fit extra vertex data for transition meshes
- Simplify a few interpolations
- Fix a few buffer overruns which were not detected by the debugger
- Use array wrappers to better detect overrun mistakes
2019-12-26 20:29:55 +00:00
Cory Petkovsek 9a06cdd3ef Fix mono build warnings 2019-10-04 02:17:44 +08:00
Marc Gilleron 2b15ca6457 Remove `for_all_blocks` from header, it causes compilation error due to `map` not being fully defined. Move logic to .cpp file to keep it forward-declared. 2019-10-03 18:55:13 +01:00
Marc Gilleron 13e909fb0d Remove old comment 2019-09-08 19:49:33 +01:00
Marc Gilleron 1680516ea0 Optimize LOD propagation a bit 2019-09-07 22:59:09 +01:00
Marc Gilleron b687909806 Save modified blocks, remove some debug code 2019-09-07 21:19:12 +01:00
Marc Gilleron 17c6b1f557 Fixed and tweaked a bunch of things, first working editing with LOD 2019-09-06 23:24:56 +01:00
Marc Gilleron b284541219 Cleanup includes 2019-09-05 19:43:25 +01:00
Marc Gilleron bee83ecbe9 Merge branch 'master' into lod_editing 2019-09-05 02:24:41 +01:00
Marc Gilleron 4ab688c9be Barebones edition, untested WIP 2019-09-05 02:24:16 +01:00
Marc Gilleron fec6e624f6 Tweaked octree region loading to better center it on the viewer 2019-09-04 20:59:08 +01:00
Marc Gilleron 1ad71c5d9c Fix VoxelLodTerrain view distance property, it was using inconsistent type in getter and setter 2019-09-03 22:56:57 +01:00
Marc Gilleron f8a3cd0503 Implement `get_view_distance()` properly 2019-09-02 21:32:05 +01:00
Marc Gilleron a24e6d1b5a Use Rect3i::difference, remove check_cell_enters_and_exits for clarity 2019-09-02 20:08:33 +01:00
Marc Gilleron ff51d83e55 Use better algorithm for blocks falling out of range 2019-09-02 00:45:20 +01:00
Marc Gilleron aad7ecf9a6 Make octree region work under a bit more kinds of runtime changes 2019-09-02 00:44:28 +01:00
Marc Gilleron ebe91427c3 #ifdef out debug boxes 2019-09-01 22:52:38 +01:00
Marc Gilleron 8060978126 Some cleanup 2019-09-01 21:49:58 +01:00
Marc Gilleron 98299f2b3c Optimize octree further by taking out children pointers. Nodes are only 5 bytes now. 2019-09-01 21:07:38 +01:00
Marc Gilleron 0ee054dc3c Took out position from octree nodes 2019-09-01 17:11:28 +01:00
Marc Gilleron bd10e89dea Implement proper box difference 2019-09-01 16:10:01 +01:00
Marc Gilleron 6369985b74 Fix problems with MinGW 2019-09-01 01:47:45 +01:00
Marc Gilleron d0275b29ee Apply split_scale to newly created octrees 2019-08-31 21:47:00 +01:00
Marc Gilleron 0e6d3873c7 Properly implement hiding of the terrain node, for LOD it was showing all blocks of all LODs at once 2019-08-31 21:46:40 +01:00
Marc Gilleron 8574655c18 Re-enabled request dropping through exclusive region, except for last lod 2019-08-30 01:08:06 +01:00
Marc Gilleron 6a540a8720 Remove old code 2019-08-30 00:04:20 +01:00
Marc Gilleron eb01f99c2c First WIP at paging LOD 2019-08-29 22:55:02 +01:00
Marc Gilleron d4ed6372b7 Optimize collision shapes, doubles build speed 2019-08-25 22:59:55 +01:00
Marc Gilleron 8fc1e40230 Line up statistics variable names 2019-08-25 18:47:43 +01:00
Marc Gilleron a0c7201fcd Rename `get_stats()` => `get_statistics()` 2019-08-25 17:40:19 +01:00
Marc Gilleron c13c0fbf20 Fix `remaining_main_thread_blocks` stat, it wasn't reported 2019-08-25 17:23:25 +01:00
Marc Gilleron 4ec82928b4 Remove redundant VoxelTerrain::BlockDirtyState 2019-08-25 15:14:10 +01:00
Marc Gilleron 4ff5f91e6f Add optional physics collision through node-less static bodies 2019-08-25 13:04:49 +01:00
Marc Gilleron 332041751d Move mesh instance into a thin wrapper 2019-08-25 01:11:38 +01:00
Marc Gilleron 9ca40b854b Don't stop threads when the terrain exits the tree, it prevents saving-on-destroy from completing 2019-08-24 23:26:01 +01:00
Marc Gilleron 68dfe9fc70 Fix crash where null maps were accessed 2019-08-24 22:38:27 +01:00
Marc Gilleron f14b374931 Made block size and a few other params modifiable (not so easy, though) 2019-08-24 01:44:27 +01:00
Marc Gilleron 07d4deeaab Formatting 2019-08-15 01:40:27 +01:00
Marc Gilleron c272a37f1a Merge branch 'master' into persistence
# Conflicts:
#	terrain/block_thread_manager.h
#	terrain/voxel_terrain.cpp
2019-06-25 20:51:35 +01:00
Cory Petkovsek 3b7dccefb2 Revert some castings 2019-06-22 22:14:27 +09:00
Cory Petkovsek f6a9c5761a Fix gcc sign comparison warnings 2019-06-18 14:24:56 +09:00
Cory Petkovsek 67bdcbd048 Gcc compiling fixes 2019-06-18 11:27:55 +09:00
Marc Gilleron f831d03cf5 Merge branch 'master' into persistence
# Conflicts:
#	terrain/voxel_data_loader.cpp
2019-05-28 01:17:28 +01:00
Marc Gilleron 2c81db52f8 Rename remaining occurences of "provider" => stream 2019-05-28 01:10:50 +01:00
Marc Gilleron 82502d3397 Simple file-per-block saving WIP. Compiles but didn't test. 2019-05-28 00:40:09 +01:00
Marc Gilleron 2e1b13ffea Rename VoxelProvider* => VoxelStream* 2019-05-25 16:07:38 +01:00
Marc Gilleron 75cffa7d59 Rename VoxelBlock.pos => position 2019-05-25 15:50:01 +01:00
Marc Gilleron 15ae1b99ba Rename voxel_provider_thread.h => voxel_data_loader.h to match class name 2019-05-25 15:07:16 +01:00
Marc Gilleron 5a7d0b6f1b Added optional code to debug-draw unexpected block drops 2019-05-20 20:49:46 +01:00
Marc Gilleron d8cab2d32b Use generic block manager for loading and fix bugs:
- VoxelProviderThread is now VoxelDataLoader and uses generic block manager
- Fixed threads locking up, input mutex was not always unlocked due to for loop exiting early
- Fixed blocks failing to load, region rejection was using invalid pointer
- Fixed block shifting in region rejection, was replacing wrong index in `block_indexes`
- Fixed block region rejection missing blocks, was not stepping back the loop after shifting blocks
- Added output message to notify of block rejection
2019-05-20 20:48:58 +01:00