Viewport Design
Open, NormalPublic

Description

Mockups for the viewport display in 2.8 go here.

Details

Type
Design

Some initial mockups of various proposed display modes. Separate color per part/object not yet explored.

  • Object mode in Solid display, with an object selected. Occluded parts display toggleable.

  • Object mode in Rendered with GUI Overlay mode. Rendering is progressive.

  • Object mode in Rendered with GUI Overlay mode, with wire on on the objects. Slight Fresnel on the wires.

  • Edit mode in Isolated Display mode, all edges selected.

  • Edit mode in Isolated Display mode, some edges selected.

Grid fading? Would work best probably with automatically resizing grid (meaning the line numbers, not scale):

Great mockups! I'm very much in favour of grid fading and resizing grid density as well.
MODO does both and it's quite elegant.
Maya does neither.

Looks great and very usable. I also love the idea of grid fading and auto resizing - that way it would be useful beyond the default 16 lines without being distracting.

Looks awesome, but won't it become very heavy with that fading selection outline?

  • Object mode in Rendered with GUI Overlay mode, with wire on on the objects. Slight Fresnel on the wires.
  • Edit mode in Isolated Display mode, all edges selected.

Those two look especially good!

Well they all look especially awesome, particularly the "Slight Fresnel on the wires." one. Congrats to you devs for the awesome work, can't wait for 2.8!

Choose one.

I'd go with number two too,

a great compromise between eyecandy and readability

Choose one.

I don't think I understand the first and third one. What do the blurred/fresnel lines represent in those?

In the second one, it looks like non-occluded outlines are solid, occluded outlines are blurred. This version (image 2) is the most intuitive to me.

On the first one, it appears as if also some non-occluded outlines are blurred? And on the third one it's a composite of 1 and 2. By which conditions does the blurring occur here?

Also, is it a blur or a fresnel effect? Difficult to judge from the picture.

Choose one.

Definitely number two.

Also: Nice! : )

Also, is it a blur or a fresnel effect? Difficult to judge from the picture.

It's a blur. well ... to be exact it's expanding the outline and not doing something very fancy.

Due to common consensus that number 2 was better I pushed it to 2.8 branch. 4e92ed87ac73

The mesh subdivided could lose opacity according to the number of subdivision.
The UV islands may have different colors in Edit Mode.

Show optionally, proportional transformation with an editable color gradient

I just implemented the infinite grid idea.

It as infinite subdivision level too! However It needs polishing to be really usable.

I think this would work well as a user preference option (falloff control)

To be honest, I find a fading grid a lot more attractive and visually clean than an infinite grid. There's really no tangible benefit to see grid lines into infinity, on the contrary - at low viewing angles it just clutters up the view towards the horizon line.

I'd try to avoid adding unnecessary user preferences (like falloff control) and commit to a design decision.

Show optionally, proportional transformation with an editable color gradient

This would be extremely useful! I find Blender's proportional editing feedback to be sorely lacking. With Maya's Soft Selection, you get a very clear visual idea how you're going to affect your mesh, by showing a gradient of influence on the wireframe. Not sure the best Blender implementation of this would be, since proportional editing works a bit different than Maya's Soft Selection (in that the letter is selection-based), but the general concept of a wireframe gradient for falloff effects seems useful!

To be honest, I find a fading grid a lot more attractive and visually clean than an infinite grid. There's really no tangible benefit to see grid lines into infinity, on the contrary - at low viewing angles it just clutters up the view towards the horizon line.

It IS fading ! Latest screenshot did not show it properly and my description was misleading.

I'd try to avoid adding unnecessary user preferences (like falloff control) and commit to a design decision.

I agree. But we need at least one setting for the view distance. And find a good heuristic for the rest (but it's hard).

Wow, the grid is cool! You might charge less if you gain opacity near the selected object and updates while object is moving.
The last suggestion of today. Perhaps objects that can not be selected should be darker or cooler.


Couldn't the view distance be coupled to the already existing viewport clipping distance parameter in an elegant fashion?
I don't think one would need to see a grid beyond one's viewport clipping distance too often - or ever.

I like the fading - looks great.

MODO's grid fades out both towards the back and the front (i.e. bottom edge of the viewport - unfortunately the compression kills it in the video) but I think I prefer your version where it only fades into the distance.


Couldn't the view distance be coupled to the already existing viewport clipping distance parameter in an elegant fashion?
I don't think one would need to see a grid beyond one's viewport clipping distance too often - or ever.

In fact it won't happen because the grid is clipped to the viewport clipping distance.
However the other way around is valid: you may not want to see the grid go all the way to the far clip plane.

I like the fading - looks great.

MODO's grid fades out both towards the back and the front (i.e. bottom edge of the viewport - unfortunately the compression kills it in the video) but I think I prefer your version where it only fades into the distance.

I have trouble seeing anything in the video. But I see the axes fade at the border of the screen. I could do it but I prefer to wait an have feedback.

The grid like modo seems to be the best choice, it's simle and fine.

You can see a better video there > https://www.youtube.com/watch?v=6ZtlFJGnEMM

Hi everyone,

Please do NOT refer to programs other than Blender here. It is OK to be inspired by other software's design, but on blender.org we only review Blender design and offer ideas for improvements based on own original design proposals.

-Ton-

I don't subscribe to the idea that fading on border of screen on XY view axis adds depth. IMO, talking about depth only makes sense on Z View axis.
Videos are only showing one object on center of the view.
But I don't see interest of such a thing for a bigger and more complex scene where grid is supposed to help you to appreciate distance between objects.

Because of measurement purpose of grid, such fading on view borders can't be a default behaviour. It can only be an option.
Sincerely if the idea is to use grid just as a representation of floor and not as a measurement tool ; why not providing an infinite plane with fading options ?

About occluded contours of selected object , can they correspond to occluded invisible outlines or dashed outlines ?

Albert (wevon) added a comment.EditedMar 23 2017, 3:41 PM

What if, in addition to filtering the visibility of objects with the collection, are also highlighted or filtered objects with labels?


Local camera (selected objects) could be one more tag.

Opacity of the edges relative to the length of these on the screen.

Suggestion:
The new grid loses opacity as it approaches the clippig / end, since the horizon is parallel to the view I think that the opacity of the grid can also fade as the angle of the plane and the angle of view is smaller.
When the position of the camera approaches Z = 0 the grid should fade.

I like and agree with both those suggestions - the edge opacity relative to their length on screen, and the grid opacity based on camera angle!
An infinite grid becomes most visually distracting towards the horizon line. This seems like it might be a nice solution without too many dependencies on stuff in the scene and magic numbers.

I have made a gif where the new selections are highlighted for a few moments.
I do not know if it can be useful or distracts visually.
If this don't slow down the workflow, I think it can help to better orient yourself in the scene, especially when jumping from one object to another in sculpt and paint mode, or when you have two overlapping models, in high and low definition version, and you don't know which one you are selecting.

Here is a mockup of a Render Mode where the HUD is overlayed onto a render, and still be usable in principle even if the render is unlit/badly lit/untextured etc. For that a rarely occurring color is used (think bluescreen) for the outlines. If 2 or more objects are selected, if they overlap, the thick selection outline is drawn around them, while the thinner regular outline stays (is not merged). This is supposed to be a supplementary mode, not the main Rendered Mode, due to how the outlines affect the image:

Here it is over a badly lit render with 1 sample:

And over a clay render, in classic orange:

Albert (wevon) added a comment.EditedApr 6 2017, 10:22 PM

The customization of the color of the wireframe by object go against to the color symbology used by Blender, for this reason I have been exploring a bit with the contours of the active selection to see if it is possible to separate the function of color and the customization.



On the other hand, happy to see the improvements in the grid.

Edited:
After having done several tests, I think I have not found a good solution to mark the active object in Object Mode.
In Edit Mode and to highlight the Origin of the object in Object Mode, I do not dislike contouring the elements.
Here my last test and I leave it.

Albert (wevon) added a comment.EditedApr 10 2017, 4:37 PM

Edited:

I've been playing around with the shader and wire of the objects and I upload some of my thoughts for Viewport representations.

First, I think that smoothing with Matcap could be improved reversing Backfaces normal.

I think that for Blueprints and to analyze the silhouette of the objects flat colors are good.
Through the automatic variation of colors and materials you can explore compositions, and through textures check coordinate maps. For this reason I added all these elements to the mock-up, initially thought for Clay Render.

Second, the proposal below is very versatile, maybe too much. I only show the "fill" options, the "trace" options are missing ....

As you can see at the beginning (Clay render > SolidObject > Mode > Selected), is just a preset and attributes can be restored by copying those of the visual theme
There could be a preset for each work mode and smoothing mode, although everything would remain editable.

All the attributes appear in the render tab because I initially thought that ClayRender could be expanded, but finally I saw that many attributes belong to the preferences of the program. Currently I do not know where they should be all these attributes that I propose, nor only if it is necessary that the user has the option to customize them. On the other hand there are the collections, which still confuse me more.

For this reason I update this text with the updated mock-up and some approaches that I have done, and I leave it.
Thanks for listening to me and improving Blender, it's much more complex than it looks.

I think it can be understood quite well, if someone is interested, I can better explain each attribute. The attributes values are random, ignore them.

Tests for the merged outline and how to solve how merged outlines can work with current system. Problems: Indicating the active object (this is solved with it having a separate non-merged and lighter outline). Another problem: Objects belonging to separate groups would have their outlines merged, suggesting they belong in the same group (this is solved by indicating grouping with origin color not outline)

I think for lights and cameras it would be wise to keep an iconic shape with fixed size.
I also believe that the current shape of the lights could be differentiated more, better define the direction of light and show its intensity. It would be useful to be able to edit some parameters by entering Edit Mode or a new Mode where the basic parameters of the objects are visually editable. I painted white shapes that could grow or change color, depending on the color of light or intensity.
I have added an iconic shape to the camera, I have removed part of the hidden mesh of the pyramid and reduced the size of the triangle that marks the vertical.
Combining white and black for the shapes makes them more visible.

Hi all,

I'd like to start off by saying I'm super stoked about the new UI & PBR viewport updates coming in 2.8. As I'm pretty sure I'll be using blender for many years to come, I wanted to see if I could start helping out on the dev side of the house for the upcoming 2.8 release - I can contribute roughly 10-15 hrs a week.

I'm super comfy in C/C++ & python, been learning about 3d rendering w/ OpenGL / GLSL here & there over the last year or so, and have done some scripting w/ the Blender python api for work... but since most of my dev experience is back-end coding + front-end UI dev, I think maybe I could be more productive earlier on w/ UI tasks - though I'm definitely wanting to help out w/ Eevee somehow if I can.

To the more experienced blender coders here - what would be some good tasks for a new blender dev to start learning / helping out with?

Thanks,
Danrae

@Danrae Pray (spockTheGray) some general easy to contribute tasks can be found in the Quick Hacks project.
You will want to talk to someone more involved with 2.8 to find out what you can help with.

Thanks! I'll start rummaging through those quick hacks tasks... Do you know who would be good to talk to about 2.8 project stuff?

I feel strongly that the grid:

Lines need to be 1 pixel thick, not whatever they are now.
Fading needs to be disabled or fixed. It's an incorrect implementation now, it is fading way to hard relative to the clipping distance.
Delineation of the assigned grid dimensions needs to be present if you're going to render an infinite grid.

https://ibb.co/kYo6NG
https://ibb.co/g2y6NG

Explicitly constraining the ability of the user to specify how the grid is rendered is not an appropriate ideology for blender. Limiting user control of Blender or the UI and calling it commiting to design changes is not a valid objective. This isn't a consumer facing Google App, users want control not constrained UI language. I'm sure there are consideration when it comes to the costs of managing multiple implementations but arbitrarily deprecating or limiting working functionality on the grid of all places is not the place to do this.

If you want to implement an infinite grid and or to fade around clipping distance, great, just give the option to disable this or control it.

I agree with @Diet Coke (dlots) with that the current logic is wrong and that artists need more control over this.

Chris (gobb_blend) added a comment.EditedSat, Jun 30, 9:17 PM

The way that the grid is currently displayed also seems very, very counterproductive to me. The whole fading may look cool to some, but it's really just an obstruction and nothing else.


In the picture on the right, how would I ever be able to tell where exactly my mesh is intersecting with the ground? Isn't that one of the key features of having a floor grid?
If the feet of a character I'm building are constantly displayed below the grid, how would I ever be able to know if they're properly grounded until I switch to an orthographic side view?
And it gets even worse when you zoom out a little bit, with the grid completely covering all of the objects in the scene.
I couldn't think of a single argument why this camera-based depth blending would ever be a good idea. I'm sorry I'm so negative about this.
I must implore you to please at least give users the option to turn it off. Honestly, it should be either off by default or removed entirely.