Release Date #
May 4th, 2022
Installers #
- Windows: Download 4.04 (.exe)
- OS X: Download 4.04 (.pkg)
4.043 Hotfix #
May 24th, 2022
Bug Fixes #
- Added backward compatibility for older material files with index of refraction values.
- Scenes saved in Toolbag 4.03 and older now use the default aperture value for the depth of field effect.
- Fixed a crash that could be triggered by editing the cage in a bake project.
- Fixed a crash that could happen when previewing the result of baked maps.
- Fixed a bug that caused a crash when bake groups did not contain a high poly mesh object.
- Fixed a bug that caused random polygons to bake incorrectly with certain combinations of mesh attributes in different bake groups.
- Fixed a bug that could cause a crash when dragging a scene in with missing resources.
- Fixed a bug with the resource locator that could cause referenced library assets to fail to be recognized as downloadable.
- Fixed a bug that caused a crash when loading Toolbag 3 scenes with shading models that are no longer supported.
- Fixed a bug that could cause a crash when loading, importing, and exporting smart materials.
- Fixed a bug that caused shading artifacts with meshes with bad UVs and sub-division in ray-tracing mode.
- Cleaned up the included example Python scripts for compatibility with latest Python API changes.
- Fixed a crash that may occur if a material shader fails to build when using a custom shader.
4.04 Changelog #
May 4th, 2022
DirectX 12 (Windows Only) #
- The rendering backend has migrated from DX11 to DX12.
- Hardware ray-tracing acceleration is supported for AMD RX cards, increasing ray-tracing performance by about 400%.
- Nvidia RTX cards now use DXR rather than Nvidia Optix for ray-tracing, which reduces memory use and increases performance by about 25%.
- High memory use scenes are handled better in some cases.
Rendering #
Depth of Field
- Added a physically-accurate ray-traced depth of field effect.
- The DOF controls have been reworked to mimic real-world cameras with an aperture dial controlling the level of blur.
- A focus tool has been added, which allows the user to click in the viewport to set the focus point. Ctrl + Click + Mouse Drag will set the aperture value or amount of blur.
- A button to click and set the focus point has been added next to the focus distance slider.
- The bokeh shapes have been updated with higher resolution images and a few new types.
- The post effect DOF mode has been updated to approximate the physically-accurate ray-tracing mode.
- The post effect DOF technique viewport preview now matches final renders for images up to 2048×2048. Larger renders use a different technique which may create artifacts near the silhouette of meshes.
- The CPU DOF effect has been removed, resulting in faster renders when DOF is enabled.
Motion Blur
- Motion blur can now be rendered for image and video renders. Note: the effect can not be previewed in the viewport.
- A GUI element has been added to set the shutter speed in the camera object. The shutter speed controls the amount of blur.
Lens Flares
- New physically-based lens flare effect mimics flares from real camera lenses.
- Lens flares are now generated from direct lights rather than bright pixels on the screen.
- Lens flare visibility and intensity can be toggled per light, while overall settings are controlled at the camera level.
Film Grain
- The grain effect now randomizes in each frame. There is a preview option to turn on or off the random variance in the viewport. When playing back animations the grain always randomizes.
- There are now two grain styles: film and digital as well as three scales: fine, medium, and coarse.
- Added a dirt effect which places random scratches and stains on the render.
Shadow Catcher
- Added an Indirect Shadow option that captures bounced lighting and reflections when ray-tracing is enabled.
- Material properties can be configured for indirect shadows.
- Custom meshes can now be used for shadow catching, parent a mesh to a shadow catcher object to enable.
- Fade radius and falloff controls have been added.
Misc
- Advanced Light Sampling is now available in the render object. This feature reduces noise in complex scenes that have many direct lights, especially when using lower sample counts.
- Pixel filtering has been improved, resulting in better anti-aliasing.
- Dithering has been added to reduce banding in 8-bit images.
- Light gel textures are now supported in ray-tracing mode.
- The GPU no longer waits for the CPU to be ready to render the next frame, which results in faster render times for videos.
- Ray-tracing accumulation no longer resets when adjusting post effects. Holding the mouse for a second before releasing it when performing various actions no longer causes a reset in many cases as well.
- Added an option in Edit -> Preferences to disable V-sync ray-tracing accumulation, which can speed up viewport render times when working with simple scenes. This setting can cause tearing with certain monitor configurations so it is disabled by default.
Texturing #
- The mask cache is now cleared when selecting a different texture project, freeing significant memory in scenes with multiple projects.
- Certain blend modes (add, color burn, color dodge, linear burn, overlay, screen) have are now gamma corrected when used with sRGB maps like albedo.
- Tri-planar project mode is now selected by default for fill layers and tools that reference materials.
- When changing a project map from RGB to grayscale, the color picker mode now updates accordingly.
- The clouds layer type now tiles seamlessly in UV mode.
- All processor layer types now have a button to reset the default settings.
- Deleting unused materials will no longer remove materials that are referenced in texture projects.
- Mip-mapping is now forced on for brush textures, resulting in significantly reduced aliasing.
- A default brush has been added to the library to make it easier to reset the brush tool to its original settings.
- Textures now output at the correct resolution regardless of the viewport resolution configured in the texture project.
- Fixed a crash that could trigger randomly when importing and export smart materials.
- Fixed a bug that would reload deleted textures in certain layer types when resetting the settings to default.
- Fixed a bug that would cause rendering artifacts when using tri-planar projection on Mac.
- Fixed a bug that caused gradient layers to clamp rather than tile.
- Fixed a bug where the tiles layer type would render corrupt data along the bottom edge in UV mode.
- Fixed a bug with the contrast setting in the fill layer that would apply contrast and brightness adjustments to textures in the wrong order, causing clipping.
- Fixed a bug where layers that ended up with an identical ID could cause problems with the undo system.
- Fixed a bug that caused the thumbnail to render incorrectly when rasterizing groups.
- Fixed a bug with the brush tool that could draw incorrect colors when using right-handed tangent orientation.
- Fixed a bug with the brush tool when using the fit to brush project mode where normal maps were not being properly transformed while painting on meshes with mirrored UVs.
- Fixed a bug with mirrored UVs that prevented the brush from painting on certain areas of a mesh.
- Fixed a bug where the visibility for scratch texture in the scratch layer type wasn’t being saved.
Library #
- It’s now possible to add multiple instances of the library window. Each window will remember its position and any filtering options.
- Added the ability to select multiple assets from the library window and drag them into the scene. This is only applicable to certain asset types like materials and skies where it is possible to load more than one at a time.
- Searching and filtering of assets are now possible from the root folder.
- Added the ability to right-click assets and perform various functions.
- Added a properties window that allows the user to edit the name, category, and tags for custom assets.
- The download GUI has been updated with a progress bar and we’ve added a display to the status bar to show how many remaining downloads are left.
- Added a slider to set the size of the thumbnails. The smaller version draws a list display.
- Assets that have been updated on the server now show a special state and can be double-clicked to download the latest version.
- There is a new filtering option to sort by assets with available updates as well as an option to filter by assets currently referenced in the scene.
- Added an option to automatically update to the latest version of any previously downloaded asset. This can be enabled in Edit -> Preferences -> Library.
- The icons for downloadable and updatable assets are larger and more clear.
- The asset display has been updated with mouseover states and styling more consistent with the application.
- When hovering over an asset, the full name is displayed.
- Long asset names are now truncated more intelligently.
- It’s now possible to select multiple assets and apply a color code to all in the selection.
- The search suggestions and color-coding popup boxes should no longer spill off the monitor when close to the edge.
- The asset list is now cached locally, enabling access to downloaded assets when offline.
- Fixed a bug that prevented an asset from being downloaded if it had the same name as the category.
- Fixed a bug with materials from the library that had transparency and would cause corrupt data to be drawn into the transparent areas when referencing the materials.
Autosave #
- Scenes are automatically saved at a customizable interval. The settings can be configured in Edit -> Preferences.
- Autosaves can be saved in the same location as the current scene. This is off by default; autosaves are otherwise saved into a central, user-defined folder.
- The maximum number of saves per scene can be defined. When the maximum is exceeded, older files will be deleted.
- The maximum size of the autosave directory can be specified as well. This does not apply when saving relative to the current scene.
Baking #
- Replacing one of many meshes in the quick loader list should no longer cause a crash.
- Fixed a bug where confirming the color value in the picker for the offset or skew tools could cause a crash.
- Fixed a bug where changing the tangent space would nullify mesh displacement.
- Pixel padding is now rendered correctly for the alpha channel of vertex color bakes.
Scene & Mesh #
- Added the ability to set the TDR timeout setting for the GPU graphics in the preferences window. This is now set to 20 seconds on install and should significantly improve stability in complex scenes. Changing this value requires restarting the computer.
- High-polygon meshes now use a simplified tangent space, significantly decreasing file load time for dense meshes.
- Added a setting to the Preferences window to Browse for Missing Meshes. This is off by default so the Resource Locator will no longer prompt for missing meshes unless this setting is enabled.
- Displacement mapping now refreshes automatically when meshes are reloaded.
- Reduced memory use for sub-divided meshes.
- Toolbag now prompts to save the scene when the computer is shutting down or restarting.
- Various interactions with camera settings now register to the main undo track rather than the camera track. The camera undo track now primarily contains camera movements.
- Fixed a bug where scaling a parent object could cause the scale tool to show unpredictable behavior when scaling a child object.
- Fixed a bug where loading a texture didn’t create an undo state right away, which could cause corruption in the undo track.
- Fixed a bug that would allow sub-meshes to be removed from their parent meshes, causing a crash when the user attempted to interact with them.
- Textures that are loaded into multiple slots now display the correct color space setting.
- Fixed a bug that caused multiple skies to use the same background color value.
UI & Workspace #
- The login window has been updated to improve the account access user experience.
- The window size and location are now stored when closing the application with the window maximized.
- The default window size has been enlarged and should now account for various scaling settings.
- Various folder locations are now stored independently. For instance, when choosing where to save a render or load a texture the file dialog window will now remember the respective locations.
- The window position should now be remembered on multi-monitor configurations.
- The previously selected camera should now be remembered more reliably.
- Interaction with the viewport buttons now updates the active viewport focus.
- Clicking the initial state in the history window no longer causes the state to reload.
- Dropdown menus now automatically close when scrolling windows.
- Users can now click and drag on Mac without first clicking in the window to set focus.
- Windows can now be seamlessly popped out of a docked position and repositioned on Mac.
- Fixed a bug that could cause black bars to show up when resizing and rearranging windows.
- All spinner GUI elements should spin in the correct direction (ie: count up and down) when dragging up and down on the control.
- Fixed a bug that would send users to the Marmoset website during patch updates if the user canceled the installation.
- Fixed a bug where tooltips popping up could cause input to be lost, ie: a slider drag wouldn’t register.
- Fixed a bug where selecting the render object or a camera could cause an undo state to be created.
- Fixed a bug that causes the GUI to draw incorrectly on Mac when dragging a window to a secondary monitor.
Python #
- Window width and height can now be set properly.
- Fixed an issue with window layout auto resizing.
- Library assets can now include their category, the example Python script has been updated to show this.
- Changing subdivision type on multiple meshes at once no longer crashes.
- Fixes to UI example plugin for secondary windows.
- Added calls to get the first party and user library paths with getLibraryPath() and getUserLibraryPath().
- Updated Python interface to read “sharpness” instead of “smoothing” for certain layer types in the texture project system.
- Python access to the library paths has been improved.