Releases: david-cattermole/mayaMatchMoveSolver
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.
mayaMatchMoveSolver-v0.4.0.alpha3
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 contains fixes for Maya 2022 / Python 3, a new (2D) "Line" object type and an accurate "live" image plane to preview 3DEqualizer lens distortion.
The 2D Line is intended to be used to align to straight edges in a plate and then be used to solve lens distortion without any 3D (Bundle) information.
The lens solving part is not yet implemented, however the 2D Line can be used to visualise the line while you manually adjust the lens attributes.
This new 2D Line object is also integrated into the Camera Calibration set up (first introduced in v0.3.15).
The "live" image plane has been improved with a traditional "baked" (non-editable) image plane option and can be toggled with an attribute on the transform node (see the "Extra Attributes" roll out).
The lens distortion effects on the live image plane are accurate to the 3DE "classic" lens distortion model, so values from mmSolver can be (manually) typed into 3DEqualizer, Nuke or Natron and produce the same lens distortion effects.
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:
- Improves support for Maya 2022 / Python 3, especially for these tools:
- Smooth Keyframes tool.
- Change Rotation Order (Morgan Loomis - ML Tools)
- User Preferences save correctly.
- Introduces the
Line
shape node,mmSolver.api.Line()
API object and related tools - The "live" image plane distortion plane accurately matches 3DEqualizer lens distortion.
- The image plane loads a default image when created.
- Improved visual display of Camera Calibration setup (with new
Line
nodes). - Added horizon line and axis dome presets for
mmSkyDome
shape node.
Developer (low-level) changes:
- Marker are now assumed to always be under a camera with the translate X/Y values representing the position on the image plane in the range -0.5 to +0.5.
- Parity between MM Scene Graph and Maya DAG 3D transform reprojection methods.
- Internal tests have been upgraded - most tests have been improved and tested.
- Changed structure of C++ code.
- Build system improvements to allow multiple Maya versions and platforms to build from the same project directory.
.ui
to.py
file generation is still generated in the source tree which creates issues.
Known Problems
- Compatibility with Maya scenes with mmSolver v0.3.x nodes may not work as expected - please report issues.
- Solving with the new "Scene Graph" option in the Solver UI will cause a crash if solving with the "Standard" tab.
- Marker nodes may not update position in the Viewport when moving the camera - this is a Maya playback cache/viewport update bug.
- 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.
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.alpha2
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 version now supports Linux and Windows, and (mostly automatic) start-up on Maya 2022.
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
The following features are included in various levels of completion...
Compatibility:
- #217 - Python 2.7 and 3.x and Maya 2022+ Support
Solver Features and Performance:
- #106 - Solve Lens Distortion
- #114 - Core Solver - Use In-Memory Representations of Bundles and Cameras
- #144 - Core Solver - Add libmv solver
- #174 - Core Solver - Add Ceres Solver
- #175 - Custom Marker and Bundle Transform Nodes
Build System:
- #149 - Remove Qt from Build Dependency
- #150 - Refactor CMake Build System
- #167 - Update to C++11 Standard
- #172 - Add Lens Distortion Plug-in Kit (LDPK) to Build System
User Interface and Viewport:
- #21 - Maya Plugin - Create a Shape Node for Markers
- #67 - Maya Plugin - Create a Shape Node for Bundles
- #120 - Maya Tool - Add Marker Line
- #216 - Maya Plugin - Create Sky Dome Viewport Visualiser Node
- #231 - Viewport Renderer for MatchMove
Known Problems
- Compatibility with Maya scenes with mmSolver v0.3.x nodes may not work as expected - please report issues.
- Solving with the new "Scene Graph" option in the Solver UI will cause a crash if solving with the "Standard" tab.
- Marker nodes may not update position in the Viewport when moving the camera - this is a Maya playback cache/viewport update bug.
- The created Image Plane polygon does not contain an image or shader at all - this will be added in a future release.
- 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 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-alpha.1
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 following features are included in various levels of completion...
Compatibility:
- #217 - Python 2.7 and 3.x and Maya 2022+ Support
Solver Features and Performance:
- #106 - Solve Lens Distortion
- #114 - Core Solver - Use In-Memory Representations of Bundles and Cameras
- #144 - Core Solver - Add libmv solver
- #174 - Core Solver - Add Ceres Solver
- #175 - Custom Marker and Bundle Transform Nodes
Build System:
- #149 - Remove Qt from Build Dependency
- #150 - Refactor CMake Build System
- #167 - Update to C++11 Standard
- #172 - Add Lens Distortion Plug-in Kit (LDPK) to Build System
User Interface and Viewport:
- #21 - Maya Plugin - Create a Shape Node for Markers
- #67 - Maya Plugin - Create a Shape Node for Bundles
- #120 - Maya Tool - Add Marker Line
- #216 - Maya Plugin - Create Sky Dome Viewport Visualiser Node
- #231 - Viewport Renderer for MatchMove
Known Problems:
- Microsoft Windows is currently the only supported operating system - Linux (CentOS 7) support will be added in a newer version.
- Compatibility with Maya scenes with mmSolver v0.3.x nodes may not work as expected - please report issues.
- Solving with the new "Scene Graph" option in the Solver UI will cause a crash if solving with the "Standard" tab.
- Marker nodes may not update position in the Viewport when moving the camera - this is a viewport update bug.
- The created Image Plane polygon does not contain an image or shader at all - this will be added for final release.
- 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 camera focal length is adjusted.
MAYA 2022 NOTE: This has successfully been opened and loaded in Maya 2022 with (the default) Python 3 mode enabled, however mmSolver shelves and menus will not be created by default (it's a known bug #217). To load the mmSolver shelves and menus each time Maya opens, you must manually open and run the contents of mayaMatchMoveSolver-0.4.0-maya2022-linux/scripts/userSetup.py
in the Maya Script Editor. This should generate the shelves and menus the same as previous versions of Maya.
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.15
Release v0.3.15 provides a new Camera Calibration tool (currently beta), Convert Rotation Order tool (from Morgan Loomis - ML Tools) tool, a Blender add-on to Copy/Export 2D Markers, support for 3DEqualizer4 Release 7 (#225), as well as bug fixes and minor features.
Download the archive file for your operating system and Maya version, and follow the INSTALL.md instructions.
New Features
- (#225) Support for 3DEqualizer4 Release 7 (Python 3), while keeping the backwards compatibility.
- Also available on 3DEqualizer ScriptDB.
- (#201 #233) Integrated Change Rotation Order tool from the fantastic Morgan Loomis - ML Tools).
- Thanks to @ktonegawa!
- (#62) Blender Add-On to Copy and Export 2D Marker data from Blender to Maya.
- See the blender Add-on installation documentation for more details (including the limitations).
- (#227) The Convert to Marker tool allows Bundle positions take on the 3D location of the input transform when Converting a 3D transform to a Marker.
- Available on the shelf/menu
mmSolver > General Tools > Convert Rotation Order...
.
- Available on the shelf/menu
- (#121) Camera Calibration tool to calculate camera line ups (translate, rotation and focal length) from parallel 2D lines.
- Inspired by fSpy and the fSpy project.
- This tool is currently Beta because it lacks displaying 2D lines and a user-interface for the user, however the tool is functional.
- (#230) Project Marker on Mesh (Ray-Cast) now has the ability to rotate the bundle in various ways.
Bug fixes
- (#236) When Cameras are pasted into 3DEqualizer the playback frame range is reset to the full frame range.
- (#232) Fixed solving single frames of static attributes.
- Thanks to @ktonegawa!
- (#229) Fixed the Legacy solver tab (although it is deprecated and will be removed in future versions - it is recommended to use the Basic or Standard tabs).
- (#228) Fixed errors when trying to re-parent nodes with locked transform attributes.
Changes
- Bundles now display Rotate, Scale b and Translate attributes in the channel box.
- This change was made for #230.
Developer Notes
- Now requires CMake 3.15+ to build, for support of packing the Blender Add-On .zip file via CMake.
Known Issues
- 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.