Ankit Meel's GSoC project, Improving IO performance for big files, was mentored by Dr. Sybren Stüvel and Dr. Howard Trickey. This project initially aimed to improve the import/export times of .PLY, .STL files, but later focused on reworking the Wavefrom OBJ IO performance.
Ankit Meel managed to implement a new fully featured importer and exporter for OBJ, witnessing massive performance increases in big files. He provides these tables below to show the extent of the speedups:
Default cube + 9 subdivision surface levels. (triangulated faces) | File Size (MB) | Time Old (s) | Time New (s) | Speed-up |
---|---|---|---|---|
Import | 365 | 101 | 15 | 6.7X |
Export | 365 | 132 | 14 | 9.4X |
Default Cylinder: 2038 copies. (non-triangulated faces) | File Size (MB) | Time Old (s) | Time New (s) | Speed-up |
---|---|---|---|---|
Import | 20 | 84.6 | 1.5 | 56x |
Export | 20 | 12.3 | .9 | 13x |
Ankit goes into details explaining how these speed gains where achieved in the project's final report, where he credits the move from python (used in the old IO modules) to C++ as one of the performance boosters among other things. Ankit also intends to continue working on the PLY and STL modules even after his GSoC has ended!
This post is part of a series overviewing the various Google Summer of Code 2020 projects.
Every year, google funds students over the summer to work for open source projects.
This year, Google has granted 10 projects for the Blender Foundation. The students behind these projects are assigned mentors from the Blender development team, which follow their progress over the summer and then assess their work. All of the GSoC 2020 projects have successfully passed their mentors’ evaluations!
3 Comments
Fantastic work Ankit, nice job! Those performance improvements will collectively save years worth of our lives that would have otherwise been spent watching a progress bar.
I wonder if the same gains can be ported over to other file formats, e.g. FBX import.
Please improve fbx reading times. Specially large mocap files.. If possible add a feature to re sample animation fps