Isotropix Forums

New Clarisse iFX Daedalus R1!

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

New Clarisse iFX Daedalus R1!

Unread postby support_team » Tue Feb 14, 2017 3:45 pm

Dear Clarisse users,

We are extremely proud to release the first release of Clarisse iFX Daedalus! Daedalus is the codename of the next major version of Clarisse and this release is the first of many intermediate releases that will ultimately lead to the release of the next major version of Clarisse.

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

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

What's new in Daedalus R1:

New Features and Enhancements
  • The overriding engine has been rewritten from ground up. It is now faster and the engine allows users to clear overrides (from references or local edits in non-referenced contexts) at the attribute, object and context level. For more information please refer to ... ides2.html.
  • It is now possible to clear OIIO texture cache from the Input Output section of the application preferences. (#4059)
  • It is now possible to control the frame used by Alembic items with the help of a frame attribute (visible only in advanced mode). The attribute is bound by default to the $F environment variable. (#3133)
  • Text Editor widget (opened with "..." button from Attribute Editor and Material Linker) now has 2 extra buttons Cancel and Ok. Both close the widget, Ok applies the last modifications before exit, whereas Cancel ignores them (just like the top-right close button). The modal Text Editor opened from the Shading Layer Editor has only 2 buttons: Cancel and Ok (formerly named 'apply and close'). (#4536)
  • We have now the ability to connect upstream (from attribute to object output). Click on an attribute plug, and drag the link to the desired node's output plug. This feature comes with another workflow change: to disconnect (either source or destination), you have to click on the link extremity next to the plug, no longer on the plug itself. The disconnected extremity can be plugged to another location. When several links are connected to an attribute plug, you can now choose which one to disconnect (used to be arbitrarily the first one). When the mouse is over a "sensitive" link extremity, the extremity is drawn thicker to notify that disconnection is available. A link that doesn't highlight its extremities cannot be deleted (for example a link to a locked attribute). (#3675)
  • It is now possible to unload resources of selected items. This can be done from the Edit menu or from the contextual menu in the browser. (#1973)
  • We can now export combiners when exporting alembics. If enabled (default behavior), combiners will be exported as pivots with their sub-objects as direct children. Sub-combiners are exported recursively. (#5248)
  • Added the ability to choose the color space to use by file extension. (#4316)
  • Added Bounding Box export mode for scatterers in Alembic export. In this mode, scattered instances are exported as bounding boxes in place of the source instance objects. (#5215)
  • Alembic export now supports exporting scatterers (they are exported baked). A New option is available for this, "Export Scatterers" in the "Scatterer" category. (#5212)
  • Improved Hirarchy View widget performances when adding or creating a large number of objects. (#5674)
  • In ShadingLayer Editor, the "Replace" feature now applies to selection only, thus get rid of "filter/material name" checkboxes. Can be used to replace a material, a texture or a displacement object, as well as text in rule filter or in shading variables. (#5899)
  • It is now possible to choose the compression mode to use when saving images in EXR format. It can be set in the global preferences or directly on images and layers. (#4313)
  • Improved the speed and reduced the memory overhead when saving images in EXR format. (#5543)
  • It is now possible to write custom metadata in EXR files. They can be specified in output attributes of images and layers. (#5386)
  • The 3D layer is now supporting OSL Light Path expressions, in order to export regular-expression driven AOVs with compliant raytracers. (#4888)
  • Added an image filter that allows to detect NaN values.(#4094)
  • In order to improve the visibility of particles in the 3d view, their default color is now set to blue.
  • Two new textures are now available: minimum and maximum. (#0001564)
  • It is now possible to choose from the application preferences how the displacement is evaluated (Rendering/Displacement Storage Mode). The "Favor Memory" mode corresponds to the old behavior whereas the "Favor Speed" mode allows to evaluate the displacement faster but takes more memory. (#2930)
  • Animated attributes (focal length, aperture, field of view) in perspective cameras are now supported by the motion blur. (#2661)
  • The tri-planar texture is now available. (#5708)
  • Improved the ray-tracing speed of alembic bundles when they contain sparse geometries (#3466)
  • Raytrace offset attribute is now animatable. (#6409)
Image View
  • Added a keybord shorcut to change AOVs in ImageView: Ctrl+Pg Up/Pg Down and Ctrl+Shift+Pg Up/Pg Down to go to the first/last AOV. (#4275)
  • The contents of the overscan is now displayed in the image view. The dimming ratio can be modified in the preferences. (#1961)
  • Image View can now display image files in background and foreground plates. (#1967)
  • In ImageView and 3dView, added an option (enabled by default) to use the file format and color space mapping when saving an image. If disabled, the image will be saved using the widget display color space. (#5094)
User Interface
  • Timeline now optionally accepts sub-frame value. Option can be found in Clarisse Application Preferences, Animation section. When sub-frames option is enabled, the Timeline allows dragging current frame to a fractional value, its current frame edit widget displays & accepts float value, and time change command issued from Timeline has a floating argument. When time change comes from Graph Editor, the command sent by the Graph Editor also has a floating argument and the Timeline is updated to the exact floating frame value. (#4329)
  • Added a new search filter feature in Clarisse menus. It allows to restrict dynamically the menu content based on what we type in the filter field, to find menu items more quickly. To Use it just start typing on the keyboard while a menu is opened, it will automatically adapt its content based on the typed text. (#5115)
  • Clarisse floating windows now display tabs like docked windows. Added the possibility to detach a tab to create a new floating window. Floating windows are saved in Clarisse layout presets and restored when loading a project. (#5246)
  • Added a button that re-synchronizes the global selection from a widget sticky selection. (##4619)
  • We now support multi-selection when deactivating items in list of references. (#5309)
  • In SetKey widget, frame's edit field is now initialized with current subframe when current frame is not round. (#5341)
  • Clarisse has now a new set of icons for its whole interface.
  • Updated the Shelf Item "General">"Import ABC Scene", which nows creates a reference instead of importing. (#6264)
  • Added -rendering_log_tick as CNode and CRender argument. This forces regular display (in seconds) of the current render progression, even if there is no change. Default is 0 to display only when the percentage increases.
  • CNode now returns a specific error code when it exits. Status 0 means success and all others codes define a specific error: 1 FATAL ERROR, 2 LICENSING ERROR, 3 ARGUMENTS ERROR, 4 PROJECT NOT FOUND, 5 SCRIPT NOT FOUND 6 SCRIPT RUNTIME ERROR
  • Images are now saved incrementally when rendering from CNode. (#2961)
Material Editor
  • New plug display mode is available.
    - display all plugs, as before (expanded)
    - only the connected ones, and the master plug if any
    - none (collapsed)
    When connecting, node switches to expanded mode automatically (like autozoom).
    When disconnecting, free plug vanishes on mouse up. Each node has a button in top right corner to show current mode. It acts as a vertical slider: click mouse on it and drag up or down to show more or less. If several nodes are selected, shift-click and drag any of the plug sliders will apply the chosen mode to all selected nodes.
    Actions to set mode on selection, on all nodes, on node under mouse can be found in the contextual menu. (#4658)
  • We now allow materials to be dropped even if the view is not locked. (#5009)
  • When Material Editor is chosen to display a texture node (right-click on texture, then Open With>Material Editor), the selected texture is now displayed in the new Material Editor (which used to show up empty). (#5078)
  • New option to allow smooth transitions when fitting view to selection. The view will "travel" to the new position, so you keep track of where you travel to in the graph. (#5131)
  • Auto-layout the whole graph now also autofits the view. (#5158)
  • Added options in Clarisse Preferences to enable/disable smooth transitions and node auto zoom. This is located in NodalView section. (#5131 5132)
  • MaterialEditor has a new workflow for 'create and connect'. When connecting from an attribute plug, press TAB *before* releasing the mouse button. The TAB menu prompts you with the list of objects that can be connected to the attribute. Upon completion, the new object is created and connected. This feature applies also when disconnecting the attribute from an existing node: disconnect the link on its object plug, keep mouse down, press TAB, and proceed. (#5101)
  • New default collapse state for all new nodes can be found in Clarisse preferences (Nodal View section). A list button in the viewer toolbar allows user to locally override this default setting. Please note that the Clarisse preference applies to all new viewers, but has no influence on an existing viewer, unless it is set locally in 'use pref' mode. (#5132)
  • Node labels now automatically vanish when they become larger than their node (to avoid crowded views). (#5100)
Shading Layer
  • Shading Layers now accept groups in their children list. This allows to add them children dynamically using the Shading Layers contained in a group (which can of course be populated using a rule). (#5274)
  • In Shading Layer Editor, enhanced Drag&Drop to accept textures and displacements. It now allows the assignment to several rules altogether: when dropping on a selected cell, Clarisse figures out which dropped objects can be assigned to which selected cell. When dropping on a non selected cell, Clarisse assigns dropped objects to the highlighted row only, and does not care about current selection. (#5311 4719)
  • Enabled drag & drop within the widget itself:
    - dragging a full row (picking its left number) will copy all its references, script, and visibility values to the target row (the row which is highlighted on mouse up)- dragging cells: if dragged cell is selected, all selected values of dragged row will be copied to the target row. If dragged cell is not part of the selection, the selection is ignored and only the dragged cell's value is copied to the dropped row.
    - special case when dragging active or visible flag: the value of the clicked cell is switched on mouse down, then all rows being crossed while dragging are set to the same flag value until mouse up.
  • In ShadingLayer Editor, , resize-able columns can now fit to their content (double click on the right column separator). Delete button removes selected rules as before, Shift-click on it removes all rules. Clear button no longer removes all rules, it clears selected values instead. It can be used to unassign materials, displacements... (#5899)
  • Shading layers now support world search paths. We can specify a world relative path in a shading layer filter by prefixing the rule with "world:./" (#5684)
  • It is now possible to define shading layer rules that work as well for referenced Alembic and for Alembic bundles. (#3688)
  • In ShadingLayer Editor, rules can be reordered using mouse. Select the row(s) to be moved (click on the left number) and drag them. All moved rows are gathered to the drop location. (#5899)
  • In ShadingLayer Editor, added 2 new buttons in toolbar and 2 actions in contextual popup menu to duplicate selected rule(s) either above first selected or below last selected. (#5655)
  • It is now possible to choose whether the subdivision of meshes is done with our native implementation or with the OpenSubdiv library. (#4063)
  • Improved the construction of geometry bundle acceleration structures for displaced shading groups. (#5666)
  • Added a new "Support Space" attribute to scatterers which allows to choose the space in which the geometry support must be considered. (#5760)
  • Names of shading groups in Alembic bundles now reflect the kinematic hierarchy of objects when the file is imported or referenced. (#5685)
  • Added a new "Shading Groups Naming" parameter to Alembic bundles which allows to specify if shading groups reflect its Alembic path or its kinematic path in Clarisse. (#3688)
3d View
  • It is now possible to change the gamma of the 3D View and the Image View with a control that is next to the exposure one. (#4328)
  • It is now possible to to save renders from 3D View. (#4325)
  • Added new option to tune the way selected items are highlighted (none / bounding box / wireframe / both - by default, which was the previous behavior). (#5166)
  • 3d View and Image View now display a bounding box when a group or a context is selected. This bounding box includes all SceneItem objects contained in the group or context. (#5165)
  • Added a new attribute for SceneObject: 'highlight_mode', which tells how object is highlighted in 3D View when selected. This flag cumulates with the similar 3DView option (the bounding box of a selected object is displayed only if the 3D View asks for it, and the object itself agrees to display it). (#5166)
Texture View
  • When viewing a texture and hovering it with the mouse while the texture is being evaluated, the color information HUD now shows a black box and the text "evaluating texture..." instead of completely hiding the text. As soon as evaluation is done, HUD is updated with the color value. Previous behavior could be misleading. (#4926)
  • Added progress bars to the different evaluation steps to improve feedback. Known limitation: loading UV map names is not multi-threaded at the moment. (#5793)
  • Texture Uv View has been renamed to Texture View. (#6060)
Attribute Editor
  • Pop-up menu on attribute now has 2 ways to reset. Reset Attribute (formerly Reset) restores value as source value, eventually unlocalizes the attribute (if object is an instance). Reset Value restores class prototype default value, keeping instance's localization if any. (#4447)
  • Drag&Drop has been implemented for string/script attributes. One or more items may be dragged onto a string field in Attribute Editor or into the text editor sub-widget (opened with '...' button) The behavior may vary:
    - if item(s) are dragged from the Hierarchy view, the dropped string is the kinematic path of item(s), otherwise, it's the context path.
    - when target is a simple string, the cursor shows the dropped location while dragging, the dropped path(s) will be inserted into the existing value using a space as separator.
    - when target is a multiline string (for ex. group rules), the dropped path(s) will be appended to the existing value, using a ; as separator.
    - when target is a script, the edit field does not accept drop (it's read-only anyway).
    - when target is the text editor of a multiline string (for ex. group rules), the cursor shows the dropped location while dragging, the dropped paths are appended after current line if cursor is at end of line, before current line if the cursor is on start or in the middle of the line.
    - when target is the text editor of a script (for ex. OSL shader script), the cursor shows the dropped location while dragging and the dropped path(s) are inserted using a space as separator. (#4334)
  • Introduced new way to quickly edit object and reference list disable flags. Click the eye icon on first item then drag vertically. The value of the clicked row is switched on mouse down, then all rows being crossed while dragging are set to the same flag value until mouse up. You may cancel while dragging with the ESC key.
  • New groups 2.0. Groups are now a lot more flexible. They can now mix inclusion items, inclusion rules, exclusion items and exclusion rules. The result is dynamically deduced from included items and excluded ones. Groups content can now also be "baked" using the "update_mode" attribute. It allows to avoid group refresh even if it has dynamic rules. A refresh button is also there to perform a refresh manually in that case. Groups can also reference other groups (in all inclusion/exclusion items and rules fields), for which content will be brought back recursively into the group final reference list. For more information please refer to ... roups.html (#4781)
Objects and Scene Management
  • We can now add and remove custom attributes on referenced objects. This will create an override. (#5385)

Bugs Fixes
  • Fixed the proper update of advanced perspective camera attributes when focal length is animated. (#4952)
  • Temporary files created by OpenVDB are now deleted when exiting Clarisse. (#5541)
  • Fixed a bug in AOV store objects, causing a slowdown during project import/referencing. (#6339)
  • Fixed an issue when modifying alpha on a 3d layer with a gamma filter. Results were not what was expected when blending two layers with transparency if the top layer had a gamma filter. (#147)
  • Fixed a possible crash that could occur when selecting an image with a layer image. (#5263)
  • Fixed a bug in the raytracing of subdivision surfaces that was generating too many intersections for grazing angles. (#4898)
  • Fixed an issue with the irridescent material where the fresnels were mixed up. (#5406)
  • Bump quality has been improved, and crashes which may occur when computing it are fixed. (#5569 5860)
  • Fixed some issues with the iridescent material. (#5941)
  • Material override now works with volume material (#6288)
  • The physical SSS shader is now working correctly with bump and normal maps. (#6309)
  • Fixed potential issues that could occur during the raytracing of volumes and that could lead to infinite loops. (#6321)
  • Fixed a crash that occurred when assigning a volume material via the override material of a combiner/scatterer. (#6345)
  • Fixed a bug in the physical hair material that was causing artifacts when motion blur was active. (#6453)
  • Fixed issues with the physical volumes that were not receiving illumination correctly.
  • Fixed a bug in physical lights: reflections and transmissions max depth wasn't correctly applied when dealing with both specular and glossy bounces.
  • Fixed a bug in string attributes evaluation when using a shading variable with the '?' flag. In some cases, the flag was ignored.
  • Fixed a bug in multiple BxDF evaluation: in some cases BxDFs without remaining ray depth wrongly received indirect illumination.
  • Fixed a bug in volumetrics: in some cases shading variables were not activated on volume geometries.
Image View
  • Fixed color space being incorrectly applied in layer files over-scan region. (#5778)
  • In Layer File, fixed an issue that caused surrounding empty data regions to be filled using the repeat mode instead of reset mode, when the data window is smaller than the visible window. (#6279)
User Interface
  • In SetKey dialog, typing a frame value then clicking the OK button now implicitly takes the dangling value into account (it used to set the key at current frame instead). (#5205)
  • Fixed a crash that could occur when opening a popup menu on image history in Image View. (#5608)
  • Path Manager now displays proper information if it detects that a file matches an UDIM pattern. (#2095)
  • Fixed a glitch when validating an edit field using the keyboard pad enter key or tab key. The focus now goes to the next edit field as expected. (#5583)
  • Fixed a crash in CNode when using ix.save_project() on a new project in interactive mode. (#6388)
  • Random seed now changes properly each time a tool is selected. (#6370)
Shading Layer
  • Fixed override issue when referencing a project that is already referencing a project with shading layer overrides. This used to create unwanted pending objects and the shading layer content was wrong. (#5262)
  • The shading layer rule extraction to a new shading layer is now correctly extracting all rule components. (#2353 3970)
  • Fixed a crash that occurred when specifying rules in a shading layer that were invalid for search paths connected to it. (e.g. having a rule like "../*" with a search path set to "project://") (#5947)
  • Fixed an issue with absolute rules in shading layers when having a search path that did not contain any valid project path. (#5945)
  • Fixed a random crash that occurred when updating a displacement with motion blur activated. (#5974)
  • Fixed a crash with Alembic Bundle that occurred when at least one geometry was empty. (#6407)
  • Inherit Transform attribute set to false is now always taken into account with Alembic file when Pivot mode is set to Use Attributes. (#6428)
3d View
  • Fixed an issue with the background plate not being rendered when reopening a project, if both background and foreground plates were assigned. (#5163)
  • Fixed selection issues in 3D View with some items (#3050 4261)
  • Fixed drag & dropping items into toolbar selection mode widget, especially when view is currently in 'isolate' mode. (#6114)
Texture View
  • The widget now updates properly when displayed objects are enabled or disabled. (#3909)
Attribute Editor
  • Attribute Editor is now properly updated when attributes "hidden" flag is set on or off. (#4861)
Objects and Scene Management
  • Fixed crash when using expression a prototype attribute. (#5736)
  • Fixed an issue where inconsistency could happen between object updates when moving the timeline quickly. Some objects were updated properly with the new time while some others were not. (#3098)

SDK Changes
  • Groups
    Groups interface had a lot of modifications with the Groups 2.0 update. You can and should now achieve all the group API accesses using the group module rather than using the OfObject directly. All groups functionalities are exposed there.
    - Prior to Daedalus groups used a "mode" to specify whether to use a rule (or a set of rules) to find the list of objects, or directly a specified list of objects. They also allowed to specify other groups which content was excluded from the group results.
    - Daedalus Groups allow to combine inclusion and exclusion information to dynamically resolve group contents. The group mode is no more involved: rules and objects list are both used at the same time. It's the same for exclusion rules and exclusion list.
    - Major things to remember on Daedalus groups:</br>
    • (Inclusion Rules + Inclusion Objects) - (Exclusion Rules + Exclusion Objects) = Final list of objects
    • Class filter will filter the final list to match the specified class. This is unchanged
    • Groups specified in Inclusion Rules & Objects and Exclusion Rules & Objects will get their content resolved. That means that groups are not directly referenced by other groups, but their content are and this dynamically.
    • Since group content resolution is now always dynamic, a GroupUpdateMode has been introduced in case you want your group content to be baked which means that its content doesn’t change even if its content should be updated (with the exception of items being removed from the project).
    Here is a brief presentation of most common ModuleGroup methods:
    • add_inclusion_object // add an object in the group inclusion list
    • add_exclusion_object // add an object in the group exclusion list
    • set_inclusion_objects // set the list of included objects
    • set_exclusion_objects // set the list of excluded objects
    • get_inclusion_objects // get the list of inclusion objects
    • get_exclusion_objects // get the list of excluded objects
    • get_inclusion_rule // get the inclusion rule
    • get_exclusion_rule // get the exclusion rule
    • set_update_mode(GROUP_UPDATE_MODE_AUTOMATIC) // the group is in automatic mode and its content will be updated when needed.
    • set_update_mode(GROUP_UPDATE_MODE_MANUAL) // the group content is baked. It can be updated manually through a specific button in the attribute editor, or using the force_update_references function[/i]
    • force_update_references() // asks the group to update its content.
    • g[i]et_objects() // get the actual group list of objects. It may not be accurate if group is not in AUTOMATIC_MODE or if it’s dirty
    • get_updated_objects() // get the updated list of object. Update it now if the group is in AUTOMATIC_MODE. It may not be accurate if group is in AUTOMATIC_MODE.

  • It is now possible to pass a progress bar to IOHelpers::import_scene() (#4030)
  • Added the ability to specify from CID a custom order for attribute groups in Attribute Editor.
    New double property in cid: ui_weightcode>. Default order (definition range) if property is omitted. The lower the value, the upper the group will be displayed in Attribute Editor. Syntax:
    attribute_group "less_important" { doc "not very useful set of attributes" ui_weight 100 color "color" { value 1 1 1 } #... }
    attribute_group "most_important" { doc "set of attributes to be displayed first" ui_weight 0.001 #... }
    attribute group collapsed, ui_weight and doc properties are inherited through OfClass hierarchy. They can be overridden at any level.New methods on OfClass:
    bool is_group_ui_weighted(const CoreString& group_name, double& weight, const bool &recursive=true)
    const void set_group_ui_weight(const CoreString& group_name, double weight)
    void unset_group_ui_weight(const CoreString& group_name) (#1831)
  • OfTime has a new boolean attribute to enable sub-frame and a new method double OfTime::get_current_floating_frame() which returns either the rounded value (as get_current_frame would) or the exact value computed as current time*fps, depending on sub-frame status. Default value is false. Changing sub-frame status raises a EVT_ID_TIME_UI_SUBFRAME_CHANGED. Related "timeline_sub_frames" attribute has been added to Clarisse Application Preferences, Animation section. (#4329)
  • MaterialEditor: new command SetItemsNodalProperties to set node's expand state as well as node's location. Old command CreateSetItemPositionCmd has been kept for compatibility but is now obsolete. (#4658)
  • OfContext::reference_file now handles empty filename argument. CreateFileReferenceCmd now handles empty array of filenames: it creates a single empty reference with default name.
  • IOHelper: Added 2 methods to edit custom point clouds: add_particlesdecimate_particles
    ResourceProperty: added optional arguments to ResourceProperty::set_item_values to specify how many contiguous values are to be set (default=1)ModuleParticle: added method to retrieve internal cloud
    const ParticleCloud* get_particles() const (#4309)
  • Light API has been reworked, physical and legacy lights are now stored in same containers. The ModuleLight class is now inherited by both ModuleLightPhysical and ModuleLightLegacy, and all legacy callbacks (particularly illuminate ones) are now defined in ModuleLightLegacy.
  • OfReferenceContextEngine class has been split into several classes to separate overrides management from file referencing management. The new classes are OfOverrides, OfOverrideContextEngine and OfFileReferenceContextEngine. (#3772)
  • Added a new attribute for SceneObject: 'highlight_mode', which tells how object is highlighted in 3D View when selected. Related method is ModuleSceneObject::get_highlight_mode(). (#5166)
  • Added a new callback ModuleWidget::display_items(const CoreVector<OfItem *>& items). Intended to fine-tune Quick View and associate window (the one opened when double-clicking a item or dragging it in a tab or using OpenWith menu item). (#3846)
  • Added a new command BakeParticle to create a GeometryParticle object baking the point clouds of all specified geometries, and new command ClearParticle to empty specified GeometryParticle object(s).
  • Added a new method in ModuleParticle to retrieve internal properties: const GeometryPointPropertyCollection* get_properties() const
  • Fixed a bug in the referencing of objects by class for the deferred shading.
  • Added a new command AddParticle in ModuleParticle, to feed a GeometryParticle with some geometries (positions & optionally normals), new command RemoveParticle to decimate specified particles from a GeometryParticle.
  • Added a new command JitterParticle in ModuleParticle to randomly modify positions in GeometryParticle object(s), according to a variance vector expressed in world, object or local space (local space relies on normals and velocities found in the cloud: y=particle normal, z=particle velocity)
  • Added new options AppDialog::STYLE_OK_APPLY_CANCEL, new AppDialog::VALUE_APPLY. Used by Clarisse::inspect widget. When user clicks 'apply', ClarisseApp raises an EVT_ID_CLARISSE_INSPECT_WINDOW_APPLY, and the dialog is kept running.
  • Added a new command MoveParticle in ModuleParticles to edit a Particle cloud, that either:
    - translates some particles, applying to the particles whom ids are provided a given amount of translation, expressed either in world, object or local space (local space relies on normals and velocities found in the cloud: y=particle normal, z=particle velocity)
    - sets new positions for the particles whom ids are provided, according to specified locations.
    Added new methods IOHelpers::move_particles_relative (the translate case described above) and IOHelpers::move_particles_absolute (the set case above)
  • The pick_vertices method interface in ModuleWidget has been modified, to handle a new type of vertex gathering.
  • A new method has been added on the attribute dynamic evaluators, to retrieve string shading variable as references.
  • It is now possible to retrieve the value of a string typed shading variable as reference in the OfAttrDynEvaluator.
  • In the SDK/API section of the documentation, there's now a topic introducing CID syntax
  • CtxTransmittance structure doesn't clear opacity and absorption samples upon compilation anymore. Both arrays are also now accessible. (#5365)
  • GeometryDeferredShadingGroup: added the set_custom_data() function that allows to attach custom data to the group and renamed alloc_data, free_data and get_data to alloc_shading_data, free_shading_data and get_shading_data. (#5302)
  • ModuleMaterial: added a new callback for the deferred shading that is called before gathering the data of a shading group: pre_deferred_shading_group. The size of the deferred shading data is not specified anymore to the enable_deferred_shading function and the shading data must be allocated from the pre_deferred_shading_group callback instead. (#5302)
  • Improved the way object and intersection filters are working: it is now possible to apply the remaining filters from an executed filter and ensure that all filters are called once. (#5494)
  • In the SDK/API section of the documentation, there's now a topic regarding CMA and cmagen
  • Fixed SetCurveKeyValue command that did not fix the value properly. (#5687)
  • ModuleProjectSearchPath class has been renamed into ModuleSearchPath. It now supports project and world paths. (#5684)
  • Fixed OpenEXR configuration headers that were not taking in account all platforms.
  • - Enhanced ShaderHelpers::raycast to specify a list of objects to pick or exclude from picking. Default behavior is exclude (as before).
    - Enhanced CtxHelpers' SceneItem filters to specify a list of objects to be considered or excluded. Default is "exclude" mode (as before). Renamed {Frustum,Raytrace,RayFrustum} ExcludeSceneItemData to {Frustum,Raytrace,RayFrustum} SceneItemData and the static callbacks accordingly.
    - ModuleWidgetQuery updated accordingly.
  • TextureSpace has a new ComputationMode attribute which specifies if projection transformation must be computed or not before UV transformation when the texture is evaluated. (#4505)
  • TextureSpace projection attribute can now specifies if the texture is evaluated on the base or the deformed geometry in object space. (#5805)
  • GeometrySceneInfo now stores all items kinematic paths.
    GeometrySceneInfo::build_shading_group_names() may now take one argument which specifies if shading group names are generated according to item names or kinematic paths. (#5685)
  • MoveShadingLayerRules command has an extra optional boolean argument to move several rules to an absolute rank. By default, it is true (relative) to behave as before and shift all rules the same amount. BTW, the command no longer needs you to care about order when specifying ids to move, and it handles a relative shift greater than +- 1. (#5899 5928)
  • GeometrySceneInfo does not store anymore all the shading group names of the bundle. The method build_shading_group_names() now needs to be called if you want to retrieve all shading groups. (#3688)
  • Fixed functions ix.application.select_next_outputs() and ix.application.select_next_inputs() to return proper result in all cases.
  • OfOverridesContextEngine has been updated to provide minimal reloading of referenced project.
    Custom context engines that inherit OfOverridesContextEngine now have to implement the 'update_content' framework.
    These virtual methods need to be implemented:
    virtual void on_update_content(const OfSerialOptions& overrides_options) // override this method to specify your custom content
    virtual bool can_update_content() const // returns true if the update process can be done right now
    virtual void update_content(const OfSerialOptions& overrides_options) // performs the update content process if possible (according to can_update_content) and manages reapplying overrides
    virtual int get_override_kind(const OfObject& object, const CoreString& attr_name) const // queries the kind of the override according to the specified attribute, returns OfOverrides::OverrideKinds enum value regarding if the override needs to update the content of the context (eg. override on 'filename' attribute)
    As known limitations, OfOverrides class is now exposed but the API needs to be enhanced.
  • Minor change for method ImageMapTile::write_data(...), it now returns a boolean value to indicate whether the tile is now 'clean'.
  • Added a new virtual method to ModuleSceneObject returning the number of shading groups for a specified sub object.

Known Bugs and Limitations
  • Greyed out "Load Current" button on file reference contexts because it was not working as expected. It will be restored in a future version.
  • Overriding an OSL script in a referenced project can lead to a crash when saving.
  • Saving images with AOVs in the .exr file format works with dwaa and dwab compression (new in DR1), but loading them is not implemented yet. This is a known limitation that will be removed in Daedalus R2.
Render Region
  • Render region tool limitations: the region is limited to the image visible window even though the Image View is now capable of displaying the overscan data. It is already planned to improve the render region tool to allow defining a render region in the overscan window. Also, the render region tool has usability bugs (bug ID #6307) that are going to be fixed in the next 3.0 SP and Daedalus releases.
Image View
  • Image View plates limitation: plate images are always stretched to the image visible window size. More plate options are going to be added to give better control on the plates.
Support Team
User avatar
Posts: 983
Joined: Thu Jan 31, 2013 12:10 pm

Return to Clarisse iFX Daedalus