39 Commits

Author SHA1 Message Date
Marc Gilleron
729b2a3391 Unnecessary includes 2022-02-20 13:31:25 +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
a9476227cb Namespaced Interval 2022-01-03 22:29:39 +00:00
Marc Gilleron
4259ea5b80 Namespaced VoxelGraphRuntime 2022-01-03 04:29:53 +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
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
411be94559 Renamed ArraySlice -> Span 2021-05-31 16:48:49 +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
32f9006b75 Added initial support for texture weights in graph generators (not optimal) 2021-04-30 22:04:38 +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
bcba1a8c0f Fix wrong condition in try_get_input 2021-04-07 00:05:00 +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
7253308bf8 Remove unnecessary qualification 2021-03-27 19:48:33 +00:00
Marc Gilleron
03bfc09e99 Implemented execution map to optimize out nodes locally
- Added optional optimization of execution map
- Added visualization of skipped nodes in the editor debug tool
2021-03-21 18:48:00 +00:00
Marc Gilleron
9188ae619b Optimized several range analysis functions
- square, cube and polynomials are more precise
- lerp() is more precise
- smooth union and subtract are more precise
- fallback on simple min/max if smoothness is zero
2021-03-17 18:11:00 +00:00
Marc Gilleron
826e104024 Added tool to inspect range analysis 2021-03-14 18:44:46 +00:00
Marc Gilleron
d1207bdd96 Reorganized some utility files 2021-02-17 20:34:35 +00:00
Marc Gilleron
fc51984f7f Use unsigned integer to fix signed/unsigned comparison warnings 2021-01-18 22:21:44 +00:00
Marc Gilleron
67b1a2b86f Fixed image locking 2021-01-17 19:59:20 +00:00
Marc Gilleron
7940b3b761 Made VoxelGeneratorGraph thread-safe 2021-01-16 13:51:01 +00:00
Marc Gilleron
3a7f99643d Fix more signed/unsigned warnings 2021-01-09 20:21:09 +00:00
Marc Gilleron
494512a424 Fix initialization order 2021-01-09 19:34:03 +00:00
Marc Gilleron
1bb3d19e03 Use buffers to generate previews 2021-01-09 18:35:53 +00:00
Marc Gilleron
1e95374ccb The graph runtime now suports arbitrary position buffers, instead of an XZ rectangle 2021-01-08 21:04:49 +00:00
Marc Gilleron
04c1d61cd2 Quick cleanup, also patch preview nodes 2021-01-07 23:36:14 +00:00
Marc Gilleron
e00ed9b538 Move all node logic to function pointers, each combined into one place 2021-01-07 22:19:06 +00:00
Marc Gilleron
dafb4f39ff First WIP to try per-buffer processing instead of per-voxel 2021-01-04 22:19:13 +00:00
Marc Gilleron
e462cd788a Optimized range analysis for images and spherical map lookups 2020-12-26 18:58:16 +00:00
Marc Gilleron
d009049d4f Added experimental functions to bake sphere maps from the generator
- The runtime API now works with float positions
- Fixed XZ optimization, cached positions were not assigned
2020-12-22 02:13:46 +00:00
Marc Gilleron
44a1af2043 Don't crash if graph resources are null 2020-10-26 19:58:54 +00:00
Marc Gilleron
bc7ec0c966 Use last found SDF output and don't crash when there isn't any 2020-07-11 17:03:58 +01:00
Marc Gilleron
0cac00e501 Fix preview nodes not working if they are the only output from their ancestor 2020-07-11 17:01:34 +01:00
Marc Gilleron
b8c235fce3 Added preview nodes (has a few limitations, may fix them later) 2020-07-07 23:28:02 +01:00
Marc Gilleron
3deb90b467 Fix alignment problems causing crashes when nodes holding a pointers were used 2020-07-07 18:55:05 +01:00
Marc Gilleron
a3b623ad3d Optimize parts of the graph that only depend on X and Z, so they run in the outer loop 2020-02-29 22:35:55 +00:00
Marc Gilleron
a3b64c3983 A bit of reorganization:
- Merged VoxelGeneratorGraph::Node into ProgramGraph::Node
- Separated compilation and execution to its own class
2020-02-29 00:17:47 +00:00