Commit Graph

288 Commits (173ee3e1984db1bd64ac318258a2e96a44e8fecd)

Author SHA1 Message Date
Marc Gilleron 61b27491f9 Initial implementation of binary search in Transvoxel.
It is very slow but seems to be working. It affines vertex positions,
but normals are not improved. Maybe more work will be done in the future
if that technique becomes more relevant.

Partly based on a prior experiment:
11f716f79d0ade59c0e9547a2333183e96b17b43
2022-03-27 21:36:30 +01:00
Marc Gilleron f631d8880c Added configuration warnings to resources 2022-03-06 01:10:47 +00:00
Marc Gilleron 72e714e15b Added `OutputSingleTexture` node for outputting a single texture index per voxel 2022-02-27 22:07:42 +00:00
Marc Gilleron 6b6255e93d This should be integer weights 2022-02-27 22:06:53 +00:00
Marc Gilleron 493b93a051 SDF is now encoded with inorm8 and inorm16 2022-02-26 22:51:29 +00:00
Marc Gilleron 0e54920afb Replace existing connection if dragging from/to an input port having one already 2022-02-20 16:57:29 +00:00
Marc Gilleron 729b2a3391 Unnecessary includes 2022-02-20 13:31:25 +00:00
Marc Gilleron 0137ca3036 Namespaced VoxelBuffer in `gd::` because it is actually a wrapper 2022-02-15 21:49:20 +00:00
Marc Gilleron 31b4d0bc68 Make it compile with float=64 2022-02-14 21:06:31 +00:00
Marc Gilleron c4ca66516c Fix comparison signedness warning (2) 2022-02-13 17:37:20 +00:00
Marc Gilleron e958739759 Fix some narrowing conversions 2022-02-13 16:19:54 +00:00
Marc Gilleron b3faec2bef Removed voxel_block_request.h, use specialized structs 2022-02-12 23:37:02 +00:00
Marc Gilleron a9ba6e0056 Unconnected inputs show their default value directly on the node 2022-02-05 20:09:09 +00:00
Marc Gilleron 8b15cdf604 Can be const 2022-02-05 16:27:52 +00:00
Marc Gilleron 5685e3c41e Use references instead of pointers, they should not be null 2022-02-05 16:23:03 +00:00
Marc Gilleron 239a87a6e9 Moved noise and SDF range utilities to util/ 2022-02-05 16:14:57 +00:00
Marc Gilleron b8e8ba84b0 Added support for outputting to the TYPE channel from VoxelGeneratorGraph 2022-02-05 00:45:17 +00:00
Marc Gilleron 78b5b8644d Formatting 2022-02-04 22:52:17 +00:00
Marc Gilleron 5c75d2fcc4 Fix bad hash function 2022-02-04 22:52:07 +00:00
Marc Gilleron f1694b08ec Remove a few unnecessary usages of the wrapper version of VoxelBuffer 2022-02-03 00:02:10 +00:00
Marc Gilleron b7e56c6bec Moved other tasks out of VoxelServer 2022-02-02 21:03:09 +00:00
Marc Gilleron 08f3786ff6 Use typed code instead of strings in property hints 2022-01-16 16:04:25 +00:00
Marc Gilleron b67ca3d903 Namespaced every registered class 2022-01-09 22:16:44 +00:00
Marc Gilleron e53dcf7c84 Re-namespaced VoxelConstants 2022-01-09 03:06:58 +00:00
Marc Gilleron 9c653b8a9f Namespaced FixedArray 2022-01-09 02:53:21 +00:00
Marc Gilleron 2265de6aef Fix unused variables warning
I wish to use them but can't at the moment, leaving commented as reminder
2022-01-08 23:49:40 +00:00
Marc Gilleron 26fd961a36 Fix missing namespace
The previous commit made GCC's trouble much clearer
2022-01-08 23:43:19 +00:00
Marc Gilleron b3eeec40f3 Fix GCC not finding the right invocation of max() 2022-01-08 23:34:05 +00:00
Marc Gilleron 38baeae2d9 Namespaced VoxelBufferInternal 2022-01-08 22:49:59 +00:00
Marc Gilleron fad9537303 Print an error early if VoxelGeneratorImage is given an image of unsupported format.
Otherwise it would spam-print while generating.
2022-01-08 22:48:21 +00:00
Marc Gilleron 9346b351fc Merge branch 'godot4'
# Conflicts:
#	doc/source/changelog.md
#	editor/about_window.cpp
#	generators/graph/image_range_grid.cpp
#	generators/graph/range_utility.cpp
#	generators/graph/voxel_generator_graph.cpp
#	terrain/instancing/voxel_instance_generator.h
#	util/voxel_raycast.h
2022-01-08 01:20:45 +00:00
Marc Gilleron d98c3b0836 Fix image formats L8 and LA8 not being accepted by the Image2D node (picked from cef8bd927a) 2022-01-08 00:36:30 +00:00
Marc Gilleron 8d6a24833c Fix changing node name not working 2022-01-07 23:40:46 +00:00
Marc Gilleron cef8bd927a Fix image formats L8 and LA8 not being accepted by the Image2D node 2022-01-05 00:03:39 +00:00
Marc Gilleron e20684ce69 Namespaced math funcs 2022-01-03 23:14:18 +00:00
Marc Gilleron a9476227cb Namespaced Interval 2022-01-03 22:29:39 +00:00
Marc Gilleron c0cda5d7a7 Use namespaces in some cpp files that would otherwise be in those namespaces (but aren't because they are registered classes) 2022-01-03 22:01:11 +00:00
Marc Gilleron 492f660831 Namespaced ProgramGraph 2022-01-03 04:47:05 +00:00
Marc Gilleron 4259ea5b80 Namespaced VoxelGraphRuntime 2022-01-03 04:29:53 +00:00
Marc Gilleron e68f59643b Namespaced VoxelGraphNodeDB 2022-01-03 03:55:44 +00:00
Marc Gilleron 8777bb2bf1 Namespace ImageRangeGrid 2022-01-03 03:39:59 +00:00
Marc Gilleron 5bb4efa204 Namespaced range_utility 2022-01-03 03:31:24 +00:00
Marc Gilleron 24e9e36434 Namespace SDF functions 2022-01-03 03:18:58 +00:00
Marc Gilleron 0ff835d7ec Namespace ProfilingClock 2022-01-03 01:40:13 +00:00
Marc Gilleron 174911cce8 Fix noise properties not showing in inspector 2022-01-01 03:53:39 +00:00
Marc Gilleron 1e89a7b75d FastNoise2 conditional compilation 2021-12-31 21:22:30 +00:00
Marc Gilleron c47050e29e Optimize SDF slice copy 2021-12-31 21:14:38 +00:00
Marc Gilleron 204b64ac23 Added FastNoise2 to VoxelGeneratorGraph 2021-12-31 18:23:42 +00:00
Marc Gilleron 2f71b79904 More uses of Time singleton 2021-12-29 17:18:49 +00:00
Marc Gilleron 90c4692105 Fix setting node name 2021-12-28 19:25:21 +00:00
Marc Gilleron 03d3016ecf Remove some pre-set resource properties to fix a Godot4 warning (sorry) 2021-12-16 01:30:31 +00:00
Marc Gilleron 922f361cb0 Made it compile in Godot 4
- Made a bunch of changes to comply with Godot 4 API
- Use Godot's Vector3i and add the missing stuff with helper functions
- Transvoxel uses custom attributes API, the old way would not work
- Wrap MeshOptimizer in a unique namespace (see build script why)
- Added clang-format file for the module as some rules now differ
- Prevent thirdparty code and lookup tables from being clang-formatted
- Very likely full of runtime bugs that need fixing
2021-12-13 21:38:10 +00:00
Marc Gilleron 380e295d94 Merge branch 'master' into full_load_mode
# Conflicts:
#	meshers/transvoxel/transvoxel.h
#	server/voxel_server.cpp
#	terrain/voxel_lod_terrain.cpp
2021-12-11 22:59:24 +00:00
Marc Gilleron d5a69003c3 Add missing classes and run doctool (doctool has issues though)
VoxelGeneratorHeightmap.height_range is wrong in the doc.
VoxelTool lost all default values in doc.
These are likely Godot bugs...
2021-11-06 02:04:16 +00:00
Marc Gilleron ca7ac42cde Merge branch 'master' into full_load_mode
# Conflicts:
#	edition/voxel_tool_lod_terrain.cpp
#	generators/graph/voxel_generator_graph.cpp
#	terrain/voxel_lod_terrain.cpp
2021-10-31 16:17:27 +00:00
Marc Gilleron 6441d1b864 Deprecate Vector3i(Vector3) constructor, make conversions explicit
Some conversions were wrong/unintented.
This is also in prevision of using Godot 4 Vector3i,
which default behavior differs from this module.
2021-10-31 16:01:47 +00:00
Marc Gilleron 0fc9e6b313 Fix crash when given negative-size area 2021-10-29 18:25:52 +01:00
Marc Gilleron 38ec2f43d1 Align program memory of VoxelGraphRuntime 2021-10-28 19:32:38 +01:00
Marc Gilleron 97f6765831 Fix memory leak in VoxelGraphRuntime (one leak per thread that ran any) 2021-10-26 20:41:28 +01:00
Marc Gilleron 375c68b0de Merge branch 'master' into full_load_mode 2021-10-13 20:29:58 +01:00
Marc Gilleron a2096b2014 Fix heightmap generators when used with VoxelLodTerrain in blocky mode 2021-10-08 02:35:52 +01:00
Marc Gilleron e04091f3cb Added full load mode to VoxelLodTerrain
With this mode enabled, editing anywhere becomes possible.
All edited blocks are loaded at once when the stream is assigned.
The generator is used on the fly to fill the gaps, instead of being
pre-emptively cached only nearby the viewer to allow editing.
Editing is still on the main thread, so this can cause stalls if
the generator is complex. There is also no controlled limit on how
much data gets loaded, so if edited data is larger than RAM, it will
not be playable. The feature is already quite usable, but more work
may be done for wider viability.
2021-10-03 01:48:07 +01:00
Marc Gilleron 87f086b26e Fix enum comparisons 2021-09-26 17:21:44 +01:00
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 b8f21f91fc Fix VoxelGeneratorGraph sub-resources not registered when duplicate() is used 2021-09-25 17:34:43 +01:00
Marc Gilleron 62c807fa71 Fix graph not recompiling after changing a subresource 2021-09-22 20:28:17 +01:00
Marc Gilleron 7f8eabe21f Don't change expected return value for generate() in scripts, until it is actually used 2021-09-21 19:18:59 +01:00
Marc Gilleron e602b9bffe Merge branch 'master' into octree_compression
# Conflicts:
#	tests/tests.cpp
2021-09-19 20:15:16 +01:00
Marc Gilleron 3cf2e92483 Optimized Curve range analysis by dividing it into monotonic sections 2021-09-19 18:20:54 +01:00
Marc Gilleron c9b1840e99 Added `max_lod_hint` return value to block generators 2021-09-16 20:33:45 +01:00
Marc Gilleron 968dd1fecd Make VoxelGeneratorNoise generate color 1 when told to use color channel 2021-08-07 23:06:52 +01:00
Marc Gilleron 5f84ceac39 Fix warning 2021-07-19 19:28:39 +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 b455fae34f Typo 2021-06-19 18:35:01 +01:00
Marc Gilleron b538a0beb8 Moved noise tests to tests folder 2021-06-19 18:34:50 +01:00
Marc Gilleron 411be94559 Renamed ArraySlice -> Span 2021-05-31 16:48:49 +01:00
Marc Gilleron 35de0883d2 Fix shadowing 2021-05-31 03:32:50 +01:00
Marc Gilleron ee060176ab Fix initialization reordering, shadowing, signedness and unused vars 2021-05-31 02:29:21 +01:00
Marc Gilleron 8975a93c9b Fixed bad buffer adresses when multiple outputs are used
This was mainly apparent when optimization was enabled.
It caused outputs to be left uninitialized and either work by chance
or provide the wrong values.
2021-05-31 00:05:42 +01:00
Marc Gilleron f943339f31 Researching tri-channel weights storage
- No changes made for now, but the code is there if we want to switch
- Renamed functions to be more explicit
2021-05-23 20:28:06 +01:00
Marc Gilleron 493579cefb Initialize voxel graph with default nodes when creating it in the editor 2021-05-03 01:04:04 +01:00
Marc Gilleron 80c2a0b702 Fix warning 2021-05-02 19:17:21 +01:00
Marc Gilleron 264b77ac21 Moved hardcoded output types outside the runtime.
For simplicity I chose to just give output nodes output ports,
like regular ones, and hide them in the editor.
It required to change a bit how output nodes are detected,
and backing output buffers are no longer required from callers.
This will allow to more easily implement custom outputs as well.
2021-05-02 01:22:44 +01:00
Marc Gilleron ee1169cc45 Merge branch 'master' into smooth_texturing 2021-04-30 22:15:27 +01:00
Marc Gilleron cc9e614b4a Fix Remap node 2021-04-30 22:07:26 +01:00
Marc Gilleron 32f9006b75 Added initial support for texture weights in graph generators (not optimal) 2021-04-30 22:04:38 +01:00
Marc Gilleron 10683ccd15 Comments 2021-04-15 20:35:31 +01:00
Marc Gilleron 310386bde8 Merge branch 'master' into block_size_decoupling 2021-04-11 01:09:51 +01:00
Marc Gilleron 05dda25245 Fix several bugs when the graph has no operations 2021-04-10 01:36:49 +01:00
Marc Gilleron 2c6eb114b2 Fix order of SDF arguments 2021-04-07 00:05:38 +01:00
Marc Gilleron bcba1a8c0f Fix wrong condition in try_get_input 2021-04-07 00:05:00 +01:00
Marc Gilleron 0c830ded40 Fix wrong input used in sdf subtract node 2021-04-07 00:04:33 +01:00
Marc Gilleron 289da1d128 Add option to turn off XZ caching optimization 2021-04-03 21:39:22 +01:00
Marc Gilleron 18f211822f Fix ignored buffers still being used when optimized execution map is used 2021-04-03 20:44:48 +01:00
Marc Gilleron c38989f57b Unnecessary reference 2021-03-27 22:09:57 +00:00
Marc Gilleron 371b1edf2c Fix some shadowing GCC doesn't like 2021-03-27 21:51:39 +00:00
Marc Gilleron 7253308bf8 Remove unnecessary qualification 2021-03-27 19:48:33 +00:00
Marc Gilleron 29c5141dda Increase default clip threshold to reduce chance of artifacts 2021-03-27 16:39:21 +00:00
Marc Gilleron 5766bc8b94 Merge branch 'master' into lod_fade_v2
# Conflicts:
#	README.md
#	editor/about_window.cpp
2021-03-27 01:48:36 +00:00
Marc Gilleron 4e1442cb0b Added clipping debug option 2021-03-27 01:46:07 +00:00