Improve .blend
import performance by importing multiple .blend
files at once with a single Blender call
#5099
Milestone
Describe the project you are working on
Multiplayer FPS
Describe the problem or limitation you are having in your project
I use asset packs in my project which contain hundreds to thousands of models each in fbx format. I've found that using blender files is the easiest to work with, so I use a python script to convert the fbx format to blender. This script processes all files at once and takes only a few minutes for hundreds of files.
Then I add the resulting blend files to my Godot project. Unfortunately, Godot takes a very long time to import all the blender files, it's approximately 10-20x slower than my fbx->blend script. Reimporting all assets in my project takes approximately 2 hours. One time I accidentally moved one of my asset folders to another directory, which resulted in about an hour of wasted time spent waiting for the importer.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
The Godot blender importer calls blender on the command line with a script that converts a single file. This means that for each file, we have to wait for blender to start up and then convert the file to gltf. My assumption is that the vast majority of the time is spent waiting for blender to start up, rather than the conversion of the file. Therefore, significant speed ups could be achieved by modifying the importer in such a way that it processes all blender files at once, with only a single call to the blender program.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
The blender importer should be updated so that it accepts multiple files and generates a python script that converts all of them in a single step.
Alternatively, we could launch a single blender instance and handle communication with the importer via rpc.
If this enhancement will not be used often, can it be worked around with a few lines of script?
No
Is there a reason why this should be core and not an add-on in the asset library?
It improves a core feature
The text was updated successfully, but these errors were encountered: