Commit Graph

137 Commits (master)

Author SHA1 Message Date
Marc Gilleron 9bcc3580d6 Added first C++ test 2021-04-03 20:40:35 +01:00
Marc Gilleron 76ec90fe34 Moved constants and tables under a folder 2021-02-21 23:58:00 +00:00
Marc Gilleron b51897b8df Added voxel raycast to VoxelToolLodTerrain
- Made more precise with an option to use binary search (unoptimized)
- Distance along ray is now available in blocky terrains as well
2021-02-21 03:08:47 +00:00
Marc Gilleron 00fe474d46 Attempted again to integrate FastNoise2, but C++17 is really needed. 2021-02-21 03:02:32 +00:00
Marc Gilleron 4d033a2bb4 Added collision update delay to accelerate edit spam a little.
Not easy to use yet, might need the user to use voxel raycast instead of
physics because the hit points will not update often as they sculpt
2021-02-18 19:50:47 +00:00
Marc Gilleron 094bbc1fe1 Refactored API to allow editor inspection and preview 2021-02-14 21:55:31 +00:00
Marc Gilleron 6856f4b491 Moved instancing stuff under a folder 2021-02-07 21:40:55 +00:00
Marc Gilleron 4daf6718f8 Moved instance generation to its own class 2021-02-07 21:30:07 +00:00
Marc Gilleron 22471aafd0 Merge branch 'master' into instancing 2021-02-02 00:00:01 +00:00
Marc Gilleron b66b9a01a9 Removed VoxelStreamFile 2021-02-01 22:25:25 +00:00
Marc Gilleron 4353939eb4 Move region stuff to a folder 2021-01-31 16:51:42 +00:00
Marc Gilleron 01e5e18922 Implemented VoxelStreamSQLite 2021-01-28 22:02:49 +00:00
Marc Gilleron 0816d1fc09 Merge branch 'master' into instancing 2021-01-23 01:33:11 +00:00
Marc Gilleron a3bad1af64 Register `VoxelToolBuffer` because otherwise it gets initialized lazily, causing crashes in threads 2021-01-17 22:18:41 +00:00
Marc Gilleron 973cf729cd Added FastNoise2 for SIMD noise, but it won't be integrated yet.
It requires C++17, while Godot uses C++14. I was unable to override it,
and I'm not sure how compatible this will be with the runtime.
At least this would be doable in Godot 4.
2021-01-09 16:35:40 +00:00
Marc Gilleron c8dcbc55e3 Added FastNoiseLite 2021-01-02 00:59:12 +00:00
Marc Gilleron a34710f74c Added VoxelInstancer. First working API, script only. 2020-12-29 22:25:22 +00:00
Marc Gilleron 6d9fd2f8a0 Voxel terrain nodes now have a common abstract base class. Also explicitely made a few other classes abstract 2020-12-18 22:58:41 +00:00
Marc Gilleron 2018625b34 Moved simple generators under a simple/ folder 2020-12-18 21:19:02 +00:00
Marc Gilleron d52f882ae1 VoxelMap is no longer bound, it had no use in the API 2020-11-21 18:31:11 +00:00
Marc Gilleron 10d6e5bd8a Script-based generators and streams have their own class, should fix C# API 2020-10-31 22:11:25 +00:00
Marc Gilleron d158a92f57 Show bounds and octrees of VoxelLodTerrain with debug drawing 2020-10-24 00:08:14 +01:00
Marc Gilleron 6c80da0425 Moved VoxelBuffer and VoxelMemoryPool under storage/ directory 2020-09-14 19:33:02 +01:00
Marc Gilleron 7064f6e471 Color palette support in .vox loader and Cubes mesher 2020-09-13 02:17:11 +01:00
Marc Gilleron e1b9a25db7 Added utility class to load MagicaVoxel .vox files 2020-09-12 21:10:05 +01:00
Marc Gilleron 79d73e3f5a Added cubes mesher with greedy meshing support 2020-09-11 00:36:23 +01:00
Marc Gilleron 81e1872f8b Implemented viewers for VoxelTerrain 2020-09-06 19:01:12 +01:00
Marc Gilleron b8c97ebc55 Switch VoxelLodTerrain to VoxelServer 2020-08-31 21:51:30 +01:00
Marc Gilleron aa2b848102 Workaround crash on exit because the GDScript module is freed before voxel
See https://github.com/Zylann/godot_voxel/issues/189
2020-08-29 22:55:52 +01:00
Marc Gilleron d4d2b6fd9e No longer copy voxels before scheduling threaded tasks. VoxelBuffers now have a lock. 2020-08-29 22:09:54 +01:00
Marc Gilleron bcfc8ce04e Add some stats 2020-08-26 21:17:57 +01:00
Marc Gilleron 56c2a0856a Initial integration on VoxelTerrain with static camera, fixed a bunch of things 2020-08-25 23:00:38 +01:00
Marc Gilleron 23ce65d789 Show terrain in editor, with option to turn it off. A scripted stream will turn it off by default. 2020-08-14 20:33:09 +01:00
Marc Gilleron 7316e415dc Implemented block events for VoxelTerrain 2020-08-10 20:57:03 +01:00
Marc Gilleron 27f37ea56c Move voxel graph editor under its own folder 2020-07-30 18:50:45 +01:00
Marc Gilleron 0cdf5ea550 Added random tick API for blocky voxels 2020-07-28 20:32:33 +01:00
Marc Gilleron 4991b682d9 Exposed block serializer 2020-07-25 21:56:23 +01:00
Marc Gilleron e7c720ceeb Added barebones editor plugin to edit VoxelGeneratorGraph (does nothing for now) 2020-03-01 18:12:16 +00:00
Marc Gilleron f4a5b36fe9 Moved node DB to its own file 2020-02-23 19:08:14 +00:00
Marc Gilleron 07905ba580 Renamed `evaluate` in ProgramGraph to a more descriptive name 2020-02-22 22:45:22 +00:00
Marc Gilleron af09121c9f Fixed a bunch of things 2020-02-19 21:59:41 +00:00
Marc Gilleron 515751a3e6 WIP VoxelGeneratorGraph, compiled and untested 2020-02-19 19:26:14 +00:00
Marc Gilleron c33f46a437 Split VoxelGeneratorTest into VoxelGeneratorWaves and VoxelGeneratorFlat 2020-02-17 22:05:16 +00:00
Marc Gilleron 3ec2275ffb Moved Voxel and VoxelLibrary under the blocky mesher directory, since that's what they are actually used for 2020-01-27 00:04:13 +00:00
Marc Gilleron b937020d16 Rename files to match class names 2020-01-26 22:43:47 +00:00
Marc Gilleron 8879d9b2e7 Moved all generators under their own base class and folder 2020-01-26 22:34:26 +00:00
Marc Gilleron 0ac1b7e6dc Moved edition-related classes to a sub-folder 2020-01-26 20:29:44 +00:00
Marc Gilleron 20dc0008f4 Removed legacy marching cubes mesher 2020-01-26 20:18:21 +00:00
Marc Gilleron 7161942ee1 Fix memory leak in VoxelBuffer::fill() 2020-01-26 01:59:53 +00:00
Marc Gilleron df3a649e18 Added VoxelStreamNoise2D 2020-01-21 23:52:25 +00:00
Marc Gilleron b90e6b8207 Abstract most of VoxelStreamImage into VoxelStreamHeightmap 2020-01-21 22:41:55 +00:00
Marc Gilleron c493aec343 Use StringNames when applicable 2020-01-17 20:43:28 +00:00
Marc Gilleron 9dc09618be ZProfiler is now usable from anywhere including threads 2020-01-07 20:32:36 +00:00
Marc Gilleron 716b820599 Remove VoxelIsoSurfaceTool, superseded by VoxelTool 2020-01-02 21:07:23 +00:00
Marc Gilleron f2975e517a Add memory pool for VoxelBuffer channels 2020-01-02 20:31:05 +00:00
Marc Gilleron 68e35744b2 Rewrite profiler dump to not use Godot API, also allow to use a singleton 2020-01-02 20:24:20 +00:00
Marc Gilleron 6977133006 Forked Transvoxel mesher into an MC one with overlap seam mode.
It's mostly because the transvoxel mesher is going to change,
and the MC mesher will only act as a simplified legacy mesher.
It has experimental support for overlap seams, but it didn't work
well due to Z-buffer precision being too weak.
2019-12-23 21:41:30 +00:00
Marc Gilleron e783c75242 Register missing class to fix C# binding 2019-09-24 18:48:30 +01:00
Marc Gilleron b284541219 Cleanup includes 2019-09-05 19:43:25 +01:00
Marc Gilleron 4ab688c9be Barebones edition, untested WIP 2019-09-05 02:24:16 +01:00
Marc Gilleron eb01f99c2c First WIP at paging LOD 2019-08-29 22:55:02 +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 808f22fb35 Rename VoxelStreamRegion => VoxelStreamRegionFiles 2019-08-17 19:56:21 +01:00
Marc Gilleron ece3a355af Rename VoxelStreamVXB => VoxelStreamBlockFiles 2019-08-17 19:43:08 +01:00
Marc Gilleron 01b1ee0170 Added first working version of region save format, still WIP 2019-08-14 20:34:06 +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 4a90ca10a5 Rename "provider" files to "stream" 2019-05-25 16:16:03 +01:00
Marc Gilleron 2e1b13ffea Rename VoxelProvider* => VoxelStream* 2019-05-25 16:07:38 +01:00
Marc Gilleron fc4dee54d7 Added VoxelProviderNoise for testing 2019-05-05 18:27:33 +01:00
Marc Gilleron 9bab6c04d1 Added VoxelLodTerrain, focused on LOD. No seam management, no editing yet. 2019-05-04 00:02:10 +01:00
Marc Gilleron faefde721a Add base class to all meshers, gather common things in it 2019-04-28 20:48:59 +01:00
Marc Gilleron 12a97cca5a Reorganize all files and rename a few things 2019-04-28 17:58:29 +01:00
Marc Gilleron 1defe3bdbd Added VoxelIsoSurfaceTool 2019-04-22 20:15:46 +01:00
Marc Gilleron 35ff5fd546 Rename VoxelMesherSmooth => VoxelMesherTransvoxel 2019-04-21 14:47:50 +01:00
Marc Gilleron 1181cfa59f Dual marching cubes WIP (only octree and dual grid extraction, untested) 2019-04-20 17:32:10 +01:00
Marc Gilleron b03df8c079 Added box mover utility for quick move and slide physics 2018-10-01 00:11:33 +01:00
Marc Gilleron e79dd98d69 Fix compilation 2018-09-29 17:51:09 +01:00
Marc Gilleron 44bdc63c6f Added an image-based terrain generator for testing (ported from the GDScript demo) 2018-09-28 01:11:28 +01:00
Marc Gilleron a5a1ded2f3 Added smooth voxels (untextured at the moment) 2017-04-06 23:44:11 +02:00
Marc Gilleron fa5e419549 Upgraded to Godot 3.0 2017-03-25 01:23:36 +01:00
Marc Gilleron cefa371d83 Added more features to VoxelProviderTest 2017-01-02 23:58:51 +01:00
Marc Gilleron c75d1e78b2 Voxels are loaded through VoxelProvider 2017-01-02 02:15:57 +01:00
Marc Gilleron 8d1c8cc339 Spaces to tabs 2017-01-01 04:40:16 +01:00
Marc Gilleron 5662dfde7b Added VoxelMap and VoxelTerrain + various fixes 2016-05-10 01:59:54 +02:00
Marc Gilleron 7305fd7b27 Renamed VoxelMeshBuilder => VoxelMesher 2016-05-08 01:09:00 +02:00
Marc Gilleron d1d685124f Added VoxelLibrary, texture coordinates and random stuff 2016-05-01 22:20:27 +02:00
Marc Gilleron 1acabf1307 Added project: first working prototype, but lots of TODOs 2016-05-01 15:00:02 +02:00