david-cattermole / mayaMatchMoveSolver

A Bundle Adjustment solver for MatchMove related tasks.
https://david-cattermole.github.io/mayaMatchMoveSolver/
Other
102 stars 27 forks source link

Solver UI - Add Enable "Pre-Solve" Checkbox #187

Closed david-cattermole closed 3 years ago

david-cattermole commented 3 years ago

Feature

Using the Basic solver tab will run a mmSolverAffects command before solving to validate all the inputs to the solver. A simple term for this would be a "pre-solve".

Many times, users don't "want" this pre-solve to happen because it takes a long time to ensure the inputs are valid. As a hack, users use the Legacy solver tab, which does not add the mmSolverAffects pre-solve.

To transition users from the (soon to be deprecated) Legacy solver tab to the Basic solver tab, it would be helpful to either A) reduce the time spent in mmSolverAffects, or B) allow users to disable the pre-solve feature, or C) detect automatically when the mmSolverAffects will provide significant benefits and auto-enable it.

Expected behavior: Users do not need to wait a long time before solving.

Actual behavior: The solver takes a number of seconds, especially for complex rigs, to pre-solve before starting the actual per-frame solve.

Software Versions

david-cattermole commented 3 years ago

A new check box "Evaluate Object Relationships" has now been added to the Basic and Standard solver tabs.

In previous versions of mmSolver v0.3.11 and below, solver "affects" relationships were always calculated.

The feature is turned off by default. For complex solves, the feature can be turned on and will save a lot of time when solving with many Markers. The documentation page for the Basic and Standard solver tabs has also been updated to explain this.

Turning this feature on can slow the solver down by 10 seconds on some scenes - depending on the complexity. However for very big solves, this feature can save a significant amount of time.

This feature will be released with v0.3.12.

David