Commit Graph

123 Commits

Author SHA1 Message Date
235943f7ca Removed the old meshing implementation, and replaced most logic to the new one. The code compiles, but it won't work for now. Also other cleanups. 2020-10-02 23:47:39 +02:00
71f69666cd Moved VoxelJob to a new folder. Also added generate_ao and generate_random_ao from voxel chunk into it. 2020-10-01 20:18:43 +02:00
eea8309352 Implement texture scale for the blocky mesher. Also added an option to add vertex colors even whe n lighting is off. 2020-08-26 00:11:32 +02:00
64b9476eca Moved the texture scale property to VoxelMesher. 2020-08-25 23:09:41 +02:00
5938f7f783 Now the type and isolevel channels are customizable in the meshers. 2020-08-21 20:02:22 +02:00
4921252475 Set light.a to 1. 2020-08-21 12:34:56 +02:00
3ade810606 Removed leftover debug operation. 2020-08-21 12:21:47 +02:00
de6c2d6ffa Texture scaling for the cubic mesher. 2020-08-21 12:19:18 +02:00
fc153bae06 Surface support for the cubic mesher. 2020-08-21 12:10:15 +02:00
5358c99646 Now VoxelChunkDefault supports coloring MeshDataResources that span multiple chunks. 2020-08-16 18:20:16 +02:00
0a4d07c582 The terrarin mesh setup phase can now distribute it's calculations onto multiple frames.. Also small fixes to the single threaded logic. 2020-08-04 14:40:40 +02:00
0138c02bf8 Implemented meshing chunk's mesh data resources. 2020-06-28 19:02:49 +02:00
7219d7b2d4 Added a Cubic chunk and World. 2020-06-12 19:34:47 +02:00
61a8b9224f Removed _add_chunk_liquid from VoxelMesher as it's not used anymore. 2020-06-12 18:06:41 +02:00
cc90d3b54b Removed the Transvoxel Mesher. 2020-06-12 18:02:46 +02:00
a83585bd81 Turned the Transvoxel mesher into a MarchingCubes mesher. Removed the parts that weren't used. 2020-06-12 17:59:04 +02:00
1d51be2f0b Moved 4.0 compatibility code into a new defines.h (like in ESS). 2020-05-23 10:34:47 +02:00
c48dfde661 Now the Transvoxel mesher will only interpolate between uv1 and uv2 at 3 steps (0, 0.5, 1). 2020-05-09 21:24:23 +02:00
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