Skip to content

Releases: david-cattermole/mayaMatchMoveSolver

mayaMatchMoveSolver-v0.4.3

22 Jan 12:55
Compare
Choose a tag to compare

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

08 Jan 12:00
Compare
Choose a tag to compare

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)
    • Draw manipulators on top of objects.
    • Draw Maya native and MM ImagePlanes "behind" object wireframes, for a "Hidden Line" effect (7219f66)
    • Maya Viewport 2.0 Anti-Aliasing attributes are used for MM Renderer (58a5394)
    • Add "Frei-Chen" edge detection algorithm (475ef9d)

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

09 Nov 10:18
Compare
Choose a tag to compare

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

06 Nov 09:51
Compare
Choose a tag to compare

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?

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
  • Add Z-Depth Tools
  • 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.
  • Attribute Tools
  • 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.
  • 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.
    • 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...
Read more

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.