In 2018, Unity hopes to bring their rendering capabilities to standards that take full advantage of modern technology. The first step in that process is the new scriptable render pipeline, which is crafted to enable designers to reach a new level of detail and realism for real-time rendering.

Major Changes to Unity’s Current Rendering Pipeline

Process steps that worked with outmoded technologies are being brought forward to cooperate better with today’s hardware. While countless small changes will take place in the pipeline, there are some major changes that artists and designers should know about, including:

Modern Hardware Performance Upgrades

Compute shaders, which are now commonly used in creative industries, alongside draw call instancing and constant buffers eliminate the need for processes like one light per draw call forward rendering and stencil mark + draw shape per light deferred shading. Real-time shadow rendering that performs tile store + load processes too often also needs a push toward the contemporary.
Unity’s new rendering pipeline gets rid of or mitigates unnecessary real-time rendering processes with the help of modern hardware common amongst major industry players.

Customization & Extendibility

Though the purpose of creating Unity was to design a near-universal game engine, advanced teams can often benefit from custom tweaks and extensions. In modern game development, improving extendibility will prove indispensable.
In answer to the call for customization, the new scriptable render pipeline aims to expand on flexibility at a small performance cost. Using DX11 as a baseline, Unity plans to optimize for modern PCs and consoles, on-tile storage of mobile GPUs, virtual reality, and backward compatibility for older, low-end devices.
Improving universality and available information free of a Unity source code license should enable developers to work in custom rendering scripts, shaders, settings, and more.

Scriptable Rendering Loops

Calling the new pipeline a scriptable rendering pipeline was no accident. The idea behind it is to allow rendering for sets of objects according to various filtering criteria.

What Unity is doing under the hood comprises too many small changes to list, but together those changes should create the first building blocks for writing render loop scripts that improve overall performance during real-time rendering.]]>