Commit Graph

353 Commits (2d32eebed54adaffb275532b1d21bff11551ec8d)

Author SHA1 Message Date
Marc Gilleron 2d32eebed5 Remove VoxelStreamNoise buffering optimization, it was introducing LOD cracks 2019-12-31 16:32:16 +00:00
Marc Gilleron e8bb2fa5e1 Implement rotated transition meshes for all 6 sides,
and fix miscalculated secondary positions on max edges
2019-12-28 21:38:32 +00:00
Marc Gilleron fe3475e81e Project secondary position along normal as described by the paper 2019-12-27 23:51:20 +00:00
Marc Gilleron b226c14284 Compute secondary positions and a second border mask to deal with edges 2019-12-27 17:33:30 +00:00
Marc Gilleron 6b05b9c9ce Expose VoxelBuffer.downscale_to 2019-12-26 20:30:20 +00:00
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
Marc Gilleron d768af5bdd Implemented transition meshes, in very basic form.
Work remains to be done:
- Transform the mesh into proper orientation
- Introduce secondary positions to make it fit in a regular block
- Make it available in the API and use it in terrain nodes
2019-12-23 21:44:25 +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 9dcf8c83cb Did not need to be included in header 2019-12-23 21:36:34 +00:00
Marc Gilleron 28d45fa758 Was using wrong triangle table for marching squares. Didn't see any difference tho. 2019-12-16 19:55:35 +00:00
Marc Gilleron 3e52295279 Comment about asymetry 2019-12-15 03:24:03 +00:00
Marc Gilleron a79404f96c Use proper name in include guard 2019-12-15 03:23:23 +00:00
Marc Gilleron 6568ce3a5f Expose minimum padding 2019-12-15 03:23:06 +00:00
Marc Gilleron 56dc78b8cc Align transvoxel with other meshers, its results were offset cuz its padding is asymetric 2019-12-15 03:22:37 +00:00
Marc Gilleron 8322617110 Merge branch 'master' of https://github.com/Zylann/godot_voxel 2019-12-14 21:35:10 +00:00
Marc Gilleron 2e974444c6 Implement VoxelTool for VoxelBuffer 2019-12-14 21:34:41 +00:00
Marc Gilleron add32f89a9 Invert SDF in Transvoxel mesher, otherwise it was producing inverted results... 2019-12-14 21:34:08 +00:00
Marc Gilleron 28cb74e9b1 Fix invalid normals causing occasional shading artifacts 2019-12-14 21:32:30 +00:00
Marc cfe6eb3313
Merge pull request #85 from tinmanjuggernaut/fix_macro_errors
Fix build errors due to Godot macro change
2019-11-18 14:29:09 +01:00
Cory Petkovsek 4820998c56 Fix build errors due to Godot macro change 2019-11-13 13:20:05 +08:00
Marc d70dfca8ea
Merge pull request #76 from tinmanjuggernaut/doc_update
Update docs
2019-10-05 18:54:38 +02:00
Cory Petkovsek 629631e1d9 Update docs 2019-10-05 22:35:13 +08:00
Marc bd857dcdfc
Merge pull request #65 from tinmanjuggernaut/mono-build-errors
Fix mono & gcc build issues
2019-10-03 20:24:31 +02: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 e783c75242 Register missing class to fix C# binding 2019-09-24 18:48:30 +01:00
Marc Gilleron 1a1b46cfd8 Don't use individual set_voxel edits in do_sphere 2019-09-11 21:30:26 +01:00
Marc Gilleron d4e7ac7845 Fix do_sphere(), the bounding box wasn't lining up 2019-09-11 21:25:15 +01:00
Marc Gilleron cef43e4087 Take voxel color into account in blocky mesher 2019-09-11 20:10:08 +01:00
Marc Gilleron 959f4432dd A bit of code grooming 2019-09-10 20:42:07 +01:00
Marc Gilleron 026fa96654 Fix mesh corruption when using two different materials 2019-09-10 20:40:42 +01:00
Marc Gilleron f59b34f1a0 Fix material assignments being shifted if one of the surfaces has no vertex 2019-09-10 20:04:08 +01:00
Marc Gilleron 13e909fb0d Remove old comment 2019-09-08 19:49:33 +01:00
Marc Gilleron 3508498c0b Rename VoxelTool.MODE_ERASE => MODE_REMOVE 2019-09-08 19:47:42 +01:00
Marc Gilleron 14bfcb172c Implement voxel tool for classic terrain 2019-09-08 19:42:25 +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 1d503866ef Bind missing mode 2019-09-05 20:47:08 +01:00
Marc Gilleron 584698d428 Fix wrong binding 2019-09-05 20:36:21 +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 2e1467edd7 Implemented nearest neighbor downscaling (to be tested) 2019-09-02 21:14:30 +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 ea1ce90caa Merge branch 'paged_lod' 2019-09-02 00:45:47 +01:00
Marc Gilleron ff51d83e55 Use better algorithm for blocks falling out of range 2019-09-02 00:45:20 +01:00