Skip to content

Releases: david-cattermole/mayaMatchMoveSolver

mayaMatchMoveSolver-v0.4.0.beta1

23 Oct 11:25
Compare
Choose a tag to compare
Pre-release

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

30 Aug 13:07
Compare
Choose a tag to compare
Pre-release

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")

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.
  • 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

22 May 09:30
Compare
Choose a tag to compare
Pre-release

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.
  • Solver UI
    • Fix Per-Marker and Span-Frames not being 'remembered' when re-opening the UI.
    • Detects when the mmSceneGraph cannot be used and errors before a solve can start.
  • Improve 'Camera Context Menu' usability.
    • Rename Node Context Menu to Camera Context Menu.
    • Add icon to Camera Context Menu.
  • 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

25 Apr 15:10
Compare
Choose a tag to compare
Pre-release

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)
  • (#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.
  • 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.

Developer (low-level) changes:

  • Add mmLensModelBasic node was removed.
  • Add mmReadImage to query image resolution.
  • Moved some dynamic attributes on mmImagePlaneTransform to mmImagePlaneShape.
  • 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.
  • 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

10 Apr 10:54
Compare
Choose a tag to compare
Pre-release

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

05 Mar 15:49
Compare
Choose a tag to compare

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.

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 the userSetup.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 the userSetup.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.
  • 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

13 Feb 03:52
Compare
Choose a tag to compare
Pre-release

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

30 Jan 03:57
Compare
Choose a tag to compare
Pre-release

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

24 Jan 14:02
Compare
Choose a tag to compare
Pre-release

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

15 Jan 12:40
Compare
Choose a tag to compare

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.
  • (#201 #233) Integrated Change Rotation Order tool from the fantastic Morgan Loomis - ML Tools).
  • (#62) Blender Add-On to Copy and Export 2D Marker data from Blender to Maya.
  • (#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....
  • (#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.
  • (#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.
  • 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.