December, the time of the year for hot chocolate mugs, bright decoration lights and, of course, development roadmap. In the spirit of the season, the following document is the plan of action for the viewport project in Blender 2.8. Throughout 2017 we are expecting to tackle:

Final design of engines and passes

Clay engine

Implement remaining edit modes as passes

Workbench engine

Eevee engine

Port Cycles materials to the Eevee engine

Implement missing engines

Final design of engines and passes

Let’s start by defining the terms here used, mainly engines and passes.

A pass is the “black box” code responsible for filling a buffer. For example, the “object mode” pass includes:

Relationship lines

Object center

Outline (selected/active)

Widgets (?)

Non-geometry objects (lamps, empties, …)

An engine then compose multiple passes together. How the compositing happens is up to the engine. Finally the engine delivers the final image to the viewport.

For example, a very basic Clay engine can be described as:

The clay engine will take the “Wire Pass”, the “Solid Pass” and the “Object Mode Pass” and combine them together.

At the end of this, the core design will be finalized including a final proposal for a material re-design with corresponding PyNode changes.

Clay engine

Assets courtesy of the Agent 327 – Barbershop scene.

The clay engine will use matcap and allow per-object matcaps (so we can override them per collection). Also it will support depth of field and ambient occlusion.

This engine is a quick way to start drawing objects in the new viewport, as well as to validate the engines compositing design. The Clay engine will initially only support the “Object Mode”. It will be up to the engines to decide which modes will be supported.

Implement remaining edit modes as passes

Bring back all the edit modes (edit mesh, sculpt, …). The edit modes will be brought back ONLY when they are already conforming to the new design (layers, depsgraph api, engines, …).

Workbench engine

A complete engine for modeling. A beautiful white canvas with floor shadows for modelers to work on. It should sell the idea that 2.8 viewport is not only PBR, but about the right visualization for the task at hand.

The workbench engine will support:

Auto-generated colors

Beautiful diffuse shading

Sharp specular highlights

Shadows

The engine will have an option to either auto-generate colors per material or per objects. The objects and materials will have override options. This can be overridden by collections.

Eevee engine

To avoid the confusing and too much hyped name “PBR”, we propose to call this engine the EEVEE, or Extra Easy Virtual Environment Engine!

Finally, we will get a nice photo realistic engine. Realtime reflections? Check. Soft shadows? Check. Fast, responsive and eye-candy? Check, check, and check!

Mech Prototype by Clément Foucault – made in Blender, rendered in UE4, long-term goal for Eeevee.

Uber shaders for PBR materials

Support for features current in the PBR branch

Backward compatibility (BI conversion – 80% compliance)

Port Cycles materials to the Eevee engine

Port Cycles GLSL code to PyNode

Make new realtime shaders for Cycles bsdfs nodes

Implement missing engines

Evaluate if we still need a better replacement for wire, solid, … draw modes. If we need it, design and implement new engines accordingly, or as extra passes for the existing engines.