Releases: david-cattermole/mayaMatchMoveSolver
mayaMatchMoveSolver-v0.4.3
The v0.4.3 release fixes bugs introduced into the previous release that affect Solver UI and the performance of mmSolver in some scenes.
NOTE: It is not recommended to mix this release with v0.3.x. It is recommended to use v0.4.3 only on new projects as there may be some incompatibility opening Maya Scenes created with v0.3.x using v0.4.x - if this is an acceptable problem, feel free to mix and match as needed.
Fixes / Changes:
- Fix Solver UI not opening in Python 2.7 (Maya 2018 to Maya 2022 - when run in Python 2 mode) (743e524)
- MM SceneGraph - Fix detection of 'trivial' attribute connections between transform attributes (0789dae).
Known Problems
- Markers are not distorted by Lens Distortion in Maya 2023.0, and 2023.1.
- Please upgrade to (at least) Maya 2023.2.
- Solving Lens Distortion does not act correctly in some cases - this is being actively developed and improved - please report bugs.
- There are lens distortion update issues in the Maya viewport with Markers and Lines node types.
- Compatibility with Maya scenes with mmSolver v0.3.x nodes may not work as expected - please report issues.
- The
mmImagePlaneShape
does not work the same as Maya native image planes with the useBackground/hold out options in Viewport 2.0.
Please report any bugs or suggestions you find in this release here and clearly state the version of mmSolver you are testing.
mayaMatchMoveSolver-v0.4.2
The v0.4.2 release fixes numerous bugs and improves the 3DE "Import Tracks" and Maya "Save Tracks" tools, to enable round-tripping 2D Markers between 3DEqualizer and Maya.
NOTE: The files below also contain a urgent bug fix patch (743e524) to fix a bug that only surfaced after release. The bug only occurs in Python 2. Please re-download the pre-built .tar.gz
/.zip
files below, or apply the patch manually (743e524).
NOTE: It is not recommended to mix this release with v0.3.x. It is recommended to use v0.4.2 only on new projects as there may be some incompatibility opening Maya Scenes created with v0.3.x using v0.4.x - if this is an acceptable problem, feel free to mix and match as needed.
Fixes / Changes:
- Add 3DEqualizer "Import Tracks" tool, to import
.uv
/.txt
/.rz2
/.2dt
files (2d0acaa) - 3DEqualizer scripts no longer use "Camera Frame Offset" at all (111875d)
- Fix rolling shutter calculation errors in 3DEqualizer "Copy Tracks" and "Export Tracks" tools (92011b8 3b4844e)
- Fix "Copy/Save Markers" tools incorrectly assuming the selected nodes were always Markers (2d0acaa e822de5)
- Fix loading the last frame of MatchMover
.rz2
files, for Load Markers (fa4a65d) - Fix "Create Markers" tool, when no nodes are selected (2d0acaa)
- Fix core MM Solver functions when Camera's
filmFit
attribute is not "Horizontal" (7ebeb78) - Fix getting starting directory from Maya project, when Maya project is not defined as expected (834c658)
Documentation changes:
- Update Camera Calibration usage and node options (49a7954)
- Add MM ImagePlane example image (765aa85)
- Add Images for Frames, User and "Root Frames" in the Solver UI (87cdaa6).
- Clean up "build" documentation (a788235)
Developer (low-level) changes:
- MM SceneGraph - Support 'trivial' attribute connections between transform attributes (efa82c6).
- 3DEqualizer Python scripts can now use a "generate code" tool to help updating 3DE ScriptDB Python scripts copied from multiple Python source files (AKA, it's a meta-programming tool) (54bca83)
- Start adding "mmSolver_v2", designed to improve the underlying mmSolver MEL command syntax, for faster parsing performance (5002f65 1b8f9a6 c514d37 be8813f c82be0b)
- Changed how the resulting string output from
maya.cmds.mmSolver()
command is generated - the order might be slightly different, but all values from previous mmSolver versions should still exist. - Add more tests and update tests (e01c731 706a409 d8d5522 ae934ef)
- MM Renderer (still disabled by default)
Known Problems
- Markers are not distorted by Lens Distortion in Maya 2023.0, and 2023.1.
- Please upgrade to (at least) Maya 2023.2.
- Solving Lens Distortion does not act correctly in some cases - this is being actively developed and improved - please report bugs.
- There are lens distortion update issues in the Maya viewport with Markers and Lines node types.
- Compatibility with Maya scenes with mmSolver v0.3.x nodes may not work as expected - please report issues.
- The
mmImagePlaneShape
does not work the same as Maya native image planes with the useBackground/hold out options in Viewport 2.0.
Please report any bugs or suggestions you find in this release here and clearly state the version of mmSolver you are testing.
mayaMatchMoveSolver-v0.4.1
The v0.4.1 release fixes a minor, but important issue in the Solver "Basic" tab.
NOTE: It is not recommended to mix this release with v0.3.x. It is recommended to use v0.4.1 only on new projects as there may be some incompatibility opening Maya Scenes created with v0.3.x using v0.4.x - if this is an acceptable problem, feel free to mix and match as needed.
Fixes / Changes:
- Fixed (incorrectly) choosing Maya DAG by default resulting in incorrect Maya DAG evaluation (and hence a bad solve).
Developer (low-level) changes:
- Tests that were using a non-existent scene file has been removed. These tests were for the
mmSolver.utils.nodeaffects
module.
Known Problems
- Markers are not distorted by Lens Distortion in Maya 2023.0, and 2023.1.
- Please upgrade to Maya 2023.2.
- Solving Lens Distortion does not act correctly in some cases - this is being actively developed and improved - please report bugs.
- There are lens distortion update issues in the Maya viewport with Markers and Lines node types.
- The Solver acts strangely and doesn't solve correctly when the camera's "Film Fit" is set to anything other than "Horizontal".
- Compatibility with Maya scenes with mmSolver v0.3.x nodes may not work as expected - please report issues.
- The
mmImagePlaneShape
does not work the same as Maya native image planes with the useBackground/hold out options in Viewport 2.0.
Please report any bugs or suggestions you find in this release here and clearly state the version of mmSolver you are testing.
mayaMatchMoveSolver-v0.4.0
The v0.4.0 release provides a lot of new tools and features, with
better stability more fixes.
Maya 2019 to Maya 2023 is supported on Windows and Linux, with both
Python 2.7 and 3.x support.
Biggest features introduced are:
- Layered Lens distortion nodes.
- (2D) Lines, used to solve lens distortion attributes and visualise straight-lines.
- MM ImagePlane node used to preview Lens distortion.
- A 'Camera Solver' to solve Cameras "from scratch" with no known 3D positions.
- Performance improvements (between 2 to 20 times faster!) using a new internal MM Scene Graph mode.
- Markers and Bundles now use custom shapes for an easier display in Maya.
- and a lot more...
NOTE: It is not recommended to mix this release with v0.3.x. It is recommended to use v0.4.0 only on new projects as there may be some incompatibility opening Maya Scenes created with v0.3.x using v0.4.x - if this is an acceptable problem, feel free to mix and match as needed.
What's New?
- New MM Solver Objects
- (#175 #21) Custom node for Markers
- (#175 #67) Custom node for Bundles
- (#173) MM ImagePlane
- (#120) 2D Lines
- MM Lines can be subdivided to any level of detail and subdivision uses the user's Marker selection for selective refinement.
- Solving Lens attributes using 2D Lines.
- (#216) Sky Dome visualization.
- Display Tools
- Toggle Object Motion Path tool.
- Set Object Colour tool
- Set wireframe colours of objects quickly and easily.
- Camera Tools
- File Input/Output
- Add Save Lens File tool to save Lens nodes in Maya as .nk files.
- Add Load Lens tool to load lens distortion values from a Nuke .nk file.
- Add Copy Marker tool.
- Add Save Marker tool.
- Add Z-Depth Tools
- Add Camera/Object Scale Adjust tool (by @bpatchasaheb)
- Add Create World Controllers tool - no-UI version of "Create Controllers" tool.
- Solver UI
- User and Root frames
calculation has been enhanced to provide better solve stability by default without as much user input. - Detects when the mmSceneGraph cannot be used and errors before a solve can start.
- Camera Solver tab
- User and Root frames
- Compatibility:
- (#217) Python 2.7 and 3.x and Maya 2022+ Support
Fixes / Changes:
- General UI
- Re-arrange menus and shelf icons.
- Improve Marker, Bundle and Line tool icons with letter to indicate the type of tools.
- Solver UI
- Improve spacing of Solver tab widgets.
- Add Solve Focal Length toggle.
- Add Solve Lens Distortion toggle.
- Hide Per-Frame from the Input Objects panel.
- First found Collection is treated as active Collection.
- Add button adds Lines when Camera is selected.
- Do not add the current frame list to the Root/User Frame List in the Solver UI.
- Bundle Tools
- Improve accuracy of Triangulate Bundle tool.
- Add Z-Depth Tools
- Improve Screen-Space Rig Bake tool (by @bpatchasaheb).
- General Tools
- Fix un-parenting of objects when the object has no keyframes (
mmSolver > General Tools > Unparent to World
tool). - Add new node types to 'Remove Solver Nodes' tool.
- Fix un-parenting of objects when the object has no keyframes (
- Attribute Tools
- Smooth Keyframes - Remove up/down arrows from "Width" widget.
- Camera Calibration tool.
- Now uses mmImagePlane (not Maya image plane) by default.
- Improved visual display (with new
Line
nodes). - Can use more than 2 Markers to define lines, with lens distortion. Use the Subdivide Line tool to add more Markers.
- 3DEqualizer "Copy/Export 2D Tracks" tools updated to remove use of 'First Frame is Frame' value.
- Also available on 3DEqualizer ScriptDB.
- Core Solver Features and Performance:
- (#106) Solve Lens Distortion
- (#114) MM Scene Graph - Use In-Memory Representations of Bundles and Cameras.
- (#144) Add OpenMVG.
- (#174) Add Ceres Solver.
- Solver now uses "Cauchy" loss robustness mode to reduce the effect of (very) bad data in a solve. Bad data has less of an effect on the final solve.
- Add evaluations per-second ("evals/secs") at the end of each solve in the Output Window.
- Terminal/Output Window text is now easier to read and not so verbose by default.
- You can turn on "Verbose" logging in the Solver UI to get output similar to the default in previous releases.
- MM Scene Graph
- Parity of solve results with both MM Scene Graph and Maya DAG.
- Multi-frame static/animated attribute solving
- Lens distortion
- Markers enabling/disabling during frame range in single solve.
- Parity of solve results with both MM Scene Graph and Maya DAG.
- MM Scene Graph evaluation performance significantly improved between 2 and 20 times faster.
- Display Marker and Attribute Count to the solver output (in the Output Window/Terminal).
- Selection Tools
- (#241) Fix 'Unlink bundle from Marker' when run more than once.
Deprecated features:
- Removed 'Smoothness/Stiffness' from the solver.
- The feature was not working well anyway, so it was removed to avoid confusion.
- Solver UI
- Removed "Legacy" solver tab.
- Removed "Solver Validation" features and check boxes.
- "Evaluate Object Relationships" feature has been removed.
- Removed unneeded menus, and/or legacy features.
Developer (low-level) changes:
- Overall
- Move a lot of the extra directories at the project root into a "./share" directory.
- The
src/mmSolver/adjust/*
file have been split into smaller files (avoiding very high line count), and a README file added. - Add best practices to the ./DEVELOPER.md file.
- Add README.md to the ./python directory to explain parts of the code and the structure.
- Build System:
- Build support for Maya 2023 with C++14 and Python 3.x.
- Better concurrent build support from the same source directory:
- Build scripts generate .ui -> .py files out of the source directory
- Build scripts generate .rcc files of the source directory.
- The build setup does not use "in-source-building".
- however for documentation generation it currently still does need to (PRs welcome).
- Windows build scripts updated to exit as soon as a failure is detected.
- Changed default CMake generator to Ninja (on Windows)
- (#243) By default all third-party dependencies will be auto-downloaded and compiled.
- (#150) Refactor CMake Build System
- (#167) Update to C++11 Standard
- (#149) Remove Qt from Build Dependency
- (#172) Add Lens Distortion Plug-in Kit (LDPK)
- (#174) Add Google Ceres Solver.
- (#144) OpenMVG library is now included inside mmSolver
- CMinpack is now compiled and linked as static library.
- Add use of Rust Programming Language and Rust Package Manager Cargo Crates.
- CXX is used for C++ compatiblity layer.
- Rust is not a required runtime dependency.
- CI/CD
- Use
Clang Tidy
to reformat C++. - Use
Black
to reformat Python code. - Set up GitHub Actions to automatically check and en...
- Use
mayaMatchMoveSolver-v0.4.0.beta1
This version of mmSolver is for testing.
This is a feature complete release of the upcoming v0.4.0 release of mmSolver, but may contain some bugs.
The beta 1 release focuses on cleaning up the Solver UI, fixing bugs and improving build workflows.
Features / Fixes / Changes
The main changes in this release:
- (#243) By default all third-party dependencies will be auto-downloaded and compiled
- Added "Set Object Colour" tool to set wireframe colours of objects quickly and easily.
- Added "Save Lens File tool" tool to save Lens nodes in Maya as .nk files.
Fixes / Changes:
- Solver UI
- Removed "Solver Validation" features and check boxes.
- Removed "Evaluate Object Relationships" feature.
- Removed unneeded menus.
- The "Scene Graph" check box has been removed - it's no longer needed.
- The MM Scene Graph is now tried and if it fails, we fall back to Maya DAG.
- Terminal/Output Window text is now easier to read and not so verbose by default.
- You can turn on "Verbose" logging in the Solver UI to get output similar to the default in previous releases.
- Solver now uses "Cauchy" loss robustness mode to reduce the effect of (very) bad data in a solve. Bad data has less of an effect on the final solve.
- Improved Camera Solver algorithm to ensure the maximum number of frames are solved that are possible.
Developer (low-level) changes:
- The OpenMVG library is now included inside mmSolver
- The build setup does not* use "in-source-building".
-
- however for documentation generation it currently still does need to (PRs welcome).
-
Known Problems
- Markers are not distorted by Lens Distortion in Maya 2023.
- There are lens distortion update issues in the Maya viewport with Markers and Lines node types.
- The Solver acts strangely and doesn't solve correctly when the camera's "Film Fit" is set to anything other than "Horizontal".
- Compatibility with Maya scenes with mmSolver v0.3.x nodes may not work as expected - please report issues.
- The
mmImagePlaneShape
does not work the same as Maya native image planes with the useBackground/hold out options in Viewport 2.0. - Solving Lens Distortion does not act correctly in some cases - this is being actively developed and improved - please report bugs.
Load mmSolver in Maya 2022
To load mmSolver on Maya 2022 you must run the following MEL command:
mmsolver_load
This will load the mmSolver plug-in, and allow you to automatically load the mmSolver plug-in and will ensure it is loaded each time Maya is started.
If you wish to unload mmSolver so it will not be loaded at Maya start-up run the following MEL command:
mmsolver_unload
These new commands were added to work-around the new Maya 2022+ Security preferences and ensure mmSolver will be loaded when it's needed.
Additionally the Python module mmSolver.startup
was added, and allows pipelines to manually load mmSolver with the Python commands:
import mmSolver.startup
mmSolver.startup.mmsolver_startup()
Please report any bugs or suggestions you find in this release here and clearly state the version of mmSolver you are testing.
mayaMatchMoveSolver-v0.4.0.alpha7
DO NOT USE THIS IN PRODUCTION!!!
This version of mmSolver is for testing only!
This is a feature incomplete release of the upcoming v0.4.0 release of mmSolver.
The alpha 7 release brings the ability to solve Lens Distortion with straight 2D Lines in an image, and the ability to solve a camera from scratch, like other 3D tracking software, and a lot more.
Features / Fixes / Changes
The main changes in this release:
- Add
Camera Solver
to the Python API (mmSolver.api.SolverCamera()
), and Solver UI integration. - Add
Load Lens
tool to load lens distortion values from a Nuke .nk file. - Add
Copy/Paste Marker
tool. - Add
Save Marker
tool. - Add
Toggle Object Motion Path
tool. - Add
Import Tracks MM Solver
tool, for 3DEqualizer. - Add
Set Camera Origin Frame
tool. - Add boolean to enable "middle line" for
mmLineShape
node. - Add evaluations per-second ("evals/secs") at the end of each solve in the Output Window.
- Add dedicated
Z-Depth Tools
:- Add
Camera/Object Scale Adjust
tool (by @bpatchasaheb) - Improve
Screen-Space Rig Bake
tool (by @bpatchasaheb) - Add
Create World Controllers
tool (a no-UI version of "Create Controllers")
- Add
Fixes / Changes:
- Solver UI
- Hide "Per-Frame" from the Input Objects panel.
- Remove
Edit
menu. - Improve spacing of Basic and Standard tab widgets.
- Add
Solve Focal Length
toggle. - Add
Solve Lens Distortion
toggle. - First found collection is treated as active collection.
- Add button adds Lines when Camera is selected.
- Calibrate Camera tool can use more than 2 Markers to define lines, with lens distortion.
- Line set up will add Bundle nodes along the "best line fit" of the 2D markers.
- Fix Marker icon, so it's a consistent screen-space size at all times.
- Fix PFTrack .2dt marker import.
- Change Bundle shape so they don't draw on-top of all objects when selected.
- Improve "Triangulate Bundle" tool.
- Do not add the current frame list to the Root/User Frame List in the Solver UI.
- Do not draw the node name for Bundle shapes by default.
- Clean up ImagePlane Attribute Editor UI.
- Set Attribute Details UI - Hide Smoothness/Stiffness.
- Smooth Keyframes UI - Remove up/down arrows from "Width" widget.
- Display Marker and Attribute Count to the solver output (in the Output Window/Terminal).
- Improve Marker, Bundle and Line tool icons with letter to indicate the type of tools.
- Re-arrange menus and shelf icons.
- Lots more...
Developer (low-level) changes:
- Build support for Maya 2023.
- Add README.md to the ./python directory to explain parts of the code and the structure.
- Add best practices to the ./DEVELOPER.md file.
- Use
Clang Tidy
to reformat C++. - Use
Black
to reformat Python code. - Set up GitHub Actions to automatically check and enforce C++ and Python format.
- Update tests and test files.
- Move a lot of the extra directories at the project root into a "./share" directory.
- Add Commands and Python API:
- Add
mmBestFitLine
node. - Add
mmLinePointIntersect
node. - Add
mmConvertImage
command, to convert image files to Maya IFF files. - Add
mmCameraRelativePose
command. - Add
mmCameraPoseFromPoints
command. - Add
mmSolver.utils.imageseq
to the Python API.
- Add
- Lots more...
Known Problems
- Markers are not distorted by Lens Distortion in Maya 2023.
- There are lens distortion update issues in the Maya viewport with Markers and Lines node types.
- The Solver acts strangely and doesn't solve correctly when the camera's "Film Fit" is set to anything other than "Horizontal".
- Compatibility with Maya scenes with mmSolver v0.3.x nodes may not work as expected - please report issues.
- The Viewport 2 "MM Renderer"
- Aliasing problems and does not allow changing the "mode" of the viewport.
- The
mmImagePlaneShape
does not work the same as Maya native image planes with the useBackground/hold out options in Viewport 2.0.
- Solving Lens Distortion does not act correctly in some cases - this is being actively developed and improved - please report bugs.
Load mmSolver in Maya 2022
To load mmSolver on Maya 2022 you must run the following MEL command:
mmsolver_load
This will load the mmSolver plug-in, and allow you to automatically load the mmSolver plug-in and will ensure it is loaded each time Maya is started.
If you wish to unload mmSolver so it will not be loaded at Maya start-up run the following MEL command:
mmsolver_unload
These new commands were added to work-around the new Maya 2022+ Security preferences and ensure mmSolver will be loaded when it's needed.
Additionally the Python module mmSolver.startup
was added, and allows pipelines to manually load mmSolver with the Python commands:
import mmSolver.startup
mmSolver.startup.mmsolver_startup()
Please report any bugs or suggestions you find in this release here and clearly state the version of mmSolver you are testing.
mayaMatchMoveSolver-v0.4.0.alpha6
DO NOT USE THIS IN PRODUCTION!!!
This version of mmSolver is for testing only!
This is a feature incomplete and buggy release of the upcoming v0.4.0 release of mmSolver.
The alpha 6 release focuses on usability of various tools and features in mmSolver, including the mmSolver image plane (mmImagePlane), the "MM Scene Graph", the "Camera Context Menu", and other improvements and fixes (see below).
Load mmSolver in Maya 2022
To load mmSolver on Maya 2022 you must run the following MEL command:
mmsolver_load
This will load the mmSolver plug-in, and allow you to automatically load the mmSolver plug-in and will ensure it is loaded each time Maya is started.
If you wish to unload mmSolver so it will not be loaded at Maya start-up run the following MEL command:
mmsolver_unload
These new commands were added to work-around the new Maya 2022+ Security preferences and ensure mmSolver will be loaded when it's needed.
Additionally the Python module mmSolver.startup
was added, and allows pipelines to manually load mmSolver with the Python commands:
import mmSolver.startup
mmSolver.startup.mmsolver_startup()
Features / Changes
The main changes in this release:
- (#173) mmImagePlane
- Add
first frame
attribute to control frame offset. - Image frame cache uses a minimum size of 99.
- Add exposure, gamma, color gain, and alpha gain attributes to control the image color correction.
- Add 'image load enable' attribute to disable loading images.
- Add 'camera size' HUD to image plane.
- Add
Visible in Camera Only
checkbox, to force the image plane to hide when not looking through the camera. - Performance improvement to stop image plane triggering refresh when it`s not needed.
- Fix bug when more than one image plane is created.
- Add multiple image sequence attribute 'slots' to allow proxy images to be switched between quickly.
- Default image plane depth is now much farther from camera by default.
- General usability improvements.
- Add
- Solver UI
- Fix
Per-Marker
andSpan-Frames
not being 'remembered' when re-opening the UI. - Detects when the
mmSceneGraph
cannot be used and errors before a solve can start.
- Fix
- Improve 'Camera Context Menu' usability.
- Rename
Node Context Menu
toCamera Context Menu
. - Add icon to Camera Context Menu.
- Rename
- MM Lines can now be subdivided to any level of detail and subdivision uses the user's Marker selection for selective refinement.
- 'Camera Calibration' tool-set now uses mmImagePlane (not Maya image plane)
- (#241) Fix 'unlink bundle from Marker' when called more than once.
- Add new node types to 'Remove Solver Nodes' tool.
- Fix unparenting of objects when the object has no keyframes (
mmSolver > General Tools > Unparent to World
tool). - Fix build/install issue with
cminpack
library symlink (Linux only).
Developer (low-level) changes:
- Add
mmSolver.api.filter_image_plane_nodes()
function. - Add
mmSolverSceneGraph
command to detect an invalid scene graph with the use of mmSceneGraph. - Add
mmLensEvaluate
hash output value.- Used to uniquely define when lens distortion is unique or has changed.
- Printing the same messages to the viewport is reduced to avoid spamming the user and slowing down the Maya refresh-rate.
- Add
mmSolver.utils.imageseq
module to evaluate image sequences. - Add mmImagePlanes to
mmSolver.api.get_object_type()
function. - Add lenses to
mmSolver.api.get_object_type()
function. - Upgrade Lens Distortion Plug-in Kit from v2.4 to v2.7 - no visible changes will occur to users.
Known Problems
- The Solver acts strangely and doesn't solve correctly when the camera's "Film Fit" is set to anything other than "Horizontal".
- Compatibility with Maya scenes with mmSolver v0.3.x nodes may not work as expected - please report issues.
- The Viewport 2 "MM Renderer"
- Aliasing problems and does not allow changing the "mode" of the viewport.
- The
mmImagePlaneShape
does not work the same as Maya native image planes with the useBackground/hold out options in Viewport 2.0.
- Marker shape nodes change size when the marker depth or camera focal length is adjusted.
Please report any bugs or suggestions you find in this release here and clearly state the version of mmSolver you are testing.
mayaMatchMoveSolver-v0.4.0.alpha5
DO NOT USE THIS IN PRODUCTION!!!
This version of mmSolver is for testing only!
This is a feature incomplete and buggy release of the upcoming v0.4.0 release of mmSolver.
The alpha 5 release improves the mmSolver image plane (mmImagePlane) by ensuring a new shape node to control the display of the textured image plane in wireframe and shaded modes.
To help the mmSolver image plane workflow a Camera Node Context has been added to the shelf (button "NdCtx") which will dynamically provide access to the active camera, image planes and lens distortion "layers" - including common options.
Load mmSolver in Maya 2022
To load mmSolver on Maya 2022 you must run the following MEL command:
mmsolver_load
This will load the mmSolver plug-in, and allow you to automatically load the mmSolver plug-in and will ensure it is loaded each time Maya is started.
If you wish to unload mmSolver so it will not be loaded at Maya start-up run the following MEL command:
mmsolver_unload
These new commands were added to work-around the new Maya 2022+ Security preferences and ensure mmSolver will be loaded when it's needed.
Additionally the Python module mmSolver.startup
was added, and allows pipelines to manually load mmSolver with the Python commands:
import mmSolver.startup
mmSolver.startup.mmsolver_startup()
Features / Changes
The main changes in this release:
- (#106) Bug fixes and minor performance improvements.
- Add more 3DEqualizer lens distortion models onto a node
mmLensModel3de
.3DE Classic
3DE4 Radial Degree 4
3DE4 Anamorphic Degree 4
- Multiple lens models are dynamically set with
mmLensModel3de
node.
- Disabled lenses are ignored by the solver.
- Ignore lens models when lens distortion disabled on a camera.
- Added 'Pass-through' lens model nodes (
mmLensModelPassthrough
)
- Add more 3DEqualizer lens distortion models onto a node
- (#173) Add proper mmImagePlane shape node.
- Add
mmImagePlaneShape
with better display - Add HUD to the image plane with resolution, pixel aspect ratio and image aspect ratio.
- The
NdCtx
shelf button provides a dynamic menu to improve workflow and find nodes easily. - Add file browser to prompt user for image sequence.
- Enable image sequence caching by default.
- Add
- An installation issue on Linux was (manually) fixed for this release in the provided Linux binaries.
- Deleted
./lib/libcminpack.so.1
. - Rename
./lib/libcminpack.so.1.3.6
to./lib/libcminpack.so.1
.
- Deleted
Developer (low-level) changes:
- Add
mmLensModelBasic
node was removed. - Add
mmReadImage
to query image resolution. - Moved some dynamic attributes on
mmImagePlaneTransform
tommImagePlaneShape
. - Add
mmSolver.api.Lens.get/set_enable()
methods. - Add methods to get/set connected nodes for
mmSolver.api.Lens()
Known Problems
- Possible Linux install problems
libcminpack.so.1: cannot open shared object file: No such file or directory
- Rename file
./lib/libcminpack.so.1.3.6
to./lib/libcminpack.so.1
in the installation directory.
- Rename file
- If MM Scene Graph detects an incompatible solve it will error, but will result in a broken Maya session (restart Maya to fix the issue).
- This will be addressed in the next alpha release.
- The Solver acts strangely and doesn't solve correctly when the camera's "Film Fit" is set to anything other than "Horizontal".
- Compatibility with Maya scenes with mmSolver v0.3.x nodes may not work as expected - please report issues.
- The Viewport 2 "MM Renderer"
- Aliasing problems and does not allow changing the "mode" of the viewport.
- The
mmImagePlaneShape
does not work the same as Maya native image planes with the useBackground/hold out options in Viewport 2.0.
- Marker shape nodes change size when the marker depth or camera focal length is adjusted.
Please report any bugs or suggestions you find in this release here and clearly state the version of mmSolver you are testing.
mayaMatchMoveSolver-v0.4.0.alpha4
DO NOT USE THIS IN PRODUCTION!!!
This version of mmSolver is for testing only!
This is a feature incomplete and buggy release of the upcoming v0.4.0 release of mmSolver.
This release offers substantial performance increases (between 2 to 20 times faster!) with the "MM Scene Graph" mode, and solving of Lens Distortion (static and animated) attributes also supported.
Visualizing Lens Distortion is also easier than alpha3, with a new Camera Tools > Create Image Plane
tool which includes a nicer Attribute Editor UI for the (new) mmImagePlaneTransform
node.
The Standard solver's "Root Frames" feature has finally been implemented as originally envisioned. "User Frames" and "Root Frames" are available with an automatic calculation of the needed in-between frames for a stable solve with the given Markers. the options to compute the root frames are exposed to adjust the speed/accuracy of the solve. The defaults should provide a good solve "out of the box", without users needing to add user frames.
Load mmSolver in Maya 2022
To load mmSolver on Maya 2022 you must run the following MEL command:
mmsolver_load
This will load the mmSolver plug-in, and allow you to automatically load the mmSolver plug-in and will ensure it is loaded each time Maya is started.
If you wish to unload mmSolver so it will not be loaded at Maya start-up run the following MEL command:
mmsolver_unload
These new commands were added to work-around the new Maya 2022+ Security preferences and ensure mmSolver will be loaded when it's needed.
Additionally the Python module mmSolver.startup
was added, and allows pipelines to manually load mmSolver with the Python commands:
import mmSolver.startup
mmSolver.startup.mmsolver_startup()
Features / Changes
The main changes in this release:
- Parity of solve results with both MM Scene Graph and Maya DAG.
- Multi-frame static/animated attribute solving
- Lens distortion
- Markers enabling/disabling during frame range in single solve.
- MM Scene Graph evaluation performance significantly improved between 2 and 20 times faster.
- (#106) Solving and evaluation lens distortion is now possible in both "Maya DAG" and "MM Scene Graph" modes.
- (#173) The
Camera Tools > Create Image Plane
tool creates a setup with an Attribute Editor image sequence and browse button. - (#239) Support for loading PFTrack .2dt/.txt files with the Load Markers tool (ported from v0.3.16 release).
- User and Root frames calculation has been enhanced to provide better solve stability by default without as much user input.
Developer (low-level) changes:
- The
src/mmSolver/adjust/*
file have been split into smaller files (avoiding very high line count), and a README file added. - More tests for MM Scene Graph/Maya DAG (to see differences)
- Stability improved for the MM Scene Graph library when solving multi-frame solves.
- Windows build scripts updated to exit as soon as a failure is detected.
- Attribute solver "delta" values can be calculated (internally) with different precision for different attribute types.
- "mmSolver.utils.nodeaffects" module supports mmLensModel nodes.
- Add attribute min/max values for mmLensModel3deClassic node - adds a slider to the AE, and provides better solver stability.
- (17abb6f) Fixed bug in function
mmSolver.utils.camera.get_image_plane_shapes_from_camera()
. - Support for C++
mmSolver::Attr
class to adjust non-DAG nodes (such as lens distortion nodes). - Change spacing of UI components of Solver UI.
- Print attribute names when mmSolver finishes and "verbose" flag is enabled.
- Upgrade CXX to v1.0.66 (no change in functionality for mmSolver).
- Make sure calculated lens undistortion that produce NaN will not affect Markers/deformer/transforms.
- (41338c1) Fix MM Scene Graph bug when non-default near-clipping value was used for a camera node.
- (2eb31fc) Fix MM Scene Graph evaluation of bundle/markers, when Markers disable/enable during solve.
- Better concurrent build support from the same source directory:
- Build scripts generate .ui -> .py files out of the source directory
- Build scripts generate .rcc files of the source directory.
- Changed default CMake generator to Ninja (on Windows) https://ninja-build.org/
- ... other bug fixes and improvements to the build system experience.
Known Problems
- If MM Scene Graph detects an incompatible solve it will error, but will result in a broken Maya session (restart Maya to fix the issue).
- This will be addressed in the next alpha release.
- The Solver acts strangely and doesn't solve correctly when the camera's "Film Fit" is set to anything other than "Horizontal".
- Compatibility with Maya scenes with mmSolver v0.3.x nodes may not work as expected - please report issues.
- The Viewport 2 "MM Renderer" has aliasing problems and does not allow changing the "mode" of the viewport.
- Marker shape nodes change size when the marker depth or camera focal length is adjusted.
- "Live" image plane is a mesh type:
- The image plane will be hidden when mesh geometry is hidden.
- The image plane displays a wireframe when "Wireframe on Shaded" is enabled.
Please report any bugs or suggestions you find in this release here and clearly state the version of mmSolver you are testing.
mayaMatchMoveSolver-v0.3.16
Release v0.3.16 provides support for Maya 2022 (Python 3 - #217), support for importing PFTrack .txt/.2dt
files with the Load Markers tool (#239), as well as bug fixes and minor changes.
For installation with Maya 2022, please see the special section in the INSTALL.md file.
Download the archive file for your operating system and Maya version, and follow the INSTALL.md instructions.
New Features
- (#217) Maya 2022 (Python 3) support is now provided
- Make sure to load the mmSolver plug-in manually in Maya 2022, because startup scripts no-longer work.
- See INSTALL.md file. for more details.
- (#239) Loading 2D Trackers exported from PFTrack with the native
.txt/.2dt
files is now supported.- Note: the PFTrack
.txt/.2dt
files are resolution dependent and do not support much of the advanced features of the Load Markers tool.
- Note: the PFTrack
Bug fixes
- (ab1c61d) Fix "node affects relationships" when calculating how Markers and Bundles affect each other.
- (621f8a5) Fix possible minor Solver UI marker bug.
Changes
- (#237) Change default marker group depth from 10 to 2 units from camera.
- (7f4aea6) Darken image plane file for Camera Calibration.
- This is to allow the user to see the lines/locators on top of the image.
Developer Notes
- As a result of the Maya 2022 security preferences, a new Python module
mmSolver.startup
has been created which contains most of the functions in theuserSetup.py
file responsible for loading mmSolver components in previous releases. This new module should be called to load mmSolver components. For versions of Maya before Maya 2022 theuserSetup.py
is maintained for backwards compatibility, however the functions are deprecated.
Known Issues
- Documentation is not included in the Linux build of mmSolver for v0.3.16. The online documentation is available instead.
- As of v0.3.15 mmSolver is no longer supported on MacOS, and per-compiled versions are not provided.
- Evaluation
- Solver engine can become slow with many attributes.
- The Maya viewport is refreshed during solving to force Maya to evaluate all nodes in the solve. This causes slower performance (e.g. 6 seconds verses 30 seconds), but ensures accurate solver results. Users may wish to turn this feature off in the
Solver UI > Edit > Refresh Viewport
check box.
- Maya 2016
- Maya 2016 is unsupported by the mmSolver project, we are not able to provide testing for Maya 2016.
- On Linux has problems with the new user preferences UI - the release for Maya 2016 is available for download, with this limitation.
- the Solver UI disables selection of the Attributes - the cause is unknown.
- The
mmSolverType
command raises an error with certain flags on Maya 2016 for an unknown reason. This problem is specific to Maya 2016, the same command works on Maya 2017+.
- Compatibility
- New v0.3.0 default values will not be used until a new Collection is created. Delete your previous Collection and create a new Collection using the
Solver UI > File > New Collection
menu item.
- New v0.3.0 default values will not be used until a new Collection is created. Delete your previous Collection and create a new Collection using the
- Development/Building:
- The test suite fails on 3 different solver tests, due to a deviation that is too high, this is intentional and will be fixed in a future version.