AWS for Games Blog

VR, HDR, and more in Lumberyard Beta 1.3 – Available Now

As a graphics programmer, the most satisfying part of my job is to put a piece of cool technology in the hands of content creators and see them make magic with it. Throughout my career, I have had the fortune to work with some of the most talented artists in the industry, and they always surpass my wildest imagination. From time to time, I had to ask myself: Is this really coming out of our engine? Our tech did that? That’s amazing! This is one of the biggest motivators for us to keep innovating.

Today, we are excited to announce the release of Lumberyard Beta 1.3, available for immediate download here. This update includes over 130 improvements, fixes, and features, and is the first significant update on graphics tech since we launched in February. There are big features we added that I’m super excited about, but this is just one installment of what will be a constant stream of graphical innovations in Lumberyard. I can’t wait to see what you can do with them. Make us something amazing!

The first thing I want to highlight is HDR. I have been a long-time advocate for doing lighting and material in HDR space, starting with Halo 3. (I talked about this in my Siggraph talk in 2008.)  Ultimately, all those beautifully preserved HDR pixels get crushed by the terrible consumer TVs we have. How do you make the sun look real when your TV is only capable of pushing out 100 nits? When they showed us these Frankenstein sets of prototype HDR TVs at Siggraph about 10 years ago, everybody went nuts. Then we waited, and waited, and finally, this year, HDR TVs hit the shelves, for real. We immediately jumped on enabling HDR in Lumberyard.

There are two flavors of HDR: HDR 10 and Dolby Vision. Both use the same EOTF curve, called PQ, which is closer to human perception and is way better at utilizing the bit precision for brighter TVs. HDR 10 is going to be supported in most console hardware and Windows, so from an engine perspective, it’s about doing all of the math in the right space and authoring content for HDR, which Lumberyard excels at already. With Dolby Vision, we have additional ability to pass per-frame meta-data to the TV, and allow the display to adapt to your scene smartly. We don’t know which technology will be favored by consumers yet, but it doesn’t matter because Lumberyard supports both.

With Lumberyard, we make it easy for you to enable HDR. You just have to turn on a couple flags in the configuration file. No code or shaders need to change on your side. Knowing that an art director will want to have tight control over how a game looks, we have exposed all of the tweakable parameters in the debug console so they can be adjusted as you play the game live. We also exposed a target for an HDR reference monitor, like the excellent Dolby Maui, for art directors and color grading artists to see an accurate rendering of the scene on a calibrated setup. We recommend that you author all of your content in HDR with a reference monitor, and cross-check how they look on a number of consumer TVs, both HDR and LDR. One thing you want to be aware of is that some of the LDR tricks, like filmic tone mapping and bloom, don’t quite make sense anymore, as they try to simulate HDR on LDR TVs. You will need to experiment on your end to see if you want to preserve any of those operators, or just get rid of them entirely.

The second feature I want to highlight is VR. We showed a preview of Lumberyard VR at GDC and a couple of VR demos. After GDC, we concentrated on bringing you the cleanest possible way of integrating VR into Lumberyard. We want you to be able to plug in a headset, enable a couple of check boxes, make a scene in the Lumberyard Editor, hit a button, and be in your own virtual world. I think with Beta 1.3, we delivered exactly that. Oculus and Vive are supported right out of the box, and we provided a framework to support other and future devices, or even a new device you’re building yourself. You can find further details in Cody White’s blog. VR is one of the areas that we are investing in heavily, and you will see more supported devices, many more features, and more performance optimizations in upcoming releases.

In addition to these big features, with each release we continue to improve the quality and performance of the existing feature set and add a few new “graphics goodies.” Here are a few callouts in this release:

  • Volumetric Fog: We increased the temporal stability of volumetric fog, reduced the presence of flickering artifacts, and improved fog’s overall performance.
  • Motion Blur: To give a higher degree of control over the motion blur effect, we added a weighting algorithm to improve the visual quality of silhouettes and added a shutter speed control like those you find in a real-world camera.
  • Height Mapped Ambient Occlusion: This new feature generates ambient occlusion per pixel from a terrain height map, which brings out subtle details and depth cues in terrain that would have been previously unseen.
  • Depth of Field: We implemented a new depth of field technique that reduces edge-bleeding artifacts and utilizes fewer GPU resources.
  • Emittance: We have replaced glow with a physical-based model of emittance. This allows you to model glowing objects as proper citizens of a physically accurate world of lighting and materials. We have changed lighting calculations to properly account for emittance, and we provided a way to automatically convert older content to use the new emittance property.

On the mobile graphics side, we have improved iOS rendering performance by an average of 15%, which is a significant jump considering our mobile renderer is already leveraging Metal and GMEM to maximize performance. We also added adaptive and scalable texture compression (ATSC), which is useful for managing bandwidth, memory footprint, and power, all of which are important for low-power, mobile devices.

Finally, if you are a graphics programmer like me, then you are just as concerned about profiling and performance as pretty pixels. So one last thing I want to highlight is the integrated graphics profiler. You can now display all sorts of mission-critical performance stats in real-time, including detailed CPU and GPU timings per frame, per pipeline stage, per sub-system. You will also find many useful graphics counters like to draw call counts, shader counts, triangle, and vertices count. These run-time stats nicely complement capture-based analysis tools like RenderDoc and Lumberyard’s Driller logging system.

We’re excited to continue to receive your suggestions and feedback—join us on our forums, in our blog comment threads, and email us at lumberyard-feedback@amazon.com. For details on everything new in the Lumberyard Beta 1.3 release, check out the full release notes here.

That’s enough from me until next time. Now it’s your turn: download Lumberyard and make something great!