Blender Git Commit Log

Git Commits -> Revision e12c311

Revision e12c311 by Sybren A. Stüvel (master)
April 14, 2017, 13:26 (GMT)
Alembic import: greatly improved curve/hair import performance

The U-resolution of the imported curves was kept at the default value
of 12, which is way too high for imported hair. We export hair at a
fairly high resolution already, so it's not needed to subdivide even
further when importing.

Of course this may have an impact on other curves that do require this
U-resolution to be higher. In that case the resolution can be
increased after importing.

I removed the default nu->orderu = num_verts, as that allowed every
point to influence the entire spline, which was more expensive for the
CPU, and unlikely to be needed. The orderu computations had off-by-one
errors in the curve importer, which are now also fixed. The correct
values are:

- Linear: orderu = 2
- Quadratic: orderu = 3
- Cubic: orderu = 4

These values are also what is stored in the Alembic file for curves of
type kVariableOrder, according to the reference Maya exporter
maya/AbcExport/MayaNurbsCurveWriter.cpp, function
MayaNurbsCurveWriter::write(), in the Alembic source code.

The result is a frame rate increase of roughly 100x (tested with one
100-hair test on one machine, so take with grain of salt).

Commit Details:

Full Hash: e12c3110024dc4b62ffefa739288218b04e39f71
Parent Commit: 6af131f
Lines Changed: +13, -7

1 Modified Path:

/source/blender/alembic/intern/abc_curves.cc (+13, -7) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021