The viewport in Blender will work as follows.
We split options into two categories, Shading and Overlays. Shading is all the stuff that relates to the shading itself, such as colours, lighting, surfaces and shadows. Overlays are the things we display on top, such as wireframes, relationship lines, normals etc.
Here's how we will lay it all out:
----
= Shading
Below is a description of the settings we will put in the **Shading** popover:
== Single Color
This option displays objects in the viewport as single color objects. We have three ways of picking the color:
- **Single Color**
- //This sets the same color for the whole scene//
- **Object Color**
- //This option uses the Object's Color option//
- **Material Color**
- //This option uses the Material's Color option//
- **Random Color**
- //This option uses a random color algorithm//
We also have several ways to control the lighting:
- **Flat Lighting**
- //No lighting. Everything is completely flat//
- **Studio Lighting**
- //This option ignores all the lights in the scene, and allows users to set an HDRI-ball as their lighting input. A shadow direction is calculated from the HDRI.//
- **Scene Lighting**
- //This uses the lights in the scene to light the objects and cast shadows//
=====Additional Options:
- **Cast Shadows on/off**
- //This option turns on shadows from the sun, as defined by the lighting above. The Shadow direction is inherited by the Studio Light or Scene Lighting direction and is automatically inferred from the HDRI//
- **Contact Shadows on/off**
- //This option turns on ambient occlusion contact shadows. Useful for judging contacts in animation//
== Textured
In Textured Mode, you see the active Texture for each Material for each Object.
The active material is set in the nodes view. If a material has no active texture, or no textures at all, we just display a neutral color.
We also have several ways to control the lighting:
- **Flat Lighting**
- //No lighting. Everything is completely flat//
- **Studio Lighting**
- //This option ignores all the lights in the scene, and allows users to set an HDRI-ball as their lighting input. A shadow direction is calculated from the HDRI.//
- **Scene Lighting**
- //This uses the lights in the scene to light the objects and cast shadows//
=====Additional Options:
- **Cast Shadows on/off**
- //This option turns on shadows from the sun, as defined by the lighting above. The Shadow direction is inherited by the Studio Light or Scene Lighting direction and is automatically inferred from the HDRI//
- **Contact Shadows on/off**
- //This option turns on ambient occlusion contact shadows. Useful for judging contacts in animation//
== Material
This option uses Eevee to preview the lighting and shading of your Cycles materials, but is also available for Eevee, as a method for previewing your materials with flat or studio lighting.
In the Material View, we support the same lighting modes as above:
- **Flat Lighting**
- //No lighting. Everything is completely flat//
- **Studio Lighting**
- //This option ignores all the lights in the scene, and allows users to set an HDRI-ball as their lighting input. A shadow direction is calculated from the HDRI.//
- **Scene Lighting**
- //This uses the lights in the scene to light the objects and cast shadows//
=====Additional Options:
- **Cast Shadows on/off**
- //This option turns on shadows from the sun, as defined by the lighting above. The Shadow direction is inherited by the Studio Light or Scene Lighting direction and is automatically inferred from the HDRI//
- **Contact Shadows on/off**
- //This option turns on ambient occlusion contact shadows. Useful for judging contacts in animation//
== Matcap
Matcap is a combination of both a material and lighting. Users simply pick a **Matcap** from the list.
We also allow **Cavity** to be enabled.
=====Additional Options:
- **Cast Shadows on/off**
- //This option turns on shadows from the sun, as defined by the lighting above. The Shadow direction is inherited by the Studio Light or Scene Lighting direction and is automatically inferred from the HDRI//
- **Contact Shadows on/off**
- //This option turns on ambient occlusion contact shadows. Useful for judging contacts in animation//
== Rendered
This simply represents the final output of the** Renderer. **
----
= Overlays
Here's a list of the Overlays we will provide, which are common to all the modes:
- Grid Floor (XYZ, Lines, Scale & Subdivisions)
- Relationship Lines
- Face Orientation
- World background
- Motion Paths
- 3D Manipulators
==== Edit Mode Overlays
These options only apply to Edit Mode, and only show up if you are in that mode:
- Object Isolation (Dims everything that is //not// the objects in the active mode. Used to make the edited objects stand out to make it clear which ones you are editing.)
- Faces
- Edges
- Creases
- Seams
- Sharp
- Bevel
- Edge Marks
- Face marks
- Weights
- Edge Length
- Edge Angle
- Face Area
- Face Angle
- Mesh Analysis
- Overhang, Thickness, Intersect, Distortion, Sharp
// Note: We will have one toggle called 'Overlays' that will toggle of //all// overlays in the viewport. This is equivalent to the old Only Render option.//
----
= User Interface & Visualizations
Shading popover:
{F3209180}
{F3209323}
{F3211568}
Overlays popover:
{F3233216}
Flat Lighting
{F3180720}
Studio Lighting
{F3180714}
MatCap
{F3180676}
Random Colors Flat
{F3180685}
Random Colors Shaded
{F3180695}
== Selection
When "Limit Selection to Visible" is enabled, we want to remove the face dots in face select mode, because it's very distracting, especially on dense meshes. Here's how we want to differentiate vertex, edge & face select mode in Blender 2.8:
{F3313213}
The big difference is, that now make the element type corresponding to the current to the selection mode more prominent. Than means the when in vertex select mode, vertices should be more prominent. In edge select mode, edges are more prominent. Same thing for face select mode.
Active elements will become //more// prominent, rather than less so, as is the case today.
When you can see through the mesh, face dots are still needed because selection is based on the face center.
== Examples where face-dots fall short:
As you can see, face dots never worked properly for N-gons. Here the face dots are actually outside the face:
{F3314622}
{F3314623}
For even very sparse meshes, the face dots make it very hard to see your model:
{F3314630}
When your mesh is dense, the face dots destroy model visibility completely:
{F3314631}
Compare this to displaying the faces without, and you can see how much clearer your mesh is:
{F3314678}