Commit Graph

377 Commits (00d6190d3c7bbe39f918e8694ddc60d38c47149b)

Author SHA1 Message Date
Marc Gilleron 30db0c5193 Split VoxelBuffer in two, script-facing wrapper and internal.
The internal is the main use within the voxel engine,
and does not inherit Reference.
2021-09-26 04:14:50 +01:00
Marc Gilleron 6faf5b29f3 Allow to configure main thread time limit 2021-09-25 02:13:03 +01:00
Marc Gilleron 3197eaba35 Move main thread tasks into one runner in VoxelServer
So the timing budget is better respected even if there are multiple
voxel nodes in the scene
2021-09-25 00:02:41 +01:00
Marc Gilleron 44f00176d3 Use std::unordered_set instead of Godot Set in VoxelLodTerrain 2021-09-23 23:49:18 +01:00
Marc Gilleron 0838cab251 Don't schedule loadings when streaming is disabled, don't crash when it still happens, log an error instead 2021-09-19 23:12:42 +01:00
Marc Gilleron c18262d3f8 Added option to turn off random rotation 2021-09-19 21:41:16 +01:00
Marc Gilleron fd8d107280 Fix `is_area_editable` converting twice from voxels to blocks 2021-09-19 03:29:09 +01:00
Marc Gilleron 0c31f5a525 Show octree node gizmos with a color gradient based on LOD 2021-09-18 19:54:54 +01:00
Marc Gilleron 8e53fbaa47 Merge branch 'master' into octree_compression 2021-09-18 18:18:09 +01:00
Marc Gilleron 6a6682dfd5 Fixed crash occurring after a few edits when LOD count is set to 1 2021-09-18 01:36:44 +01:00
Marc Gilleron 2971334e85 Changed VoxelToolLodTerrain to use write_box
- Should be faster than get/set_voxel
- No longer expose internal data map
2021-09-17 20:01:15 +01:00
Marc Gilleron ff4e7f9560 Added debug drawing of mesh octree using multimesh (not exposed for now) 2021-09-16 21:54:04 +01:00
Marc Gilleron d901eb66b6 Added functions to LodOctree and use squared distances 2021-09-16 21:03:02 +01:00
Marc Gilleron f68eeac22c Switch to octree child position formula not involving access to an array 2021-09-16 20:56:56 +01:00
Marc Gilleron 0604a3492d Comments and formatting 2021-09-16 20:46:55 +01:00
Marc Gilleron 32beb6f8a8 Stop printing in map destructors 2021-09-13 00:20:30 +01:00
Marc Gilleron 2fda5747c6 Comments 2021-09-13 00:19:51 +01:00
Marc Gilleron 3ee79ec068 Should have been min 2021-09-12 00:55:15 +01:00
Marc Gilleron 454d8b2c7f Fix no instances generated when density is 1 in vertex emission mode 2021-09-11 18:12:55 +01:00
Marc Gilleron 64646d06ed Split VoxelTerrain process into functions 2021-09-09 18:54:15 +01:00
Marc Gilleron 58d365d2bf Profiling scopes 2021-09-09 18:53:22 +01:00
Marc Gilleron 7cb1e4008e Use accessor 2021-08-15 17:27:55 +01:00
Marc Gilleron bab5436de7 Fix materials shown under wrong category 2021-08-01 15:40:41 +01:00
Marc Gilleron d6e4769f08 Don't run multimesh LOD updates when blocks have item types not supporting that feature 2021-07-28 19:26:14 +01:00
Marc Gilleron 20c6b790bf Formatting and comments 2021-07-28 19:24:22 +01:00
Marc Gilleron 6d09e181bf Added menu to update an instancer multimesh item from a scene 2021-07-26 01:39:44 +01:00
Marc Gilleron 27d54a0d5c Add initial support for instancing scenes with VoxelInstancer 2021-07-25 20:37:30 +01:00
Marc Gilleron e7e8e72507 Quick fix to avoid error when trying to edit across loaded border.
There should be a better solution in the future, it's not optimal
2021-07-25 19:48:51 +01:00
Marc Gilleron 8ae03490fd Fix VoxelInstancer error when changing visibility 2021-07-25 19:01:32 +01:00
Marc Gilleron 002452cb54 Fix warning (2) 2021-07-19 20:03:08 +01:00
Marc Gilleron 52aa4963ea Fixed some crashes occurring when giving invalid arguments to functions 2021-07-19 19:04:52 +01:00
Marc Gilleron 619bd977c1 Added extra mode to instance generator for more precise emission from faces 2021-07-11 16:23:54 +01:00
Marc Gilleron 8c17a1cf20 Added property to configure collision margin 2021-07-10 22:14:17 +01:00
Marc Gilleron 966c2c9fef Change default channel attribution when using `get_voxel_tool()`
- It now depends first on the mesher
- If no mesher is assigned, it depends on the generator
- If no generator is assigned, it depends on the stream
- If no stream is assigned, it defaults to 0
- If multiple channels are found, pick the first one instead of last
- The reason is, some streams can support all channels so they dont
  represent well what the user intends to use.
2021-07-10 20:27:55 +01:00
Marc Gilleron 144affe42d Fix errors/crashes when trying to edit voxels on loading borders
- Replaced fatal asserts with soft asserts
- No longer require existence of a mesh when lodding on loaded border.
  As far as voxel data is concerned, it should work just fine.
- Fixed wrong list used when scheduling mesh updates on higher LOD indexes
2021-07-10 20:17:28 +01:00
Marc Gilleron 233e2c7267 Exposed data block size 2021-06-16 23:30:09 +01:00
Marc Gilleron 0c13bd4b2d Fix mismatch in signal arguments 2021-06-16 23:29:59 +01:00
Marc Gilleron 614fc8b9dd Don't warn if the generator is a non-tool script
Scripts without `tool` don't run in the editor. This should be
considered user choice rather than a mistake. The fact other checks
cannot run is an expected consequence.
2021-06-14 19:06:30 +01:00
Marc Gilleron d436ed430f Fix world edge issue, mesh block area was not clipped 2021-06-13 19:00:47 +01:00
Marc Gilleron 9e76eec951 Another one 2021-06-13 18:13:11 +01:00
Marc Gilleron 1ee5bcb80d Renamed Rect3i -> Box3i 2021-05-31 17:12:04 +01:00
Marc Gilleron 411be94559 Renamed ArraySlice -> Span 2021-05-31 16:48:49 +01:00
Marc Gilleron 2e9d817246 Moved VoxelDataMap to storage/ folder 2021-05-31 16:27:08 +01:00
Marc Gilleron 74e89b882e Implemented texture painting on all VoxelTools using faster access to voxels 2021-05-29 23:28:11 +01:00
Marc Gilleron 0de2b1b9d0 Comments 2021-05-24 23:16:04 +01:00
Marc Gilleron 983b7bd83d Merge branch 'master' into smooth_texturing
# Conflicts:
#	util/godot/funcs.h
2021-05-22 19:43:39 +01:00
Marc Gilleron 0dc6702308 VoxelToolTerrain.raycast now accounts for scale and rotation, and supports VoxelMesherCubes with non-zero values 2021-05-16 04:29:08 +01:00
Marc Gilleron efe8bcf9c0 Show a configuration warning when a mesher does not support LOD 2021-05-15 23:41:19 +01:00
Marc Gilleron 5f7c0cc668 `VoxelBoxMover` should now support scaled/translated terrains and `VoxelMesherCubes` (limited to non-zero color voxels) 2021-05-15 19:45:40 +01:00
Marc Gilleron 9b3263d68b Fix copy 2021-05-15 16:31:36 +01:00