Lumberyard is Amazon’s new game engine based on a forked version of CryEngine. I did a short hands-on video of Lumberyard shortly after it was released if you want more information. Earlier this month Amazon announced the upcoming release of Lumberyard 1.3, announcing that it would have VR support among other features. Well that release date is now here, at least in Beta form. This release brings with it over 130 features, improvements and fixes including some serious graphical enhancements. The two major features of this release are HDR support and the aforementioned VR support (currently Oculus Rift and HTC Vive). There were several other graphical updates to the engine, including:
- 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.