Table of Contents
Release Date #
July 2nd, 2021
Installers #
- Windows: Download 4.03 (.exe)
- OS X: Download 4.03 (.pkg)
4.036 Hotfix #
December 6th, 2021
Bug Fixes #
- Fix for blank resource prompt on macOS
- Fix for STL loader generating incorrect tangents with Mikk setting
Python Fixes & Improvements #
Updated Python API Reference: https://marmoset.co/python/reference.html
- rayTraceDenoiseStrength was incorrectly set to type str in the documentation, it’s now set to float
- mset.CameraObject.postEffect.toneMappingMode now includes ACES, our documentation has been updated to reflect this
- Callbacks in mset.callbacks now report errors that occur inside of them
- SceneObjects can now be compared, so they’re easier to sort, check for equality, etc
- Added subroutine name to mset.MaterialSubroutine
- Fixed get/setStoreItem not fetching store items
- Fixed mset.UIDrawer where the drawer could disappear when closed
- mset.SceneObject has a new member variable – uid, a unique ID for that scene object
- mset.Image now includes sRGBToLinear and linearTosRGB conversion functions
- Fixed python skyboxes not updating their background brightness
- mset.setSelectedObjects is now available, making it easier to select objects in the scene like texture projects
4.034 Hotfix #
August 10th, 2021
Bug Fixes #
- Fixed a crash that would occur when copying and pasting a paint layer in a mask stack.
- The Strict Normals option in the Subsurface Scattering and Subsurface Volumetric shading models has been resurrected, resolving shading errors in certain scenes.
- Fixed a crash when grouping layers if Viewport Quality was set to Fast in a texture project.
- Fixed a crash that could happen when duplicating a mesh whose material used displacement.
- Fixed a crash that could happen when applying a material that used displacement.
- Fixed a crash that occurred when using different blend modes in a procedural mask layer in a specific scene.
- Fixed a crash that was caused by a corrupted/truncated scene file. Truncated or partially saved scenes can now be loaded in some instances, but data loss can be expected in these cases.
- Fixed a crash that could happen when hitting cancel before a missing file finished downloading in the Resource Locator.
- Fixed a crash that could happen on Mac when there was a missing material resource.
- Fixed an undo error that could happen with scenes that contain two or more texture projects.
- Grouping a layer that is inside a group with a mask will no longer send the layer to the mask stack.
- Clicking and dragging in the Color Picker window updates the values in real-time for lights and other miscellaneous colors again.
- Clicking and dragging in the Sky Light editor updates the values for lights in real-time again.
- The Polygon selection tool now works better when making thin, triangular selections.
- The default camera is now assigned to the render camera if the previous renderable camera is deleted, ensuring there is always a renderable camera.
- It should no longer be possible to click the [X] button to close the application while resizing the window.
- Layer thumbnails now update more reliably in texture projects.
- Fixed an issue that could cause mesh transforms to be altered on undo.
- Improved performance during animated playback in a specific scene that caused warnings in the animation importer.
- Older scenes with animation data will be updated on load.
- Modal window dropdowns should now work on Mac.
- Fixed a problem on Mac where dragging and dropping materials wasn’t creating an undo state.
Python #
- Documentation fixes for mset.BakerObject, mset.TextureProjectLayer, mset.BakerObject.
- Fixes for mset.CameraObject field of view, lens, and postEffect settings.
- Added support for mset.SkyBoxObject child brightness, control over the background color, and mode of the skybox.
- Fixed mset.BakerObject bindings for Ambient Occlusion (2). Added support for binding BakerObjects to TextureProjectObjects.
- Various bug fixes for mset.TextureProjectObject outputs, layers, and corrected examples.
- Fixed RenderObject denoise fade and occlusion size settings.
4.03 Changelog #
July 2nd, 2021
Rendering #
- Real-time denoising is now available for Nvidia RTX GPUs.
- Denoising now features additional configurable options to define whether to use the CPU or GPU, and set the quality of the denoising.
- Real-time GPU denoising has been enabled for animation playback as well.
- New high-quality Denoising mode that uses pre-filtering and a special mode for glossy refractive materials and mirror-like surfaces. Note: the high-quality mode is only available with CPU denoising.
- The Refractive Index (or how intense the distortion is) can now be controlled independently from Reflectivity. Disable Derive Refractive Index from Reflectivity to control this value directly.
- The Shadow Catcher object now softly fades when used with Fog objects and the Depth of Field effect.
- Fog has been updated to better account for light attenuation and now accounts for changes in scene scale.
- The default Fog settings have been updated to create a more natural result.
- The Shadow Catcher object now renders as expected in the Alpha Mask Render Pass and when Transparency is enabled for final renders in raster mode.
- Normal mapped low poly meshes used with Subsurface Scattering no longer causes an increase in the normal map intensity.
- Black edge artifacts due to extreme normal map values have been improved.
- Highlight values are now correct when using 16-bit file formats for final renders.
- GGX reflections with higher roughness values now look better.
- Absorption and Scatter in Subsurface Scattering now works more consistently with different scene scales.
- Adjusting texture tiling when used with transparency now updates the shadowed result when using ray tracing.
- Bokeh shapes work in final renders again.
- The depth of field effect now blurs the wireframe.
- Reduced instances where render accumulation resets unnecessarily, such as when scrolling in a window.
- Accumulation now resets more reliably when it should.
- The watermark renders in videos again.
- Text boxes for raster settings can no longer be adjusted when these controls are disabled/grayed out.
- Anisotropic reflections no longer get overly bright at acute angles.
- Meshes without vertex color data will no longer render with rainbow colors when Vertex Color is enabled.
- Displacement should no longer reset on undo.
- Fixed a crash on Mac when rendering images with large sample counts or videos with many frames.
- Fixed a rendering issue on Mac when using transparent materials.
- Fixed an issue that caused black reflections on certain parts of an animated mesh.
- Fixed a crash when rendering with uncommon image resolutions.
Texturing #
Tools
- We’ve added new selection tools which are available when working with Paint Layers: Lasso, Polygon, Face, UV Island, and Object.
- Added a Brush Warp parameter to create random distortion.
- Added a Tip Contrast setting to adjust the contrast of the Brush texture.
- When the Brush Material is set to Fit to Brush, we’ve added a checkbox to enable Sprite Sheet Material. This causes the material textures to use random variations to match the Brush Tip Texture.
- Scattering has been improved and should no longer scatter onto the wrong areas when using large brushes.
- All brush settings are now pre-cached, reducing delays when initially adjusting various brush parameters.
- Fixed an issue that would cause pixelation in the brush stroke when Hardness was set to 1.
- The Fill and Gradient Tools now use a randomized dither seed, preventing build-up of dithering artifacts.
- The Brush preview no longer draws behind the mesh when using the Sticker Projection mode.
- The Gradient Tool no longer shows GUI for all possible Project Maps.
- The Gradient Tool’s Knurl and Diamond mode now tile correctly when used in Canvas.
- We fixed a bug that caused image quality degradation to unselected areas with the Gradient Tool.
- We fixed a bug that caused corrupt data to temporarily draw into the emissive map in texture projects.
Layers and Groups
- Layers and Groups can be dragged onto a mesh in the viewport to assign a Color Selection based on the Material ID.
- Layers, Masks, and Groups can now be merged to Paint Layers.
- All layer types can now be rasterized to Paint Layers.
- Layers can now be converted to different types. For instance, a Fill Layer can be converted to a Clouds Procedural while retaining any child or Layers or Masks.
- Groups have been reworked to draw the contents below the Group. You can now see the Group’s contents and its Mask Stack simultaneously. The folder icon expands and collapses the contents, while the arrow expands and collapses the Mask Stack.
- Layers and Groups can now be colored to make them easier to organize.
- The selected Layer is now added to a Group upon creation.
- You can now copy and paste Groups, Layers, Layer Settings, and the contents of a Layer’s Mask Stack. You can also copy the contents of a Layer and paste them into an external image editing program.
- Material properties for Fill Layers and the Paint and Fill tools can be copied and pasted as well.
- Brush settings can be copied and pasted too.
- Dirt and Scratch layer types render correctly again. 4.01 introduced a bug that caused the compositing to be incorrect. Texture Projects created in 4.01 and 4.02 may look slightly different now if using these types.
- Curvature processing has been improved, dithering between 127/128 values is now ignored which reduces noise when using the Curvature, Direct, and Scratch Processors.
- Cellular now tiles correctly when the scale is set to 5.
- Clouds and Perlin intensities are better normalized now.
- Normal editing for the Curves and Levels layer types has been disabled, and a Contrast setting has been added to Hue / Saturation.
- A highlight is now shown when dragging a Layer from Masks to the color component slot.
- Dragging a Smart Material to the top of the Layer stack should now place it in the correct position.
- Texture project input maps now automatically reload when changed on disk.
- Right-clicking in the Layers window to add Layers should no longer cause the menu to go off-screen when the cursor is near the screen border.
- Fixed a bug that caused Planar Projection to render with Tri-Planar.
- Paint Layers now always match the resolution set in the Texture Project.
- Fixed a freeze that could happen when duplicating fill layers with full pixel contents.
- Fixed a bug that caused normal maps to be composited incorrectly for Layers in Groups.
- Histogram color values are now correct when loading .mpic format textures.
- Inverting the result of Gradient Layers now produces the correct result.
- Fixed a bug where Groups could prevent Layers from drawing to certain map types.
- Dragging a Material from the Library to a Fill Layer now serializes correctly (solves undo and file save bugs)
- The Gradient Map layer type now produces perceptively correct sRGB values.
Scene #
- We’ve added a tool for lights to click on a mesh and have the light direction update to match the clicked point. This tool has a few modes, it can align the specular highlight to the sample point, or the light direction, or simply aim the light at the point. We’ve added hotkeys to alter common light attributes when using this tool as well, Ctrl+LMB = Brightness, Ctrl+RMG = distance to object, and Ctrl+MMB = adjusts the spot cone.
- We’ve added new selection tools for scene objects as well: Rectangle, Circle, Lasso and Polygon.
- Copy and Paste color values from color boxes. You can paste the color value as hex as well.
- Copy and Paste Objects and Object settings in the Scene window.
- Copy and Paste Material settings from one Material to another. Sub-routine settings can be copied and pasted as well.
- We’ve added a right-click menu to Cut, Copy, and Paste from text boxes.
- You can now copy a texture from one slot to another in the Material Editor and any other area where there is a texture slot. The texture can be pasted into an external image editor as well.
- Save As now remembers the directory your scene is saved in.
- Import Materials With Models is now disabled. This means that Toolbag will no longer import the material values set in your 3D application. This can be enabled in Edit > Preferences.
Meshes & Animation #
- Pivots can now be edited and centered for meshes and groups. To edit pivots, use the Translate or Transform tools and enable Edit Pivot, or press the D key when using those tools.
- File reference objects now retain transformations for their child objects when a file reload occurs.
- Animations now play when the timeline window is not visible in a workspace.
- Custom animation sets are now retained after reloading the mesh file.
- We added a Loop setting to the Model Animation settings. This can be used to prevent the model from snapping to the incorrect position with animations that are not intended to loop.
- Fixed a crash related to manually reloading meshes.
- Materials with animated Displacement values now update the displaced result on playback.
- Changing the Subdivision Geometry Reduction setting now forces the ray tracer to update the mesh data.
- Fixed an issue that was causing geometry artifacts when PNTriangles Subdivision was used with an animated Alembic mesh.
- Fixed an issue that was causing meshes with blendshape data to load inefficiently.
- Joints with non-uniform scaling are now supported.
Baking #
- There is now an option to use Per-Pixel or Per-Vertex Mikktspace tangents.
- Improved the quality of Mikktspace normal maps.
- Improved the quality of ambient occlusion/reduced halo artifact near intersecting objects.
- Ignore Groups works in conjunction with Use Multiple Texture Sets again.
- Fix a bug that caused sections of high poly meshes to be ignored for Material ID bakes when the Multi-Layer PSD option was enabled.
- Maps that have not been baked yet should no longer display a can’t be found error.
- Fixed an error that caused the wrong Tangent Space to be used.
- Roughness and gloss textures now bake correctly from high poly materials.
- Fixed a bug that would cause recursive baking errors if the low poly’s material was using displacement.
- The Skew and Offset windows no longer draw a bad state after undo.
- We fixed an issue where degenerate geometry could cause the application to freeze when baking UV island maps.
- We fixed a bug where adding displacement to the low poly’s material could cause recursive baking errors. Now the pre-displaced mesh is always used for baking.
Tangent Space Handling #
- Tangent Orientation, or the direction of the green channel or Y axis, is now set independently of Tangent Space.
- Tangent Orientation settings are now available in Bake Projects, Texture Projects, and there is a default setting in Preferences.
- Tangent Orientation can be set per texture for Brush Tool, Fill Tool, and Fill Layer Material Properties. When using Reference Materials, it is automatically set.
- Mikk is now the default Tangent Space (this can be changed in Preferences).
Library #
- Assets are now sorted case-insensitively.
- Custom Textures, Skies, Brushes, Materials, Smart Materials, and Smart Masks can be saved to the Library by dragging the files from the operating system to the Library window. This works with multiple files at once.
- Custom Skies can now be saved to the Library via the Library button in the Sky object.
- Custom Scenes can be saved to the Library as well from the File > Export menu.
- We fixed a few cases where searching and tagging assets with colors in the Library could cause crashes.
Python #
- We’ve improved our auto-complete bindings with the addition of type hints across the entire API, taking the guesswork out of writing scripts for Toolbag. Try installing our type package with
pip install mset
. - We’ve exposed more control in the form of our Texture Project python bindings. Every Texture Project Layer has bindings that you can manipulate and control.
- You can now add your own assets to your local library with Python.
- Every setting in your Render object is now accessible.
- You can now control mesh subdivisions and disable/enable hiding meshes from the ray tracer.
- Transforms now have more fine grained control with the addition of matrix manipulation and control over pivots.
- Miscellaneous user interface bug fixes and quality of life improvements, in particular window registration is no longer required.
- Cameras in 4.03 have been simplified to make them much easier to manipulate.
- Toolbag now runs Python 3.9.4 on both Windows and MacOS.
- Environment variables are now accessible to all Python plugins.
- Data can now be easily shared between plugins with Toolbag, with the addition of
mset.getStoreItem(key: str) -> Any
andmset.setStoreItem(key: str, val: Any)
. This means multiple plugins that need to share things like handles can now do so much easier.
Viewer #
- Light Brightness now exports correctly.
- Fog has been updated to match the updated style in Toolbag.
- The Distortion Limit setting in the Refraction shader now exports correctly.
- The Refraction Mask now exports correctly.
- Roughness values are now more consistent between Toolbag and Viewer.
- The Subsurface Scatter effect is now more consistent between Toolbag and Viewer.
- Fixed a bug where using Subsurface Scattering along with Microfiber would cause an invisible mesh. These shading models are not supported simultaneously in Viewer. Microfiber will be automatically disabled in this case.
- Fixed a bug where a camera pointing straight at the scene could cause the Sky background to render incorrectly.
Misc #
- The title bar now displays Untitled when creating a new scene.
- Alt + MMB to pan now consistently updates the active Viewport state.
- Framing selected now works better with split viewports.
- Various undo bugs have been fixed.
- Fixed a crash that could happen if a default monitor was not set.
- Fixed a crash that was caused by the Project Resolution being set to an invalid number in a Texture Project.
- The GUI will no longer draw off-screen when pressing Ctrl+Enter to engage fullscreen mode.
- We fixed an issue where web links from within the application would cause an error if Firefox is your default browser.
- We solved a bug that could cause windows to draw black if collapsed, hidden, and shown in a certain order.
- The Generate Primitives script no longer crashes when exiting with the [X] button or switching workspaces.
Deprecated #
- Windows 7 is no longer supported.
- The Horizon Occlusion setting in the Reflectivity panel is no longer supported.
- The Swirl Vignette feature in the Depth of Field effect is no longer supported.
- UV and Tri-Planar Projection are no longer supported for the Turbulence Layer.