Isotropix Forums

New Clarisse iFX 3.5 RC1!

News related to Clarisse iFX Daedalus (maintenance release)
Daedalus is the codename of Clarisse 3.5

New Clarisse iFX 3.5 RC1!

Unread postby release_team » Wed May 31, 2017 4:56 pm

Dear Clarisse users,

We are extremely proud to release the first release candidate of Clarisse iFX 3.5! (Only available for Clarisse maintenance subscribers!)

This build requires a maintenance license. Maintenance builds can't run in PLE.

3.5 RC1 build is still VFX Reference Platform CY2016 compliant.
More information can be found here:

What's new since Daedalus R1:

New Features and Enhancements
General UI
  • New widget available: Property Editor. It displays the list of geometric properties available in the selected geometries, particles, volumes. It allows editing properties on particle container used for painting particles and particle properties. For each selected geometry, a list of all properties are displayed. For each property, the name, type, and number of values are displayed. (#6245)
  • Added in Shelf a new action for baking a scatterer. (#6663)
  • Introduced some enhancements in Explorer widget:
    - Referenced objects now expose their overridden attributes
    - The selection process has been fixed so that attribute rows (localized or overridden) are really selected instead of being highlighted. When an attribute is selected, its parent object is selected in the widget.
    - When attributes are selected, the 'Del' hotkey now reverts overrides and/or unlocalizes as appropriate. (#6477)
  • HUD display can be tuned in Clarisse Preferences for 3dView and ImageView. Shift+click on the HUD button in the toolbar gives also access to these options through a small dialog. (#6282)
  • Some settings are now organized in groups which can be collapsed in Clarisse preferences (ctrl+k). (#6408)
Attribute Editor
  • Scatterers now have a dedicated custom interface in the attribute editor to display geometry attribute content. (#6124)
  • Added a new button in the toolbar to create a new custom attribute. (#6462)
  • Added a new Scatter Position Variance Step and Scatter Scale Variance Step attributes to Scatterer, allowing to reduce the random position and the random scale respectively into multiples of the specified value. (#5953)
  • It is now possible to apply a time offset on each instance of a scatterer. 3 new attributes allow to control the time distribution:
    - Scatter Time Offset: Offset the time of geometries being scattered (in seconds). It is possible to control the time for each instance by using a texture.
    - Scatter Time Variance: Add randomness to the time offset of the objects being scattered.
    - Scatter Time Variance Samples: Specify the number of generated time samples when the time variance is greater than 0. (#2019)
  • It is now possible to decimate instances of a scatterer by detecting collisions between them. When Collision Mode is set to ON, a per instance collision is performed by using the bounding box of instances. For each geometry to scatter, it is also possible to specify another geometry to be used for the collision detection. (#5757)
  • It is now possible to define a frame of reference on all scene items. For geometries, it allows specifying which frame is the reference for the base geometry. (#6094)
  • When the Geometry Mode is set to Local Base, Geometry Point Cloud does not compute anymore the points sampling at each frame update if the geometry support is animated. (#4983)
  • Added a new Decimation Space attribute to the Scatterer. When set to Reference, decimation texture and collisions are evaluated on the base geometry at the reference frame. When set to World, decimation texture and collisions are evaluated on the deformed geometry at the current frame. The projection used during the evaluation of the decimate texture is also forced to be in Object Space when the Decimation Space is set to Reference. (#6554)
  • Indexed properties are now read correctly from Alembic point clouds (#6890)
  • A new Particle Paint tool is now available. It allows to add/remove particles in an editable cloud (GeometryParticleContainer). It works in the 3D View only. (#4309)
Image View
  • Background and foreground plates now have Opacity and Fit Mode controls. Also, the image background color (when the checkerboard is disabled) can now be changed into something different than black. These new options are available in a new Image View Options widget, that can be shown using the new Options button on the toolbar ("tools" icon). (#6241)
  • Added new toolbar buttons to play, pause and refresh evaluation.
    - Play: evaluation is enabled, and image listens to dirtiness (default state).
    - Pause: evaluation is disabled and the image doesn't listen to dirtiness.
    - Refresh: available only when paused, it forces an evaluation of the image and stays paused afterward. (#4811)
Material Editor
  • Introducing DOTs in MaterialEditor. They allow breaking regular node-to-node connection into several parts. They allow more flexibility into nodal layout and a better lisibility and flexible workflow. Dots are saved with the scene and are visible and editable in the Attribute Editor.
    - To create a dot, choose NodalItemDot from the TAB menu or from the contextual menu New > NodalItem > Dot.
    - To insert a dot in an existing link, double-click the link at the desired position.
    - You can also drag an existing dot (without any link yet) onto the link (provided the auto-insert option is checked in the toolbar).
    An important thing to notice is that the connection between objects and attributes remain exactly the same with or without dots. The dot is not inserted inside the scene graph, it acts like a visual helper with some intelligence.
    -To remove a dot, proceed as for any other item. If the dot was handling actual connections (it was connected to an input and several outputs), the connection between input object and all attributes previously handled by the dot are visually restored. The scene graph remains unchanged.
    When a dot is connected to attributes but has no input yet, you cannot see these connections (pure UI) except in the Material Editor. Such information is nevertheless kept in the project file. (#3673)
  • Introduced auto connection on node creation. When creating a texture with TAB menu, if a node is currently selected, its output is automatically connected to the new node's master input.
    If several nodes were selected, the first one is connected to the master input (for example add.input1), the next ones to the other compatible attributes (add.input2 then finally add.opacity).
    This feature can be enabled and disabled with the "node auto-insert" button in the toolbar and its status is part of Clarisse's preferences. (#5741)
  • Alternatively to the grid snapping, you can now snap to implicit guidelines (other nodes top, bottom, center, left & right) while moving nodes around.
    While dragging nodes, the snapped lines is drawn. To enable/disable the magnet, use the button in the toolbar or use the M shortcut. (#6014)
Object Framework
  • Groups manual mode now allows to edit directly the result, allowing classic list operation like enabling and disabling values. Groups also allow to chose multiple class filters using a tag-list menu.
    A new filter option has been added in Groups just before the result, allowing a final filter to be applied on the final object list, using rules. (#6710)
  • Added various means of defining the mean free path of the SSS diffusion, and improved energy conservation of sub-surface scattering (#6258)
  • The raytracer and the pathtracer are now unified in only one concept: the raytracer.
    It is now possible to switch between integration models, by setting the integrator inside each raytracer and 3d view.
    All integrators relevant attributes are dynamically exposed inside raytracers and 3d views when activated. (#5761)
  • Extended sub-surface scattering with the cubic diffusion profile and renamed the normalized diffusion into empirical. (#6357)
  • It is now possible to control the quality of the shading from an image with the help of the Shading Quality attribute. This new attribute works like the Sampling Quality but doesn't affect the anti-aliasing. (#6919)
  • Improved sampling strategy of scattered points in subsurface scattering material (#6530)
  • It is now possible to choose the Oren-Nayar mode to use on a diffuse material. (#6441)
  • Added the possibility to set the diffuse component of the iridescent material to a Lambertian or an Oren-Nayar BRDF (#6257)
  • Added the Oren-Nayar BRDF to the physical diffuse material (#6185)
  • Added range/falloff support for PBR lights akin to the legacy mode (#6123)
  • A physical standard material is now available. It matches the interface of the alSurface material. (#6039)
  • Added support for low light threshold in the path tracer as well as an overwrite parameter for each light source. It defines the unshadowed illumination below which a light is assumed to be occluded, hence bypassing the calculation of its actual visibility. (#2017)
  • It is now possible to specify how displacement triangles are generated on geometry bundles with the Displacement Triangulation Mode attribute. (#6785)
  • Added various texture nodes: black body, sampled curvature, multi-blend, object switch, side switch, scope (#6698)
  • It is now possible to output Cryptomatte AOVs. They can be enabled by adding the corresponding sub-pixel filter to a 3D layer. (#6559)
  • Added a new output to the Utility Texture: "P (Local Space)". (#6498)
  • Improved the precision of the raytracing in order to avoid holes that could occur around edges. (#6496)
  • Improved the precision of the shading in order to remove issues due to self-shadows. (#5489)
  • The default mode of the gradient texture is now "input" instead of "incident". (#6874)
  • Added a script to bake a scatterer into a new scatterer which embeds a particle container in the shelf toolbar. This is very useful to control per-instance property using particle and property paint tools. (#6739)
  • Added a new script to create quickly a setup for paint a particle in the shelf toolbar. (#6738)
Shading Layer
  • Added the ability to copy/paste values within the same Editor or between two Editors:
    - Select the cells/rows you want to copy, press Ctrl+C.
    - Select the target row(s), press Ctrl+V.
    If the source selection contains several rows, they will be pasted starting on the target row (eventually the last rows will be omitted if they don't fit).
    When pasting area (target selection) has more rows than the source, the source's rows are cycled to fill target.
    If the source selection has holes (for ex. 2 rows fully selected except the clip_map column), only the corresponding cells in the target area will be modified.
    If the source selection contains a blank value (for ex. an unassigned material cell), the corresponding value in the target will be erased. (#1888)
  • This tool is intended to add/remove particles in an editable cloud (GeometryParticleContainer). It works in the 3D View only. Please see the documentation for more details and examples! (#4871)

Bug Fixes
  • Fixed an issue where some modules were loaded twice in some cases. We now check if a module file has already been loaded in order to prevent trying to load twice the same module files, which could lead to unexpected behaviors. (#6696)
  • Fixed issue where disabling items that weren't updating properly groups content in the case of groups referencing other groups. (#6839)
General UI
  • Fixed issue preventing to edit properly a curve in a referenced project. (#6387)
3D View
  • Fixed the radius of sphere lights displayed in the 3D view (#6571)
  • In 3dView Options window, fixed the foreground/background 'jump' buttons to select the assigned texture in the application. (#6828)
  • Fixed a crash when deleting an editable particle cloud. (#5973)
  • Export package script: Fixed regression introduced by fix #6713 that broke the export of UV tile texture files when using tags < u > and < v >. (#6744)
  • Auto save now restores the previous mouse cursor properly when saving is done. (#6350)
  • Fixed shaders links being broken when referencing a project. (#6514)
  • Fixed projects manual loading that was broken and loaded everything recursively instead of loading just one project. (#6447)
Attribute Editor
  • Editing rules separated by semi-columns (like in groups) is now possible through a more user-friendly interface accessible by clicking on "..." button in the attribute editor. (#6593)
  • Fixed disable/mute flags not being serialized properly. (#5075)
  • Material Editor is now included in the 'Open With' default list of widgets for Texture and AovStore. (#5380)
  • The new displacement option "Displacement Triangulation Mode" is now available for geometry bundles. (#6574)
  • Fixed a bug with scatterer which was re-computing all its instances when only shading information was changed. (#6727)
  • Fixed a crash that occurred when loading an Alembic containing an empty geometry. (#6864)
  • Fixed a potential crash when building geometry bundles in parallel. (#6759)
  • Reduced a memory peak that could occur during the construction of the displacement. (#6723)
  • Fixed a stability issue with the sampling of Point UV Sampler. (#6668)
  • Removed some non-relevant functions in the following classes: GeometryUvMap, GeometryNormalMap, GeometryColorMap (#6702)
  • Reduced a memory peak that could occur during the construction of geometries. (#6683)
  • Reduced a memory peak that could occur during the construction of geometry bundles. (#6672)
  • Fixed crashes that could occur upon construction of Alembic geometries. (#6564)
  • Fixed an issue in dirtiness propagation leading to miss some events information in some cases. That could lead for example to have missing geometries when scrubbing timeline with an animated alembic bundle in a scatterer. (#6752)
  • Fixed a bug that could let pending objects in a context after a filename change. (#6749)
Image View
  • Added a new confirmation dialog to the toolbar button "Clear Image History", and moved it next to the other Image History related toolbar buttons. (#6636)
  • Tools are now disabled when Image View is paused. (#4414)
  • Fixed a crash that could occur when evaluating streamed map files with different color spaces. (#6655)
  • Color space for map files and streamed map files is now read correctly from saved projects. (#6015)
Material Editor
  • Improved nodes names display to make them vanish if they overlap too much. (#5100)
  • Fixed get_below_mouse_window and get_below_mouse_widget functions so they work as expected. (#5580)
  • Fixed auto-insert node on a link when view is zoomed out and node auto-expand is enabled. (#5960)
  • Fixed issues when disconnecting a link and reconnecting immediately.
    - Reconnecting on another plug: 2 commands were stacked for undo, they are now wrapped in a single batch.
    - Reconnecting on the initial plug now do nothing instead of stacking 2 commands. (#6179)
  • Fixed crash with projects having a GroupUVBake that could happen at loading time. (#6819)
  • Fixed a bug that was causing some references to be lost.
    It could happen between referenced context and other objects, after doing "make local" then undoing it. (#6619)
Object Framework
  • Fixed an issue where changing the value of a texture gradient for a referenced object did not provide the expected results. (#6151)
  • Fixed an issue with attributes of type "List of References" which were not working properly after some their values had been disabled. (#6774)
  • Fixed an issue with rough reflective layers in physical materials where edges could have been darker than expected. (#6928)
  • Removed a debug log that appeared during the construction of point clouds. (#6205)
  • Fixed the sampling strategy of cylinder lights (#6743)
  • Fixed light sampling strategy for shading points inside a sphere light (#6617)
  • Fixed light sampling strategy to properly compute illumination on materials with a blend of BSSRDFs. (#6482)
  • Improved sampling strategy for empirical SSS profile (#6440)
  • Fixed various bugs in SSS evaluation (#6360)
  • Fixed various bugs in the light sampling strategy of colored/textured environment lights (#6620)
  • Shading variables are now supported in the UV transform of spatial textures. (#6680)
  • Fixed an issue with the physical SSS shader that was producing noise when the diffuse depth was over 0. (#6859)
  • Fixed an issue with the rendering of hair (Ribbon) that can produce invalid values. (#6886)
  • Fixed light sampling strategy to properly compute illumination on materials with a blend of BSDFs and BSSRDFs (#6487)
  • Fixed an issue with the alembic camera where the depth of field was always enabled. (#6804)
  • Fixed potential shading discontinuity of SSS material across polygon boundaries (#6442)
  • AOV stores are not computed anymore when they are writing in an AOV that is not selected in the AOV Editor. (#6781)
  • Fixed an issue where 3dLayers default groups did not take objects being located in instances of contexts. That could result in missing objects in the image. (#6722)
  • Added internal checks in CopyItemsToCmd in case a wrong target path is provided, to prevent crashes. (#5561)
  • Fixed a crash when displaying a gradient attribute that has been cleared by a script. (#6779)
  • Added internal checks in AddValuesCmd to prevent crashes when a wrong attribute path is provided. (#6341)
Shading Layer
  • Added the possibility to copy-paste cell content in the ShadiingLayer editor. (#5924)
Texture UV View
  • Added a validation to the UV range fields to prevent typing null or negative ranges. (#5667)
  • Fixed TAB key usage after changing UV range value. (#6575)

SDK Changes
General UI
  • New callback "cb_declare_custom_ui" has been added and can be used in modules to declare a custom ui for an object.
    The .cid files just have to declare an attribute of type custom_ui (custom_ui "my_attribute"), then the callback will be called with the attribute name, allowing to declare a custom UI for it. (#1885)
Attribute Editor
  • Added a new flag (promote_attribute yes) which can be used in CID files to specify that the attributes of an embedded object attached to attribute of type OBJECT should be promoted. This means that they will be displayed as actual attributes of the parent object instead of being part of the embedded object (with an indirection to see them). (#5814)
  • Modified the scene instancer module in the SDK examples so it works with the new API of the ModuleSceneObjectTree class. (#6573)
  • Added a new callback to ModuleSceneObjectTree (get_instances_time) which allows specifying a time offset per instance in seconds. (#2019)
  • Split cb_get_instances callback of ModuleSceneObjectTree into three new callbacks :
    - cb_get_instances now computes only the index of the base object to scatter for all the points of the support before any decimation is applied.
    - cb_decimate_instances takes the array of all these indices and computes all the indices of points used on the support to scatter the geometries after all the decimations are applied.
    - cb_get_instances_matrices takes the array of these support point indices and computes the world matrices for each instance. (#6085)
  • ModuleSceneItem has 3 new methods: get_reference_frame() allows to retrieve the reference frame of the object, get_reference_time() and get_reference_global_matrix() allow respectively to get the time and the global matrix of the object at the reference frame. (#6094)
  • A new structure named SupportDeformedDescriptor has been declared in the GeometryPointCloud class. It is supposed to store a pointer of the deformed geometry, and the matrix of a sub-object of the support geometry of the point cloud. GeometryPointCloud has a new init_geometry() method taking in parameter an array of this structure. (#4983)
  • OfAttr::DIRTINESS_GEOMETRY has been split into OfAttr::DIRTINESS_GEOMETRY_BASE and OfAttr::DIRTINESS_GEOMETRY_DEFORMED. The first one is propagated when changes occurred on base geometry at the reference frame (for example if changing the filename of an Alembic, or changing the reference frame of the object). The second one is propagated when only the animation of the geometry is changing for the current frame, (#6286)
  • It is now possible to specify an array of indices to the GeometryPointProperty class that allows to remap the values. (#5460)
  • It is now possible to add empty items in the ResourceBundleManager and the data of ResourceBundleItem can now be locked and modified. (#6672)
Object Framework
  • Within a referenced project, we can now prevent an attribute to be overridden when its value changes. To do this, simply call the set_saveable(false) method on it. Of course, the value will be lost when the project will be saved. (#6712)
  • CtxSample now provides a get_eye_direction() method returning the normalized direction of the ray that has generated the sample. (#6283)
  • AppObject is now raising two new events, one when all modules are loaded and one when the preferences are loaded.
  • The whole PBR interface is now available in the SDK:
    - A whole new kind of object class has been added: Integrator. This object is in charge of each camera sample integration and allows to customize the whole shading loop.
    - The material inheritance tree has been reworked:
    - The Material base class is now a lightweight object with only one default shading fallback method.
    - The old Material interface has been moved inside the MaterialLegacy class.
    - The PBR material interface is now exposed (MaterialPhysical), including a set of fully customizable BxDFs.
    - The management of the deferred shading has been moved into the MaterialPhysical class, it's not available anymore in the legacy engine.
    - Materials are now able to declare flags which ease type checks and allows to have masks of flags at the level of the SceneObject in order to know what kind of materials are linked to it.
    - Two new classes are now available: MaterialDefault and MaterialSwitch. The first one is just a place holder that needs to be detected by integrators in order to replace it by its own default material. The second one allows to dynamically switch the material according to the current intersection during the raytracing process.
    - The PBR light interface (LightPhysical) is now exposed, allowing to define your own ones. (#5761)
  • Added examples of physical light and material into the SDK. (#6374)

Know bugs and limitations
  • Attributes overrides on renderers (raytracer/pathtracer) are not correctly applied when importing pre-3.5 projects.
User avatar
Posts: 52
Joined: Wed Oct 21, 2015 11:31 am

Return to Clarisse iFX Daedalus Archive