From BlenderWiki

Jump to: navigation, search

Viewport Plan of Action

Throughout the Blender2.8 project 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:

Dev-Blender 2.8 Viewport ClayEngineDiagram.png

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

Dev-Blender 2.8 Viewport ClayEngineMockup.jpg

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. That will include realtime reflections, soft shadows, fast, responsive and eye-candy features.

Dev-Blender 2.8 Viewport EeveeEngineMockup.jpg

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

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.