Zylann / godot_voxel

Voxel module for Godot Engine
MIT License
2.59k stars 244 forks source link

GPU Compute #199

Open menip opened 3 years ago

menip commented 3 years ago

I'm learning about GPU compute and thinking how it would tie into the godot_voxel module.

So for terrain generation, using compute would be purely user side, correct? Because user of the module gets terrain buffer, which they could then pass onto compute shader to generate the terrain.

How about the meshing? Could the transvoxel algorithm run more efficiently in compute?

Zylann commented 3 years ago

Compute may be useful for both generation and meshing, even for something like VoxelGeneratorGraph.

Hard to say how the user will implement parts using compute though. It's definitely something to experiment, but some areas might be much harder to expose than others. For Minecraft-like behavior it's easy since you only have one block in entry, fill it up and output it, but for smooth-LOD with random access used in parallel by the mesher, the kind of compute shader to let the user write may differ significantly. That's one reason why building a graph-based, high-level tool can help simplifying such tasks.

However I'm very new to compute as well so this will need some time to investigate.