I recently upgraded from PyFFI 2.1.5 to 2.1.7. All of the meshes I've been using, including those buried in Bethesda or modded BSAs, were optimized with 2.1.5.
I have heard that it's safe to run previously optimized meshes through PyFFI again. But I am a bit worried about doing this, considering the many references to error corrections in the PyFFI development log:
Spoiler
Release 2.1.7 (23 January 2011)
===============================
Release 2.1.6 (13 November 2010)
================================
Release 2.1.7 (23 January 2011)
===============================
- Added support for Fallout New Vegas (contributed by throttlekitty and saiden).
- Updated geometry optimizer to keep dismember body parts, for Fallout 3 and Fallout New Vegas (fixes issue #3025691 reported by Chaky).
- Added flag to enable debugging in vertex cache algorithm, to assess how suboptimal the solution is on any particular mesh (testing reveals that it finds the globally optimal solution in more than 99% of all iterations, for typical meshes).
- New check_triangles_atvr spell to find optimal parameters for vertex cache algorithm by simulated annealing.
- Fixed send_geometries_to_bind_position, send_detached_geometries_to_node_position, and send_bones_to_bind_position in case skin instance has empty bone references (fixes issue #3114079, reported by drakonnen).
- Fix for verbose option in multithread mode (reported by Gratis_monsta).
- Fix optimize spell when no vertices are left after removing duplicate vertices and degenerate triangles (reported by Gratis_monsta).
- Fixed tangent space issue along uv seams (reported by Gratis_monsta and Tommy_H, see issue #3120585).
- Log an error instead of raising an exception on invalid enum values (fixes issue #3127161, reported by rlibiez).
- Disabled 2to3 in Windows installer; the Python 3 version of PyFFI will be released separately.
Release 2.1.6 (13 November 2010)
================================
- The optimize spell now includes two new spells: opt_collisiongeometry for optimizing triangle based collisions, and opt_collisionbox for optimizing simple box collisions. This should result in faster loads and probably also a small but noticable performance improvement.
- Fixed opt_collisiongeometry for multimaterial mopps (reported by wildcard_25, see issue #3058096).
- New SpellCleanFarNif spell (suggested by wildcard_25, see issue #3021629).
- Bad normals are now ignored when packing a bhkNiTriStripsShape (fixes issue #3060025, reported by rlibiez).
- The opt_delunusedbones spell no longer removes bones if they have a collision object (fixes issue #3064083, reported by wildcard_25).
- If the jobs option is not specified in the toaster, then the number of processors is used---requires Python 2.6 or higher (suggested by chaky2, see issue #3052715, implements issue #3065503).
- New opt_delzeroscale spell to delete branches with zero scale (suggested by chaky2, see issue #3013004).
- The opt_mergeduplicates spell now ignores (non-special) material names, so identical materials with different names will get merged as well (suggested by chaky2, see issue #3013004).
- New spell to fix subshape counts (see issue #3060025, reported by rlibiez), it is included in the optimize spell.
- New opt_collisionbox spell which automatically converts triangle based box collisions to primitive box collisions, which are much faster in-game (contributed by PacificMorrowind).
- Optimizer spell now uses triangles to represent skin partitions (improves in-game fps).
- Better vertex map calculation when calculating skin partitions (improves in-game fps).
- Optimizer now always triangulates (improves in-game fps). Stripification will be readded later in a modularized version of the optimizer spell, for those that want minimal file size rather than maximal performance).
- Much faster implementation of vertex cache algorithm (now runs in linear time instead of quadratic time).
- Check triangle count when converting to box shape (fixes issue #3091150).
- Bugfix in vertex map reordering (fixes most nifs reported in issue #3071616).
- Bugfix in vertex cache algorithm (fixes a nif reported in issue #3071616).
- Cover degenerate case in ATVR calculation when there are no vertices (fixes a nif reported in issue #3071616).
- Cover degenerate case when calculating cache optimized vertex map (fixes a nif reported in issue #3071616).
- Remove branches if they have no triangles (again fixes a nif reported in issue #3071616).
What do you think? Is it safe to redo the already optimized meshes, or should I start over? Or, maybe somewhere in between--like redo only certain types/categories of meshes?
EDIT: The main reason I am asking this is, I no longer have backups of some of the meshes. So putting optimized meshes through another optimization is my only (easy) option.