Search Unity

Rendering in the fast lane: Real-time results for automotive

July 3, 2018 in Manufacturing | 9 min. read
Topics covered

Learn how a small team achieved jaw-dropping results in no time at all through CAD data import, prep, optimization with PiXYZ, Asset Store packages, and real-time rendering with HDRP in Unity.

How we got rolling ...

As you may know, last month we announced our new offerings for the Automotive industry and held the Unity AutoTech Summit @ Unite Berlin. As part of our kickoff, we created a teaser video featuring the Lexus LC 500, using a preview version of our new High Definition Render Pipeline (HDRP), to show the high-fidelity graphics that can be achieved with our new capabilities for automotive.

Since we released the teaser video (which we now call Part I), we’ve received many questions and comments about how we achieved such eye-catching results. So, in this post, we explain key parts of the Unity Industry Bundle – PiXYZ Studio and Unity Pro – and how we attained the high-fidelity visuals. As well, we’ve just launched our Part II video, showing the car driving through various cityscapes and landscapes, so we also share details about how we set up the changing environments and lighting, as well as list the Asset Store packages that provide the scenery.

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.

Meet the team

Let’s start by meeting the team responsible for the creation of both of our Lexus LC 500 videos: Adam Myhill, Head of Cinematics and Marc Cinq-Mars, Creative Director at Unity.

They were supported by Technical Artists, Camille Rail and Dany Ayoub, Solutions Engineer, Luc Vo Van, for materials and technical support for HDRP, and special thanks to Veselin Eframov for scene environment support.

Clockwise from top left: Marc Cinq-Mars, Adam Myhill, Dany Ayoub, Luc Vo Van, and Camille Rail

Mesh matters

To start, when working with meshes in Unity, achieving real-time performance requires optimizing them to improve GPU performance and minimize draw calls that consume the CPU. Conversely, photorealistic visuals require meshes that closely preserve the curvature, character lines and geometry detail from the original CAD model, like our Lexus. The powerful tessellation algorithms in PiXYZ Studio use patch data from CAD to optimally tessellate geometry and provide excellent surface quality, even with aggressively decimated meshes.

You can use several parameters to control the data preparation process, including maximum chordal deviation and maximum angle between triangles (to preserve detail). A range of algorithms are available to repair meshes, orient normals coherently, unwrap UVs, project textures, and perform other operations.

PiXYZ Studio also allows you to maintain product structure and metadata, which is important for downstream use and can be used together with PiXYZ’s Python scripting to automate the data preparation process. In the case of the Lexus LC 500 model, the source data for the car was quite well organized – thanks to Lexus and Light & Shadows, whose efficient CAD data preparation made the entire process of importing and preparing data straightforward.

HDRP FTW (For The Win!)

From the beginning of the project, we decided to use HDRP to take Unity’s rendering quality to the next level. HDRP was developed to provide realistic visuals built on physically based rendering with a new unified and coherent lighting system. (To learn more about HDRP, read Sebastien Lagarde’s post: The High Definition Render Pipeline: Focused on visual quality.) The lighting system is one of the major upgrades with HDRP. The use of linear lighting with temperature control, physical units, and physically based attenuation contributes to the quality of the results.

While we worked on Part I, Screen Space Reflection (or SSR) in Unity was still in development, but was ready for testing when the time came around to do Part II. Naturally, we jumped at the opportunity to use it since this technique produces more detailed reflections than other methods such as Cubemaps or Reflection Probes. SSR allowed us to add an extra dose of realism to the overall look of the second teaser. This was timely since our goal was to create a full-blown car commercial where additional lighting and reflection capabilities would be needed to shift our production into overdrive.

Screen Space Reflection (SSR) in action

These materials are lit

HDRP supports richer materials and provides more control over light scattering, including subsurface scattering. For this project, we used the default Lit Shader for HDRP, with the addition of a clear coat for the paint. We carefully matched the paint color to the available color options for the LC 500 and chose silver because it’s a great color to show off different lighting temperatures. For the interior, we used some measured materials we captured with a new photometry process we’ve developed. As we announced in Berlin, we’re planning to provide a wide range of materials to all customers through the Asset Store later this year.

All the right moves

A convincing video needs high-quality data, but it also needs the right creative concept. Unity’s Cinq-Mars and Myhill collaborated on the camera paths and angles to highlight the sensuous curves and dramatic reflections from the LC 500, showing off both the car and the capabilities of Unity’s new HDRP. All the animations were done with Timeline; Cinemachine cameras were used for the framing and movement, in addition to driving the post-processing with custom profiles on each shot.

It was easy to cut and blend between cameras with Timeline and Cinemachine

For Part I, we didn’t want to merely fly over the car – we wanted a compelling piece that brought tension and mystery, making the car feel alive, as if it is taking you on a journey. Our idea was to create something short and intimate, so we used tight shots and close-ups, never revealing too much to keep the mystery going as the music tempo slowly builds. The car itself is gorgeous, but really shines – pun intended – as it reflects the different High Dynamic Range (HDR) environments. The music plays a big part in bringing the piece together, especially when cut and synced to the beats using Timeline.

For Part II, we wanted to put the car in motion – and not just a simple drive past. We challenged ourselves to create a full-on car commercial that would not only showcase the Lexus from many perspectives but capture it in a wide variety of urban and rural environments and in different times of day/lighting conditions, including in a modern city at dawn, in a dark highway tunnel, and rolling through mountainous and forested regions. To take you on this scenery-rich journey, we tapped numerous packages from the Asset Store (see the full list at the end of the post).

Spotlights and headlights

Proper lighting is the secret to visual quality and starts with understanding the star of the show – the object to be lit. In the case of the Lexus, it was important to bring out key reflections to highlight the character lines and curves of the vehicle. For Part I, we mainly used a garage environment with multiple rectangular area lights to emphasize the curvature of the bodywork. We mixed things up a bit with different light temperatures and, at the end, you can see reflections of a few different environments to demonstrate how they change the character of the car’s appearance.

If you look closely in Part I, for example, you will see a forest reflected in the side window of the LC 500. To keep the focus on the car, we used the environments only for lighting and didn’t render the environments in the scene. Lighting was mostly done with a high-res HDRI. The interior lighting used two omnidirectional point lights (one of them animated) to give a specular hit on the Lexus logo right near the end. Check out Part II also for some realistic reflections in the body panels, tail light, and back of the driver-side mirror, as well as headlights and running lights.

Rendered speechless

For optimal quality, we rendered the frames out of Unity in 4K then downscaled them to 1080 in Davinci Resolve. Naturally, we wanted to publish the best-possible video, so we went with the downscaled version for our reveal.

For post-processing, we used Screen Space Ambient Occlusion, Bloom, Color Grading (using ACES Tone mapping), Depth of Field, Temporal Anti-Aliasing and a tiny bit of Chromatic Aberration. In truth, the post-processing was quite mild, color-grading-wise. The new HDRP renderer works really well, so we didn’t need to do much color or exposure work.

In-editor color grading with Post-Processing Stack v2

On the HDRP roadmap

We’re pleased with what we accomplished here, but there’s still work to be done. We will continue to work on achieving the highest quality real-time visual fidelity possible. HDRP is still in preview, and we learned some great lessons from this project that are being applied to HDRP development. We made improvements in how highly specular surfaces with microfacets interact with high-intensity light sources, and there’s more to come. Expect even better results in the near future as we add new capabilities and more advanced materials.

Thanks for the ride

Of course, putting these videos together was a team effort that extended beyond Unity. We want to thank Toyota Motor Corporation and Lexus for partnering with us on this project, and for designing such a beautiful vehicle. We want to recognize our partners at PiXYZ Software for developing PiXYZ Studio, as well as Light & Shadows for helping with the data preparation process. Finally, we’d like to thank everyone in the community who took the time to send us their comments and questions.

Unity for Automotive and Transportation

Accelerate innovation using Unity’s real-time rendering platform, plus PiXYZ’s best-in-class CAD data solutions, to empower your teams. Bring great ideas and products to life. Learn more.

Technical summary

  • PiXYZ Studio
  • Single point light interior lighting
  • Unity 2018.2b1 (2018.2b8 used for screenshots)
  • Rendered at 4K, downsampled to 1080p
  • HDRP renderer
  • Rendered at 1080p in real-time on an Asus laptop (with a GeForce GTX 1080)
  • Post-Processing Stack v2: Screen Space Ambient Occlusion, Bloom, Chromatic Aberration, Color Grading, Depth of Field, Vignette, Motion Blur, Temporal Anti-Aliasing
  • 80-140+ FPS at HD 1080 (depending on the shot)
  • Cinemachine for camera animation and depth-of-field control
  • Clearcoat shader
  • HDRI lighting for exterior
  • Screen Space Reflection (Part II only)

Unity Asset Store packages used for Part II

July 3, 2018 in Manufacturing | 9 min. read
Topics covered