Stingray 1.9 Release Notes

Stingray 1.9 helps you create a more realistic distribution of light in your scenes, by introducing physical lights with temperature settings and IES light profiles. Custom tone mapping and an updated clear coat material also increase the control and quality of your rendering.

Other enhancements include the ability to mark assets in the Asset Browser as favorites, making it easy to find them anytime. As you work in the Stingray editor, your assets are now automatically updated in all connected engines. An updated Capture Frames plug-in offers an extensibility interface designed to allow support for additional codecs, and scripters and programmers can now debug a project’s Lua code from the Visual Studio Code editor.

This release also offers an experimental HoloLens project, accessible to source customers.

For details on these and more new features, refer to the What's New section below.

Important: We strongly recommend that you back up your existing Stingray data or work on a copy of your project when using a beta version of Stingray.

Sections in this topic:

What's New


Physically-based lights

The new Physical Light entity lets you use data from real-world lights to create a realistic distribution of light in your scene. You can add a Physical Light from the Create panel, and adjust its Brightness and Temperature using new sliders in the Property Editor. To emulate the distribution of a real-world light source, import an IES Light Profile and assign it to your light. Physical lights are fully compatible with the light baker, so your lights appear when you bake your scene. See Physically Based Lighting and Create a physical light.

Capture Frame Tool updates

The Capture Frames tool has now been updated to be a frame capturing interface plugin tool with a separate encoder plug-in using the OpenEXR format (.exr). You can extend the encoder plug-in with other encoder formats to capture frames in different file formats.

Favorites in Asset Browser

You can add frequently used assets or folders as favorites to the Favorites directory in the Asset Browser. Check the favorite icon or right-click in the Asset Browser and select Add to Favorites to mark an asset or folder as favorite. You can also drag and drop assets and folders to the Favorites directory. For more information, see Asset Browser.

Texture Manager improvements

Continuing the improvements from the previous release, the Texture Manager tool is looking better than ever. The platform list looks crisp and compact, and headers added to the texture view list lets you view textures in an organized manner. You can organize your textures in the Texture Manager by sorting them by size, date modified or name. The Texture Manager also now preserves the state of UI layout you adjust like filters enabled or resized filter views.

Debug projects in Visual Studio Code

You told us that you wanted to debug your projects in a dedicated, full-featured development and debugging environment, and we listened! As of now, you can use our Stingray extension for Visual Studio Code to set and trigger breakpoints in Lua code, step through your code, trace variable values, send commands and Lua to the engine, read console messages, and more!

We're so happy about this new workflow, and so confident that you'll love it too, that we've removed the old integrated Script Debugger from the Stingray editor.

FBX Version 2018.1.1

This release of Stingray picks up the latest version of FBX (2018.1.1), which provides various improvements and bug fixes.

Updated DCC interop plug-ins

This release also includes an updated Stingray DCC Link plug-in to support Maya 2018 and Maya LT 2018. For information on the plug-ins, see Interop with Maya, Maya LT, or 3ds Max.

Clear coat improvements

Clear coat is now more energy conserving, which reduces bloom when using a clear coat material.

Custom tone mapping

A new shading environment property lets you disable default tone mapping, and extend tone mapping through a custom plugin. See Shading environment properties.

Note: It is recommended that you leave default tone mapping enabled unless you are implementing custom post effect features.

Connected engines now auto-refresh

Whenever you have to make changes to your project's resources, it's a lot easier to get those changes right when you can see them in context, running in the engine on your target platform.

So, as of this release, whenever you're working in the editor and you're connected to a live instance of the Stingray engine (that is, an engine that you launch with either the Test Level or the Run Project buttons), the engine automatically detects any changes you make to your project resources and reloads those modified assets whenever possible.

(Note that for some kinds of assets, like levels and script files, you may need to do a couple of extra steps. For details, see Reloading resources.)

Experimental feature: HoloLens updates

What else is new?

What's new for developers?

Typescript and the JavaScript API reference

We're starting to move the editor's front-end JavaScript code to TypeScript! This won't change your life much as a plug-in developer, since the changes for now are mostly about how we manage our own source code in our repo. You can keep doing your editor plug-ins in plain JavaScript the way you have been.

But we wanted to mention that as a result of this change, we're also taking out our old JavaScript API reference docs for now. We don't think this is a terrible loss -- since they never fully covered the whole public API, you often had to go look for functions directly in the editor's source files anyway.

Our hope is that before long we'll be able to leverage the built-in type info in the new TypeScript code to generate a much more complete and more useful reference than we had before.

Native zip support for editor plug-ins

The stingray.fs JavaScript API now offers built-in support for working with .zip files:

stingray.fs.zip(folderPath:string, zipFilePath: string): boolean

Creates a new zip file from the contents of folderPath, and names the new zip file zipFilePath. The return value indicates whether the new file was written.

stingray.fs.zipinfo(zipFilePath: string): array.<{path:string, size:number}>

Reads a zip file named zipFilePath, and returns an array of all objects contained in the zip. Each object in the array has a path member that identifies its filename within the zip, and a size member that contains its size when uncompressed.

stingray.fs.unzip(zipFilePath:string, destinationPath: string): boolean

Reads a zip file named zipFilePath, and extracts its contents to the folder named destinationPath. The return value indicates whether the extraction was completed successfully.

Run Lua from JavaScript and get its result in a Promise

The JavaScript engine-service offers a new function, evaluateScript(). This function runs a Lua script in the engine's Lua environment, and returns a Promise that you can use to access the result of that Lua script. This makes it much easier for your plug-in's JavaScript code to get and use the results of Lua snippets, using the same asynchronous mechanism you use to call other JavaScript services provided by the editor.

For example:

let snippet = "6 * 8";
engineService.evaluateScript(snippet).then(
    function (result) { console.log("The result is: " + result); }
);

Return to top

What's Fixed

Previous known limitations:

These were late-breaking issues that affected Stingray 1.8 as known limitations. They really bugged us and we're extra happy to tell you we fixed them in Stingray 1.9.

Asset Browser

General

Audio/Wwise

Deployer/Connections

Engine Core

Flow

Interop

Level Editor

Particles

Rendering

Texture Manager

Tools Foundation

Return to top

Known Limitations


This section lists known limitations and workarounds for Stingray.

Unless otherwise noted in the What's Fixed section, please be aware that this release contains the same Known Limitations described in the previous versions of Stingray Release Notes.

Note: We recommended you back up your existing Stingray data or work on a copy of your project when using a beta version of Stingray.

Return to top

Upgrade Requirements


The full installation guide for Autodesk products including Stingray is included in the Stingray online help, here.

This section explains the improvements and fixes that require specific upgrade steps for users currently using a previous version of Stingray.

Shader compiler updates

The D3D10 compatibility flag, D3D10_SHADER_ENABLE_BACKWARDS_COMPATIBILITY, has been removed from the D3D11 shader compiler. This change affects users with custom shaders. Without the compatibility flag, you can no longer modify shader constants, as they are now considered static. To modify values, you now need to create local variables.

Clear coat changes

Updates have been made to improve clear coat. As a result, the behavior of the Output node has changed. If your project contains a clear coat material, you may need to adjust your content.

Entity and component API changes

This release changes the way you interact with entity components in the Lua and C APIs. Each component now requires an ID that is unique within the entity that owns it. You use this ID to retrieve a reference to the individual entity instance from the component manager.

For an overview of how these component IDs and component instances work, check the Interact with entities during gameplay page.

If you're using either the Lua or C APIs to interact with your entities, you'll probably have to update your code:

For some background on why we made these changes, see the blog post.

Lua API changes

For a complete list of all new, modified, and removed elements in the Lua API in this release, see the version history.

If your project contains any API elements that have been modified or removed, you will need to adjust your code accordingly.

The main changes are:

Xbox One XDK version

Stingray now requires the October 2016 QFE 2 release of the XDK.

PlayStation 4 SDK version

Stingray now requires Version 4.0 of the PlayStation 4 SDK.

If you have trouble upgrading to this version from an older version of the SDK, try deleting any existing files from the C:\ProgramData\SCE directory before you install.

Plug-in SDK changes for developers

If you've used the Stingray SDK to create plug-ins for previous versions of Stingray, this section summarizes the main changes in this release that might affect you.

Engine C APIs

IMPORTANT NOTE: Binary compatibility is not guaranteed against the previous version! If you used the C plug-in APIs to create plug-ins for the engine, your plug-in may or may not work correctly against this version of Stingray. It may continue to work if your code does not use any of the APIs that have changed since the previous version. However, we strongly recommend getting the latest version of the Stingray SDK header files and re-compiling your plug-in's .dll against the new headers.

For a complete list of all new, modified, and removed elements in the engine plug-in API and C script APIs in this release, see the version history.

Editor C APIs

For a complete list of all new, modified, and removed elements in the editor plug-in API in this release, see the version history.

In this release, the editor API has not changed significantly. There are no upgrade requirements; it should be binary compatible and API compatible.

Editor JavaScript module paths

If your plug-in needs to refer to another script module that you ship with your plug-in, or a script module in a different plug-in, you may need to adjust the path you use when you refer to that module in require() and define() calls.

You used to be able to start your module paths with the name of your plug-in, and require.js would automatically resolve it. In this release:

Return to top