Search Unity

Unity 2019.3 beta is now available

August 27, 2019 in Technology | 13 min. read
Topics covered
Share

Is this article helpful for you?

Thank you for your feedback!

The last beta release of the 2019 cycle, Unity 2019.3b, is here and it comes packed with new features, improvements, and a completely refreshed interface. Download it to get an early look at these highlights as well as to explore the new Input System, post-processing in the Universal Render Pipeline (formerly LWRP), physics updates, faster in-Editor iteration times, and the debut of ray tracing in Unity. 

Unity 2019.3b is available on the Unity Hub (go to Installs > Add Latest Pre-Releases). We look forward to receiving your feedback to ensure we deliver the best possible version of Unity later in the official 2019.3 TECH stream release. 

Additionally, we encourage you to try our brand-new ray-tracing capabilities implemented via the DXR API (available in the High Definition Render Pipeline). 2019.3b participants also get a chance to win an NVIDIA GeForce RTX 2080 GPU. See the end of this post for details.

Editor updates

Revamped Editor UI: New icons and font, visual feedback, and more 

The updated Editor UI includes uniform icons that convey concepts more clearly and with full high-DPI support. The UI also features a new font (Inter), which is more legible and scales well across many different UIs and display types. We’ve also added visual feedback for the hover state control, which improves usability and makes the UI more responsive.

We’ve refreshed the Editor UI and added many usability and visual improvements.

Faster iteration with new Enter Play Mode options

We’ve added Enter Play Mode options in Project Settings > Editor > Enter Play Mode options as an Experimental feature. These options allow you to disable domain and/or scene reloading from the Enter Play Mode process when there are no code changes. This makes it much faster for you to prototype and iterate. Based on our test results, this update can save you up to 50-90% of iteration time, depending on your project. 

You can also access this feature through an API and a Callback if you want to reset the game state before entering Play Mode. Have a look at the preliminary documentation for more details.

Tests carried out using the new Enter Play Mode options with an AA production title, Unity’s FPS Sample Game, Megacity, and an empty project, the graph represents the seconds it took for the Editor to enter Play Mode, smaller numbers are better.

Core functionality updates

Asset Pipeline Version 2

We’ve replaced the Asset Pipeline Version 1 with Version 2. This brings asset dependency tracking and many other improvements that together lay the foundation of a more reliable, performant and scalable pipeline.

A new experimental functionality is that you can have multiple revisions stored in the Asset Pipeline which will greatly improve platform switching and swapping between previously imported versions of assets.

Other experimental features, such as the ability to import assets on-demand and asset importing as a background process, will become available during the Unity 2019.3 beta cycle.

Addressable Assets for teams producing complex live content

The Addressable Asset System gives you an easy way to load run time assets by “address”. It reduces content management overhead and simplifies the process of deploying updates. Learn more about the system in this blog post.

Serializing references and polymorphic data

The new SerializeReference attribute lets you serialize C# classes as references instead of as value types. This means you can have POCOs (plain old C# objects) referencing each other, simplifying the code to express and manage complex data structures like graphs and trees.

It also offers support so fields can contain polymorphic data. For example, a list of type List<IAnimal> can contain dogs (class Dog : IAnimal{}) and cats (class Cat : IAnimal{}).

Lastly, fields marked for serialization as references can express null values intrinsically. This is contrary to standard behavior, where serializing a null field will deserialize it using the default constructor of that type.

Physics updates

We have upgraded the PhysX library from v3.4 to v4.1. This includes the new Temporal Gauss-Seidel solver, which allows joints to be more resistant to overstretch and prevents some erratic behavior previously seen during simulation. To enable the new solver, go to Project Settings > Physics

We have also exposed the new broad-phase Automatic Box Pruning algorithm, which can compute the world boundaries and the number of subdivisions automatically. This is an upgrade from the existing Multi-Box Pruning algorithm.

Additionally, a faster mesh mid-phase algorithm is available on desktop platforms. It doesn’t require resource-intensive acceleration structures to be built (R-Trees), which is useful for runtime-generated content because the MeshCollider instantiation time will be reduced.

We’ve also added a new API to allow delayed baking of meshes for MeshCollider. You can hide the computationally intense mesh-baking process behind a loading screen or transition scenes, like a dialog scene in an adventure game. This API is thread-safe, so you can call the function from off the main thread, including via the C# Job System, to bake multiple meshes at the same time. 

For more information, see the section “Migrating from PhysX SDK 3.4 to 4.0” in NVIDIA’s PhysX 4.1 SDK Guide.

Reduce the time it takes to instantiate MeshColliders by spreading the load across all available cores.

Authoring tools and technology

Package Manager improvements

You will notice changes and improvements in our Package Manager. For example, you can now install packages from a git repository via a URL.

Asset Store packs available on the Package Manager

You can now manage your Asset Store asset collection directly through the Package Manager. This view works similarly to the My Assets view on your Asset Store account. You can import what you need for your project from there.

Download and import your assets from the Package Manager.

Animation Rigging updates

You can now preview your animation rigging and keyframing in Timeline for faster iteration and to take advantage of Timeline tools. This enables powerful multi-track layered animation workflows. Using Unity 2019.3, animators can blend multiple clips with animated rig overrides to author unique animations.

These tools can also be used to assemble cinematic sequences with multiple characters, props, and cameras with the added ability to modify the animation clips using rig constraints from the Animation Rigging package.

This content is hosted by a third party provider that does not allow video views without acceptance of Targeting Cookies. Please set your cookie preferences for Targeting Cookies to yes if you wish to view videos from these providers.

Multi-track layered animation workflows with Timeline.

Terrain update

New with this release, you can now create holes in your terrain, making it easier to create caves, wells or trenches. This works seamlessly with other Unity systems like physics, navigation mesh or lightmapping. Programmers can also access terrain-hole data through scripting and implement custom terrain logic.

Using the Paint Surface Mask tool, select a brush, and then paint holes over the terrain the same way you would paint a material

Particle Systems C# Job System support

Now it’s possible to manipulate particle data using the C# Job System without having to copy the data between a script and native code. It includes support for the Burst Compiler and Jobs dependencies.

Graphics updates

While we only highlight a few Graphics features in the beta, we are making plenty of progress in the High Definition Render Pipeline (HDRP) and the Universal Render Pipeline (known as “Lightweight Render Pipeline” before 2019.3).

Universal Render Pipeline’s new post-processing brings performance and beauty.

Universal Render Pipeline improvements

The Universal Render Pipeline works with any Unity platform you want to target while giving you better performance.

We have completely revamped post-processing for Universal, it’s now integrated directly into the pipeline bringing greater performance. Features in Universal post-processing include: anti-aliasing, depth of field, camera motion blur, panini projection, bloom, lens distortion, chromatic aberration, color grading & tonemapping, vignette, film grain, 8-bit dithering.

Here are some post-processing effects running on the Universal Render Pipeline.

Like post-processing in HDRP, Universal Render Pipeline post-processing relies on the volume framework available in our CoreRP shader library, which means it now supports volumes.

We’ve also increased the Light Limit in the Universal Render Pipeline forward renderer to 256 visible lights, with the exception of mobile projects, where the limit is now 32. The pipeline can up shade up to 8 per-object lights.

Have a look at the LWRP -> Universal RP upgrade guide if you're looking to upgrade your Lightweight Render Pipeline project.

Ray Tracing in HDRP

Designed for the High Definition Render Pipeline, the DXR API (preview feature) in the HDRP package targets applications for the engineering and architecture industries.

Some of the implementations included are directional and area shadows, GI, reflections, and transparencies.

In the Unity Editor, you can find Ray tracing Shaders and Ray tracing Acceleration Structures with the API needed to create, build, and update the structures, and dispatch/bind properties for the shaders.

Lighting updates

Light Probes from different additively loaded scenes can now be merged, making it easier to handle lighting for large scenes that are broken up into smaller chunks. Using a simple API call after all additive scene loads are done, you can get all currently loaded probes retedrahedralized and used by renderers in the scene.

Main thread performance of the Progressive Lightmapper has been vastly improved, leading to smoother Editor interaction when baking.

The new Lighmap Exposure slider will show up as a Scene View swatch when entering lightmap preview scene modes. This will help you to assess different HDR lightmaps better. You can find the same slider in the Lightmap Preview window. 

We’ve also added Light power sampling to the CPU Lightmapper. Instead of trying to shoot shadow rays at every light that could potentially affect any given lightmap texel, we probabilistically pick the best candidates. This leads to fewer rays shot, reduced noise, and higher baking performance.

Two new light shapes have been added to the Progressive Lightmapper which correspond with HDRP’s box and pyramid light shapes for spot lights. Both shapes can be entirely baked, or used as mixed lights with full support for shadowmasks.

Inner spot angle is now supported for baked lightmaps in HDRP and Universal Render Pipeline.

We added two more features to the GPU Lightmapper (preview feature) to bring it closer to feature parity with the CPU Lightmapper. The added submesh support will now give correct GI response from renderers with multiple meshes. The sampling algorithm is now the same as the one used in the CPU Lightmapper.

It can be challenging to get smooth lighting with Light Probes in some scenes. There is now support for more flexible sample counts for Light Probes, which can improve probe quality in scenes with emissives or other difficult lighting conditions.

Scene courtesy of the agency Nedd.

The Progressive Lightmapper now includes the AMD Radeon Pro Lightmap Denoiser.

Platforms updates

New Input System

We’ve released the Preview version of the new Input System, which lets you use any input device to control your Unity content. It’s more powerful, flexible, and configurable than the traditional Input Manager. Try it out and let us know what you think on the forum!

The new Input System lets you easily map any type of controls to your game actions.

Unity Runtime Library

You can now insert features powered by Unity directly into your native mobile applications. These features include, but aren’t limited to, 3D or 2D real-time rendering functions such as augmented reality, 2D mini-games or 3D models.

You can integrate the Unity runtime components and your content in a native platform project. The Unity Runtime Library exposes controls to manage when and how to load/activate/unload within the native application.

To get started, check out our blog post with instructions for Android and iOS.

A sample application of Unity’s rendering capabilities in a native iOS app:

This content is hosted by a third party provider that does not allow video views without acceptance of Targeting Cookies. Please set your cookie preferences for Targeting Cookies to yes if you wish to view videos from these providers.

On-demand rendering

This feature lets you control the rendering loop independently from the rest of our subsystems. This means you have more control to lower power consumption and prevent thermal CPU throttling.

 The new OnDemandRendering API can change render frequency at runtime.

Services updates

Remote Config

This Preview package is a new cloud service that powers real-time content creation and remote configuration. We’ve added the following features and capabilities to Remote Config:

  • Fully compatible with any analytics platform 
  • Stateless user segmentation and targeting in real-time
  • Architected for full-stack remote control via the Editor or API
  • Enables feature flagging and staged rollout deployment 
In this sample use case, you could enable/disable the event, test price points for a limited-edition event pack, and swap out asset models to create a festive environment.

Get a chance to win an NVIDIA GeForce RTX™ 2080 GPU

By participating in the 2019.3 beta, you have a chance to win one of four GPUs that we’re giving away in partnership with NVIDIA.

To enter the drawing, all you have to do is to identify and report at least one unique bug during the 2019.3b cycle and add “#Beta2019Win_NVIDIA” in the report description (the “Submission”). The sweepstakes open at 00:01 am PT on August 27 and the submission period ends at 23:59 pm PT on October 28, 2019.

A unique bug is one that has not yet been reported at the time of submission and it has been reproduced and acknowledged by Unity as a bug.

No purchase necessary. Void where prohibits. Full rules here. The winners will be contacted directly.

Beta program

How to get early access to the new features

You can get access to all of the above features and improvements simply by downloading our open beta from the Unity Hub. 

By joining our open beta, you will be able to ensure your projects are ready to be upgraded to the latest TECH stream when it’s available and you’ll also help us find and fix bugs, ensuring the highest quality software for the community.

If you aren’t sure how to get started, have a look at this guide to being an effective beta tester.

Learn more, network, and participate at Unite

If you want to learn more about the latest features and meet the development team behind them, we have opened registration for Unite Copenhagen (September 23-26). We will have a number of special activities for members of our Beta community. Register today!

Alternatively, you can also join us at Unite Tokyo, which is taking place during the same week! Get more information (in Japanese) at our Unite Tokyo page.

Unite Tokyo 2019

We’re also preparing for Unite Singapore (October 1-2) and Unite India (Nov 14-15). Keep an eye on the Unite page for up-to-date info!

Full Release notes

As always, refer to the release notes for the full list of new features, improvements, and fixes. You can provide feedback on the new features and updates in our forums as well.

August 27, 2019 in Technology | 13 min. read

Is this article helpful for you?

Thank you for your feedback!

Topics covered