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