Commit Graph

105 Commits

Author SHA1 Message Date
1a1c0ade12 Liquid mesher will only mesh liquid blocks now. 2020-04-19 23:55:06 +02:00
e07bb3850d Now the blocky mesher will not mesh the liquid blocks. 2020-04-19 23:48:59 +02:00
21ad01ca80 Removed separate liquid surfaces. They will be contained inside the normal voxel arrays. 2020-04-19 23:35:47 +02:00
ab26a7627a Added a blocky liquid mesher. (It's just a copy of the normal blocky mesher for now.) 2020-04-19 23:02:37 +02:00
59b5086113 Fix potential crash in the blocky mesher. 2020-04-17 14:32:52 +02:00
7c0390de74 The air block is not required anymore. Also Implemented the sidebar for world editor. And fixed a naming error for a virtual method in the merger library. 2020-04-17 00:37:22 +02:00
1f23f61b3a Ran clang format, as apparently I had it off. 2020-04-10 13:55:27 +02:00
f6ed4505e7 Fixed indexing in the blocky voxel mesher. 2020-04-10 13:38:34 +02:00
69cc6e0b77 Better block positions for the blocky mesher. 2020-04-09 22:06:02 +02:00
a722f807fe Fix building for 3.2. 2020-04-09 15:45:51 +02:00
073e1aeb97 Fix build for 4.0. 2020-04-09 12:34:39 +02:00
9fe51572f4 Didi the same optimization to the transvoxel uv mesher. 2020-04-07 14:40:35 +02:00
f7842e1ab2 The blocky mesher is a lot faster now. 2020-04-07 14:23:20 +02:00
a4fc573f85 Optional module dependencies are actually optional now. 2020-04-06 22:47:03 +02:00
28ce072e51 Renamed VoxelMesherTransvoxel to VoxelMesherUVTransvoxel. 2020-04-06 14:52:18 +02:00
81dc8bcb36 Don't bake colors, if lighting is disabled. 2020-04-06 14:23:49 +02:00
b9ba0c0bf9 Moved _bake_colors and _bake_liquid_colors into VoxelMesherDefault. Also made the other meshers inherit it. 2020-04-06 14:21:46 +02:00
b4c61ac674 Created a default version from world, and the mesher. Also added a BuildFlags enum to VoxelChunkDefault. Converted a few properties to use this. 2020-04-06 13:41:45 +02:00
37517c2e18 Implemented blocky meshing. 2020-04-05 17:15:08 +02:00
dfee0a7786 Added a blocky mesher, chunk, and world (The minecraft-style mesher). It's incomplete. Also ported the light baking step from Broken Seals, and fixed a few warnings. 2020-04-05 01:36:41 +02:00
9da5d2e2d0 VoxelChunk now inherits from Resource instead of from Spatial. This is to make the scene cleaner (especially after I implement the world editor plugin). As a small bonus this should also make multithreading-related crashes harder to create, as manipulating the Scenetree from a thread by accident is now a lot harder. 2020-04-02 21:28:19 +02:00
541abb954d Now materials in Library are stored with vectors. This makes it possible to have different materials for every lod level for example. 2020-03-29 20:19:38 +02:00
a5c5a7b56b Remove -std=c++11 cppflag as it!s not needed. Also compile fix for msvc. 2020-03-24 16:56:04 +01:00
080e8f2437 Broke up VoxelChunk into VoxelChunk and VoxelChunkDefault. 2020-03-12 23:23:38 +01:00
9154009250 Added remove_doubles, and remove_doubles_hashed methods to VoxelMesher, the hashed version is actually about 40-ish percent faster usually, but if hash might occur with it. The TransvoxelMesher now automatically simplifies it's meshes after a buffer is added, using the hashed version (to see in practice how common hash collisions are). 2020-03-09 00:17:50 +01:00
a22be7208c The transvoxel mesher now won't allocate small arrays constantly during generation. 2020-03-08 23:40:22 +01:00
45976ca387 Reworked VoxelMesher's api a bit, now it works like SurfaceTool. Also it now stores data the same way i.e. 1 container, with a Vertex struct (I took the Vertex struct, and it's hasher from Surface Tool (because the hasher was private)). This will make mesh post processing a lot easier. 2020-03-08 22:36:58 +01:00
e4b094a27c VoxelMesher's build_collider now returns an array, also it is now bound. 2020-03-06 15:39:15 +01:00
b9f1de7dd9 VoxelMesher doesn't use SurfaceTool internally anymore. 2020-03-04 23:06:30 +01:00
6c39845387 Removed a few now unneeded methods from VoxelChunk, they got merged into _build_phase. Also added build_mesh_into to VoxelMesher, it's equivalent to the old build_mesh. 2020-02-20 13:44:38 +01:00
8b734eec11 Mesher's build_mesh function now has no argument, and returns an array. 2020-02-20 13:19:54 +01:00
07afd06c2a Now chunks can properly use multiple meshers at the same time. 2020-02-14 19:02:31 +01:00
a457ed400c Added data margin start, and end property to VoxelWorld for easy access. Improved set_voxel, and get_voxel in VoxelChunk to accomodate for margins as originally intended (e.g. if start_margin is 1, indexes go from -1 to size + end margin). Fixed/updated indexing in VoxelMesherCubic. 2020-02-14 03:19:15 +01:00
601a61619b Added mesher index property to both VoxelMesher, and VoxelSurface. 2020-02-13 14:16:57 +01:00
8b08a9b14f Ported the TransvoxelMesher from BrokenSeals. 2020-02-13 13:21:30 +01:00
201ea0ce1f Now the built in bake_colors method will keep the original alpha in colors if set. Also Added uv2 support in build_mesh. 2020-02-13 03:25:47 +01:00
8a2524dc57 Improved multithreading a lot, it doesn't seem to crash anymore. Also made chunk mesh generation faster by letting build phases run one after an another without launching new threads (using is_phase_threaded). 2020-02-12 14:16:31 +01:00
fd1ff4b4ff Better chunk building setup. And smaller fixes and tweaks. 2020-02-10 23:39:57 +01:00
db77530ec1 Updated the license for 2020, and added it to the top of my cpp files. 2020-01-31 19:52:37 +01:00
ba46eafc19 Removed the mesh simplifier, it has it's own repository now. 2020-01-31 16:13:19 +01:00
b0b38396c4 Added mesh simplifier to the build, fixed compile, and started work on bindings. 2020-01-21 23:56:37 +01:00
3ef382b29f A few missing things. 2020-01-20 16:12:45 +01:00
7e8cbc1fb5 Compile fix. 2020-01-20 15:10:30 +01:00
531599dd1d Moved everything to a new class. 2020-01-20 11:52:54 +01:00
83806f4bc1 More work on porting. 2020-01-20 11:45:46 +01:00
7a35337367 Started porting/integrating Whinarn's UnityMeshSimplifier into VoxelMesher. (https://github.com/Whinarn/UnityMeshSimplifier). 2020-01-20 03:34:07 +01:00
a95973eeba Replaced Vectors to PoolVectors in VoxelMesher. Also added uv2 methods. 2020-01-19 18:25:03 +01:00
4a8ed25544 Moved the transvoxel mesher into a folder. 2020-01-14 02:57:32 +01:00
010b20ee55 Fix a few of the issues with the cubic mesher. 2020-01-12 21:58:14 +01:00
a67d0393ca Clang format. 2020-01-09 04:29:05 +01:00