It is now possible to enable ray traced Ambient Occlusion in the 3D View. This feature is extremely useful to quickly visualize contact shadows during set-dressing. The number of ambient occlusion samples used per iteration can also be controlled in the 3D View as well as the maximum ambient occlusion distance. Because of these extra features, the 3D View toolbar has been redesigned to be more user friendly while displaying these new options. For more information about these changes, please refer to the user manual. (#9464)

The display of wireframes has been improved. (#9596)

The 3D View HUD can now display the actual rendering refresh rate in FPS. (#9621)

Application

Improved the warning message displayed by Clarisse when no OptiX compatible hardware is found of the computer. The warning message is now only displayed once during startup. (#8426)

The crash dialog has been greatly improved to simplify user bug reports. The new dialog displays detailed information as well as a feature that opens the online Bug Tracker while automatically filling information fields accordingly.After a crash the project backup file now uses the same file extension ".crash" (previously ".backup), as the regular crash backup files, so that it can be properly detected by Clarisse on restart. (#9263)

Deploy

The Windows installer of Clarisse has been improved. It now uses a better compression scheme which reduces the size of the installer. Also, the uninstaller is now properly signed.Both installer and uninstaller no longer skip to the last page as it was preventing the user to review the install/uninstall logs. (#9231)

The Windows installer no longer asks to install the included Microsoft VC++ Redistribuable if a newer version is already installed on the system. (#9579)

Geometry

Time Offset and Time Variance attributes of Scatterers are now explicitly displaying their units (seconds). (#9446)

Rendering

It is now possible to enable GPU acceleration for ray tracing in the 3D View. GPU acceleration is only available on NVIDIA graphics cards with Maxwell or newer GPU architectures. For more information about the GPU acceleration, please refer to the user manuals. (#8124)

Improved the distribution of shading samples among material lobes in order to reduce the "ray explosion" that was occuring when there were specular reflections and refractions. Consequently the number of samples is drastically reduced however, in some cases it can lead to images with a slightly higher level of noise. In such cases, it is recommended to slightly increase the number of samples to remove the noise. As this new optimizations greatly reduce rendering times (up to 8x), even with these extra samples it is much faster to render than in previous versions of Clarisse. (#8940)

Noise generators using samplers have improved to provide to a better-distributed sample generation scheme to improve the visual quality of rendered images. (#9481)

Bug FixesApplication

Fixed a crash that occurred with CDenoise on exit when no compatible hardware was found. (#9479)

Fixed a bug where builtin variables were moved to the System tab of the variable editor when an environment variable with the same name existed. (#9640)

Fixed the undo of the Cut command so that all dependencies are properly restored. (#9224)

Attribute Editor

Fixed several issues with curve attributes. The most important ones are:- Undo is now working correctly when setting values in numerical fields.- When several keys with identical values are selected, numerical fields are absolute whereas they are relative if there are mixed values. The interaction is now consistent with the displayed value in all cases. (#9460)

General

Fixed a crash that was introduced in 4.0 when specifying units from the command line. (#9436)

Fixed a bug that was causing Clarisse to start with no default layout when it was launched from command line with the argument -recent pointing to a project file that no longer exists. (#9411)

Geometry

Fixed an issue on instances of scatterers that were not taking into account localized attributes. For example, if a scatterer was an instance of another scatterer, the values of its localized attributes were not taken into account leading to an incorrect result. (#9502)

Image View

Fixed a crash that occurred when the displayed Image had a 3D Layer without a specified Renderer. If the mouse was hovering the Image or the user was trying to pick objects in the Image View, then Clarisse would crash. (#9461)

Fixed a potential crash that occurred when loading a project defining contexts instantiated from a source originating from a reference. When the application didn't crash, the instances were simply missing after reloading the project. (#9576)

Rendering

Fixed a reported crash that was occurring in the Render Manager (#9426)

Fixed an issue that occured on Linux with the russian roulette. The value set at the path tracer was not correctly propagated to materials. (#9415)

Scripting

Fixed a display glitch that appeared on selected text. (#9589)

Fixed the log output of commands that were using contexts as argument such as SetReferenceFilenames or ClearContextOverrides. They can now properly be copied and pasted in a Script Editor. Prior to this fix, the actual log output was wrong: when a user tried to execute these commands from the log window in a script, it was leading to a syntax error. (#9179)

SDK ChangesGeneral

sys_launch_process:- The legacy function launch_process still exists but is deprecated. It now calls sys_launch_process.- This new function now accepts a list of arg strings instead of a single string.- Fixed its behavior so that it is the same on all platforms: call a child process in a non-blocking way.sys_launch_process_and_wait_result:- The legacy function launch_process_and_wait_result still exists but is deprecated. It now calls sys_launch_process_and_wait_result.- Linux and macOS: the function now waits for the correct child process and returns the correct child process exit code. (#9454)

It is now possible to use containers on Gui classes in Python. (#9419)

Improved the performance and memory efficiency of CoreSet class. (#7463)

IO

The following Python helpers have been improved to return a boolean on success, or failure:- export_context_as_project(context, filename)- export_context_as_project_with_dependencies(context, filename)- reference_export_context(context, filename) (#9205)

Module

Resource IDs are not defined with enums anymore. They are now controlled globally in order to avoid conflicts and have to be declared using the ModuleObject::declare_resource() method.Also, it is now possible to specify a custom creation callback when declaring a resource on an object. This mainly allows to manage resources from another place than in the code of the object itself. (#8855)

Fixed ModuleGeometry.set_shading_group_visibility() function that was ignoring the index of the shading group passed in parameter. (#9478)

Rendering

It is now possible to specify for which type of dirtiness a light has to dirty the render when its parent change. By default, it dirties the render for all type of motion dirtiness, but it is possible to restrict it by calling the new method ModuleLight::set_parent_output_dirtiness(). (#9569)