Skip to content

Releases: bmwcarit/ramses-composer

v1.8.0

10 Mar 13:32
Compare
Choose a tag to compare

[1.8.0] Free Tagging System, Lua Logging, Linkable Struct Uniforms, Misc Bugfixes

  • File version number has changed. Files saved with RaCo 1.8.0 cannot be opened by previous versions.

Added

  • Introduced free tagging system by adding a userTags property to all object types.
    • The user tags are independent of the normal tags property controlling the render setup.
    • They can be accessed in the Python API using the new getUserTags/setUserTags functions analogous to the normal setTags/getTags functions.
    • Added filtering by user tags to the tree views.
  • A facility generating custom log messages from LuaScripts, LuaInterfaces, and LuaScriptModules using the rl_logInfo, rl_logWarn, and rl_logError functions has been added.
    • Calling these functions will result in a log message being generated by the LogicEngine with the string argument of the function as message.
    • The logging facility is enabled in normal operation in RamsesComposer but will be disabled during export. This may lead to export failing if the logging functions are called.
  • Added full support for linkable struct uniforms. Instead of a flattened property structure for struct and array of struct uniforms the application now builds the same recursive property structure as for LuaScripts. This makes uniforms structs linkable as a whole.
  • Added support for the lua saving mode in the export dialog and the Python API. The lua saving mode can be also specified using the '-s' command line option in the headless application.

Fixes

  • "Save As with new ID" will now change all object IDs in the saved project. It is therefore possible to use objects from both the original and the copy as external references in the same project. The save function of the Python API had to remove the 'setNewID' flag and doesn't support "Save As with new ID" anymore.
  • Fixed missing link validity update for links starting at external objects and ending on local objects when the set of properties of the starting object has changed in the external project.
  • Fixed category names for BlitPass and RenderBufferMS types in the resource view.
  • Fixed crash when moving multiple interlinked objects out of a Prefab.
  • Fixed Ctrl+C shortcut to consistently copy the selection from the Python Runner and the Property Browser. Removed Copy and Paste commands from Main Menu, because they are now pane-specific.

v1.7.0

31 Jan 12:03
Compare
Choose a tag to compare

[1.7.0] External Textures

  • File version number has changed. Files saved with RaCo 1.7.0 cannot be opened by previous versions.

Added

  • Added new TextureExternal type and support for the corresponding samplerExternalOES uniform type.
    • To use samplerExternalOES uniforms the shader needs to enable the extension for it with #extension GL_OES_EGL_image_external_essl3 : require.
    • This can be used to create textures which may be connected at runtime to external buffers also created at runtime. Since no external buffers can be set up in RamsesComposer these will be rendered in black in the preview.

Changes

  • Update ramses-logic from 1.4.1 to 1.4.2.
  • Update ramses from 27.0.128 to 27.0.130.

v1.6.0

27 Jan 12:02
Compare
Choose a tag to compare

[1.6.0] Skinning, Morphing, property copy/paste, modules for Lua interfaces, misc bugfixes

  • File version number has changed. Files saved with RaCo 1.6.0 cannot be opened by previous versions.
  • Export now supports ramses-logic feature levels up to 5. Scenes exported with feature level 4 can't be opened with ramses-logic before v1.3.0. Scenes exported with feature level 5 can't be opened with ramses-logic before v1.4.1.
  • Starting at feature level 5 modules() statements in LuaInterfaces are not silently ignored anymore. Upgrading a scene to feature level 5 may therefore result in errors appearing in the scene which can be remedied by removing the offending modules() statements or supplying a module as needed.

Known Issues

  • Animations of rotations are currently only working correctly for single-axis rotations due to an issue in the LogicEngine.

Added

  • Added support for vertex skinning and import of skinned meshes from glTF files.
  • Added basic support for morphing: morph target position and normal mesh vertex attributes and morph weight animations will now be imported from glTF files.
  • Added Copy/Paste functionality to all properties, accessible through their right-click context menu.
  • Available at feature level 5: Added support for lua modules used in lua interfaces.
  • Added indicator for nodes visibility to SceneGraph and Prefabs view.
  • Added release_headless build folder with Ramses Composer Headless. It can be shipped and run independently from Ramses Composer Editor.
  • Added "MSAA off" option to Ramses preview window and remove "MSAA 1x" option. The MSAA off option uses nearest neighbor filtering.

Changes

  • Update ramses-logic from 1.3.0 to 1.4.1.
  • Update ramses from 27.0.126 to 27.0.128.

Fixes

  • Fixed crash in GLTF import dialog when importing with some items deselected and then trying to import again from the same file.
  • Fixed crash on startup in case oldest log file is locked by a running process.
  • Restrict feature level to the maximum supported one in the GUI application on startup to avoid crash when the feature level in the ini file is too high.
  • Made error message in RenderTarget with mixed multi-sampled and normal buffers more descriptive.
  • Prevent Recent Files menu from force downloading OneDrive files.
  • Consistently show "Export with errors" in export dialog when RaCoHeadless would not export the scene.
  • Fixed broken coloring in Python runner log.
  • Consistently use relative paths in the created resource uris when importing from glTF files.
  • Fix file not found errors when encountering files with links in their paths. This removes the URI case-sensitivity on Windows systems.
  • Fix TracePlayer unintended retention of Lua properties values between trace loads.
  • The glTF mesh import has been fixed to correctly transform and normalize the normal vectors when baking all meshes in the glTF file into a single mesh object.

v1.5.1

29 Nov 12:01
Compare
Choose a tag to compare

[1.5.1] Bugfix release

Changes

  • Import dialog items are split into Scene Graph and Resources categories.

Fixes

  • Control of render order by manually changing a renderableTags child property of a RenderLayer now works correctly.
  • Make error color in Python runner readable.
  • Ignore RenderBufferMS-related errors when exporting as a workaround for a Ramses bug.

v1.5.0

17 Nov 14:26
Compare
Choose a tag to compare

[1.5.0] Multisampling, dynamic render order control, Python API improvements

  • File version number has changed. Files saved with RaCo 1.5.0 cannot be opened by previous versions.
  • Export now supports ramses-logic feature levels up to 3. Scenes exported with feature level 3 can't be opened with ramses-logic before v1.2.0.

Added

  • Available at feature level 3: Dynamic control of render order by making the individual renderableTags properties for each tag linkable.
  • Python API changes
    • Added get/setTags, get/setMaterialFilterTags, and get/setRenderableTags functions to access the tags, materialFilterTags, and renderableTags properties en bloc.
    • The renderableTags property in RenderLayer objects is now visible from Python to allow linking it.
    • Added addExternalProject(path) to add a project as external reference.
    • Added addExternalReferences(path, type) to import all objects of a certain type as external references. Type can be either a single string or a list of strings to import multiple types at once. Returns the imported objects.
  • Multisampling support
    • Added MSAA option to Ramses preview window.
    • Added RenderBufferMS usertype that handles Ramses TextureSampler2DMS objects.
    • Added Material support for shader uniform type sampler2DMS.
    • Added new example shaders multisampler.(frag/vert).
  • Added BlitPass usertype.
  • Added support for array uniforms in shaders. Only simple types but not struct are supported as array elements.

Changes

  • Update ramses-logic from 1.1.0 to 1.3.0.
  • Update ramses from 27.0.121 to 27.0.126.
  • Items in the Resource View are now grouped by their type.
  • If exporting in headless fails, the errors causing that failure are now always logged into the console output.
  • Upgrade Feature Level menu moved down below Save As...
  • TracePlayer now throws an error together with the trace line number, timestamp and the step at which error occurs.
  • "Save As with new ID" added.

Fixes

  • Removed double scrollbar in Project Settings.
  • Fixed wrong Feature Level number in RCA file after upgrade.
  • Fixed misleading error message sometimes appearing for empty texture uniforms.

v1.4.0

04 Oct 13:21
Compare
Choose a tag to compare

[1.4.0] Python API enhancements, various usability improvements and bugfixes

Added

  • Added better support for feature levels in the GUI application
    • Default feature level for new projects can now be set via the preferences dialog.
    • Added "File/Upgrade Feature Level" submenu to upgrade the currently active project to a higher feature level. This will first save the project. Afterwards it will load the project again while upgrading to the desired feature level.
    • Loading a project which uses an external project with a higher feature level will show a dialog allowing the user to upgrade the feature level of the loaded project to the feature level of the external project.
  • Added mesh metadata display for unbaked Meshes, e.g. gltf-extras values (currently string values only)
  • Python API improvements
    • Added feature level parameters to functions reset and load.
    • Added keys() member function to objects and properties.
    • Added property access via indexing operator [] for objects and properties.
    • Added hasSubstructure() member function for properties.
    • Added more checking of error conditions.
    • Added getInstanceById(id) function to get a specific instance.
    • Added isRunningInUi() function to query if RaCo is running in gui application.
    • Added minFeatureLevel() and maxFeatureLevel() functions to determine currently supported feature levels.
    • Added isReadOnly(), isExternalReference() and isResource() member functions to objects.
    • Added getPrefab(), getPrefabInstance() and getOuterContainingPrefabInstance() member functions to objects. These return either None or the respective prefab/prefabInstance.
    • Added isReadOnly(), isValidLinkStart() and isValidLinkEnd() member functions for properties.
    • Added getErrors() function to read active errors as a list of ErrorItem.
    • Added metadata() member function to get any mesh metadata for a mesh object.
    • Added raco_gui python module, which is only available when running the composer in the GUI and needs to be imported separately.
    • Added getCurrentSelection() function to the raco_gui module, returning a list of the currently selected editor objects.
    • Added importGLTF(path, parent) to import a whole glTF file into the scene. path can be either relative to <projectFolder>/meshes/ or absolute, parent argument is optional. If not provided, the object will be attached to the scene root.
    • Added -y command line option for both headless and GUI application to set additional python module search paths. Multiple -y options may be specified to add multiple directories. The additional paths are added before the default search path.

Changes

  • Made URIs case-sensitive on Windows systems.
  • Made Export Dialogue less confusing
    • Removed Export Path Field.
    • Added buttons to select export target files.
    • Export Paths now use relative paths to increase readability.
    • Split the export summary to make it easier to differentiate between Scene Graph items and Resources.
  • Errors and Warnings of externally referenced projects are now highlighted in Error View
    • Their visibility can now be toggled on and off.
    • Added a context menu option to directly open the referenced project.
  • Changed Python runner in UI from a dialog to a dock with added output functionality.
  • Error messages regarding external references now contain more information.
  • Object Name tooltips now display the name an object will have after export.
  • When importing resources, Git LFS Placeholder files are now detected and yield a helpful error message.
  • Retain tree view item name during an in-place edit until user changes it.

Fixes

  • Fixed Lua Runtime errors not being displayed within Error View in nested prefabs.
  • Realigned LuaInterface color picker/property expansion behavior with LuaScript behavior.
  • Fixed Linux linker errors when compiling with a higher gcc version than 7.5 (i.e. gcc-9 in Ubuntu 20.04 or gcc-11 in Ubuntu 22.04).
  • Fixed wrong glTF scenegraph getting shown when trying to import scenegraphs from .gltf files that have not been yet used in the project.
  • Changed naming of logfiles: create logfile names based on process id and remove the oldest ones based on modification time.
  • Added error item for inconsistent blend option settings in Material and private material of Meshnodes.
  • Optimize link removal to speed up saving of large projects.
  • Fixed a crash when pasting text from the clipboard without having anything selected.
  • Fixed preview "best fit" scaling to avoid showing scrollbar for all scene and preview dock size combinations.
  • The origin of the displayed coordinates when mousing over the preview dock is now in the lower left.

v1.3.0

31 Aug 10:35
Compare
Choose a tag to compare

[1.3.0] Ramses Logic feature level 2 support, relinking, search function, UI improvements

  • File version number has changed. Files saved with RaCo 1.3.0 cannot be opened by previous versions.
  • Export now supports ramses-logic feature levels 1 and 2. Scenes exported with feature level 2 can't be opened with ramses-logic before v1.1.0 or with ramses-logic using feature level 1.

Added

  • Added support for LogicEngine feature levels
    • The current feature level of a project can be seen in the ProjectSettings object.
    • An application feature level can be set using the '-f' command line option in both the GUI and the headless application.
    • Creating a new project will use the application feature level. If the application feature level is set to -1 the maximum supported feature level is used.
    • Loading a project will set the current feature level to the project feature level if the application feature level is set to -1. If the application feature level is >=1 the project will be upgraded to the application feature level on load. Downgrading to a lower feature level is not possible.
    • Loading a project will always upgrade all externally referenced project to the feature level of the loaded project.
  • Added support for the following features available at LogicEngine feature level 2
    • Added new linkable enabled property to Nodes.
    • Allow using planes for the frustum of perspective cameras. Switching is performed using a new frustumType property in the PerspectiveCamera. The properties in the frustum container of the camera will be changed accordingly.
    • RenderPass property changes
      • Added a new linkable renderOnce property.
      • Renamed order to renderOrder to match the LogicEngine property name.
      • Made the enabled, renderOrder, and clearColor properties linkable.
    • Added the AnchorPoint user type.
      • Anchor points are LogicEngine objects calculating the viewport coordinates and the depth of a node origin as seen by a camera.
      • Anchor point objects can't be used as external references.
      • See LogicEngine documentation for details.
  • Added improved reference editor. The new reference editor follows the same functionality as the link start point editor.
    • Copied objects that are able to be used as references can be set as such a reference by right-clicking on the reference text box in the Property Editor.
  • Added tree view object filter ability.
    • Search words can be separated by space to combine multiple searches.
  • Added in-place renaming option for tree views.
  • Automatically fill the shader paths when the first path is set following a simple naming convention based on file extensions. Two naming conventions are supported
    • Extensions *.vert, *.geom, *.frag, *.def
    • Extensions *.vert.glsl, *.geom.glsl, *.frag.glsl, *.def

Changes

  • Allow relinking of external projects during load when a project file is missing.
    • A warning message is shown and the user can choose to supply a new project file to load instead of the missing project.
    • Only the loading process if affected, neither the main nor any external project are saved automatically.
    • Due to the removal of redundant information during file save the new project path will only be saved if the external project is directly used by the current project.

Fixes

  • Fixed the ~11 seconds freezing in RaCo Editor, under Linux with Nvidia in performance mode, when the Preview dock is resized.
  • Fix trace player to update the outputs of LuaScript objects correctly when locking objects.

v1.2.0

23 Aug 10:30
Compare
Choose a tag to compare

[1.2.0] Trace player, weak links, and running Python script in GUI application

  • File version number has changed. Files saved with RaCo 1.1.2 cannot be opened by previous versions.

Added

  • Added ability to run Python scripts in the UI version.
    • Use the new command line argument "-r" to run Python scripts before the UI appears.
    • During UI usage, you can run Python scripts using the new dialog "File" -> "Run Script..."
      • Note that Python functions "load()" and "reset()" have been temporarily disabled for this particular use case as they are currently incompatible with scene switches in the UI.
  • Added TracePlayer
    • TracePlayer is used for simulation and debugging purposes, where a recorded, or manually defined, animation scenario in a RaCo trace file (.rctrace) can be loaded and played in the scene.
    • rctrace files are JSON based files that should contain so called frames of scene properties data in consecutive timestamps snapshots.
    • TracePlayer parses frames periodically based on RaCo application update time and updates the corresponding LuaScript or LuaInterface object(s) in the scene.
    • For more details with an example, see the TracePlayer section in the Ramses Composer documentation.
  • Added support for weak links. Weak links are ignored in the LogicEngine Lua dependency graph which determines the Lua execution order.
    • Weak links can be created in the UI when a loop would be created with a strong link.
    • Strong/weak links are indicated in the property browser by double/single left arrows next to the link menu button.
    • The Python API addLink received an additional argument to allow creating weak links.
  • Added "all file" filter for file dialogs that load files (e.g. URIs).

Changes

  • Changed "ramses-framework-arguments" ("-r") command line argument to "framework-arguments" ("-a").
  • Icons in read-only state (e.g. link icons of properties in the Property Browser) will retain their color now.
  • Removed lua script time_ms hack.

Fixes

  • Fixed incorrect update of PrefabInstance contents when loading a scene with a camera inside a PrefabInstance referenced by a RenderPass.

v1.1.2

17 Aug 12:10
Compare
Choose a tag to compare

[1.1.2] Lua Interface Naming Bugfix

Fixes

  • Change names of LuaInterface objects in the LogicEngine to match the conventions used for LuaScripts. In particular
    • LuaInterface objects outside any PrefabInstance use the LuaInterface name in the LogicEngine.
    • LuaInterfaces which are direct children of a non-nested PrefabInstance are named <PrefabInstance name>.<LuaInterface name>
    • All other LuaInterfaces have the object ID of the LuaInterface object appended <LuaInterface name>-<LuaInterface object ID>.

v1.1.1

03 Aug 10:48
Compare
Choose a tag to compare

[1.1.1] Lua Interface, Timer, and Animation Bugfixes

Fixes

  • Fixed migrate_recursive.py python script to avoid early exit in projects whose external projects graph has multiple paths to some external project.
  • Fixed warning about unlinked LuaInterface outputs when exporting by optimizing away LuaInterface objects in the LogicEngine which are unnecessary.
  • Fixed crash when attempting to create a link between an empty LuaInterface and an empty LuaScript, both with empty uri.
  • Prevent creation of link loops after removing link when multiple links between the same objects are present.
  • Fixed links starting on Animation output properties not working in LogicEngine.
  • Renamed Animation "animationOutputs" property to "outputs" for consistency with LuaScript and Timer property naming.
  • Fixed Timer objects being deleted all the time by "Delete Unused Resources" despite potential links to and from the Timer.