tefusion / godot-subdiv

Fast Subdivision in Godot with opensubdiv
https://godotengine.org/asset-library/asset/1488
MIT License
46 stars 1 forks source link
gdextension godot godot-addon godot-engine godot4 opensubdiv subdivision

Version License

Godot Subdiv

UV Subdivision Skinning subdivision

Getting Started

Importing

After installing the addon and enabling it you will see a subdivision section for any scene importer. Import has these three options:

SubdivMeshInstance3D BakedSubdivMesh ArrayMesh
The only option that doesn't bake. Skinning and blend shape changes get processed by CPU and then directly thrown at the RenderingServer. This is useful if you have a changing mesh or changing subdivision level. Bake at runtime: Useful for large reused meshes. Baking can take quite some time though so if space isn't an issue, the ArrayMesh might be the better option. Bake at import: The greatest advantage of this is, after importing you can remove godot subdiv again.

Adjust the subdivision level, click reimport and you should see your mesh subdivided.

Modeling Tips

OpenSubdiv has a great section on modeling for subdivision. Not all of them apply for Godot Subdiv though: You can currently only import either quad only meshes to use the Catmull-Clark scheme or any other mesh which will default to the Loop subdivision scheme.

Building the project yourself

To build this project you need to have SCons installed, otherwise everything is included in the project.

\ For just building and trying out the project do

scons target=template_debug

in the cloned folder.

For running the tests do

scons -Q tests=1 target=template_debug

which will run simple doctest tests when starting godot on the terminal:

path/to/godot --editor --path ${workspaceFolder}/project

See more in the SConstruct file

FAQ

How to create a mesh only containing Quads?

In Blender you can go in Edit Mode and go Select->Select All by Trait->Faces by Sides and set it to Not Equal To 4. After removing the then selected faces and replacing them with quads, Quad import will work.

Acknowledgements

License

MIT

Thirdparty notices are in THIRDPARTY.md.