Display Behavior Guidelines

From K-3D

Jump to: navigation, search

Guidelines for Improving the Display of Objects

The painter system is extremely powerful in k-3d, and k-3d already has a lot of options to control how objects are shown. However, in many ways it is actually too complicated, since the needs of artists are most of the time very simple. We want to give artists easy access to display modes and properties, without loosing any of the power and flexibility that the current painter system affords.

The highest priority things would be adding viewport display modes, making component selections not show in object mode, and fixing the black object bug.

Viewport display modes

As a standard, pretty much every 3d program provides a toggle or switching system between different display modes. At a bare minimun, a toggle between wireframe and shaded mode is important.

Normally, the simpler modes (wireframe and shaded) would override any complex painters. Most artists will work with the simpler modes most of the time. In wireframe mode, every object could be drawn with a wireframe painter that knows how to draw all the objects based on their object display properties and the viewport display properties. The same could be done for shaded mode.

The viewport and meshinstance nodes could get properties that would control how the wireframe painter and shaded painter would draw them.

Suggested modes:

  • Wireframe - Simplifies drawing especially in really slow scenes. Also, makes selection easier since users can easily see through and select things behind or inside of other things. A current problem, is that when faces aren't drawn, (our only equivelent of wireframe mode) selected faces aren't shown either. Selected faces should be shown as transparent red, even in wireframe mode. (another possibility would be to outline the faces edges with red just inside of the existing edges. so a selected cube face in wireframe would be a white box outline with a redbox outline just inside of it.) In wireframe mode, edges on unselected objects would always show, unlike shaded mode, otherwise they'd be invisible.
  • Shaded - basic shaded display with a fairly basic shader. Here the user will want some global (per viewport) options, and then some per object options that can override global options when used. (Layers could be added later, between object and global settings, not a priority)

Suggested toggles/options for the mode:

  • Viewport Shaders toggle - Complex painters are shown and used only when this toggle is active. Even when this is active, only objects that were explicitly assigned painters would be drawn using "shaders". This means that by default, objects don't have to have specific painters assigned. The painter assigned by default can just be none, and the open gl engine can draw the object using the wireframe painter in wireframe mode, the shaded painter in shaded mode, and the shaded painter in shaded mode unless a painter is applied

Lastly, every custom painter applied could have a "show in wireframe mode" and "show in shaded mode" which would override wireframe and shaded mode drawing, causing the painter to be shown anyway. This would be used rarely, but could potentially be useful.

Clearer Visual Indications

Object should visually indicate which object or component mode is active.

  • Object Mode: The display of object mode is mostly fine as is but needs some small tweaks
    • vertices should not by default be shown, showing the edges is enough
    • although selected objects should by default show their wireframes, and unselected objects should not.
    • a current usibility problem is that sometimes, while in object mode, component selections still show. The painters, by default, should only show component selections when in the component mode. ** The wireframes of children objects to the selection objects should be shown as slightly lighter than other deselected objects (or slightly darker than other selected objects). This lets the artist visually see how they have built the heirarchy by simply selecting objects and seeing which show as children. (XSI does this very well.)
  • Vertex mode is fine as is
  • Edge mode
    • Edges should be shown slightly thicker, to visually indicate edge mode
  • Face mode
    • In face mode just show normally like object mode but slightly brighter (object mode selection could be 250,250,250 and face mode could be 255,255,255) If there is a better idea we may want to use it, but I haven't seen any good visual indicator of face mode that isn't somehow confusing to users.

As a related note, when modifiers output specific selections, the UI's selection mode should be changed to reflect that (and the toolbar button pushed down). If an edge mode modifier subdivides edges to make new vertices, and the UI selection mode is automatically changed, the artist can move and change the selection of the vertices immediately, without going into vertex mode forcing an extra click. Wings3d is really good this way.

Display options/properties

As mentioned earlier, viewports and objects would have properties that controlled how the painters drew them.

Standard per viewport options in shaded mode:

  • Backface culling
  • Wireframe on shaded (show wireframes on unselected objects when in shaded mode)

Standard per object options in shaded mode (per object settings override per viewport settings):

  • Wireframe only (causes objects to draw as wireframe only even in shaded mode)
  • Xray mode
  • box mode (show only the object bounding box)
  • Show verts (show vertices when in object mode, primarily useful when snapping objects)
  • all per viewport options as per object options


If possible I would suggest "view shaders" as a more intuitive term than "painters". Painters could be confusing since people will assume it has to do with texturing/painting objects or confuse it with paintFx from Maya. Everyone knows what a painter is and "view" will make it obvious that it has to do with in viewport display.

Current bugs

  • At times, when an object is deselected the entire object shows up dark grey or black. Why?