Maximum Draw Type & Material Mode Shading in Blender 3D

Maximum Draw Type & Material Mode

Blender can display Objects within a scene in a number of ways, typically 'textured', with 'materials' or as simple 'wire frame' outlines. This provides the User with a limited ability to customise the appearance of mesh Objects as they appear in the 3DView. To a certain extent this is also 'context-sensitive' and dependant on which of the three available "Shading" sub-system is being used - in "GLSL" mode for example, being able to 'disable' real-time lighting whilst at the same time seeing Objects with their assigned textures is not typically available by default, so a number of properties need to be set to enable this.

The following tutorial explains how this can be done by activating various settings and options.

Note: a basic understanding of Blender is recommended to get the best from the following material.

Viewport Shading ^

Under normal circumstances, Blender renders the mesh Objects within a scene using one of the four main "Viewport Shading" modes available. They are;

  • Textured
  • Solid
  • Wireframe
  • Bounding Box

Each sub-system draws Objects relative to the selected modes inherent properties. For example, "Bounding Box" displays Objects as a simplified (usually some form of 'cuboid') wire outline which represents the total volume a particular mesh occupies. "Wireframe" shows the internal or underlying structure of a mesh, its 'cage'. "Solid" typically represents Objects in simple flat shaded colours (normally a single tone determined largely by a Materials "Diffuse" property - the default being slightly off-white). And finally "Textured" mode will display bitmaps or other 'image' types mapped in some way to the object (or in the case of missing bitmap image, a bright pink colour, or flat white where a mesh has not yet been UVW unwrapped). By default the different modes cannot be combined. In addition, each viewport shading mode assigned to the 3DView has slightly different resource requirements depending on the global material "Shading:" system being used - the real-time demands of "GLSL" are greater than either the "Multitexture" default or "Single Texture" alternative ("Texture Face" in earlier 2.5 versions of Blender), especially when scenes are lit using placed "Lamp" objects.

What this means for the most part is that scenes and their contents, by default, have to be managed using an "all or nothing" approach to their display. What can be done if, for example, we wanted to limit the display of a set of finalised objects whilst at the same time see other objects fully rendered? This is where setting an objects "Maximum Draw Type" can be helpful as it allows just that by over-riding Blenders default Shading hierarchy.

Maximum Draw Type ^

What "Maximum Draw Type" allows is for the display of individual Objects using one of the aforementioned "Viewport Shading" modes - "Textured", "Solid", "Wireframe" or "Bounding Box" independently of the scene the said items are being rendered in. In other words, under specific circumstances (see below), setting this behaviour over-rides the Viewport Shading mode assigned to the entire scene so that a scene can in fact contain a combination of objects shown with different draw modes assigned. This reduces the over-heads associated with the more resource hungry scenes, strategically limiting some objects whilst leaving others fully rendered.

To change an Objects "Maximum Draw Type", RMB select an individual Object. From "Properties" click the "Object" button (fourth from the left - shown below). Scroll down the available options to the "Display" sub-section and find "Type:". Click the drop-down menu and choose one of "Bounding Box", "Wire", "Solid" or "Textured" modes from the list. On doing so, in the 3DView, the object should immediately change from using the scenes default 'shading' to the 'draw type' just set.

Selecting a "Draw Type" from the "Display"list

Selecting an object to reduce it's 'quality'. In "Display" properties click the "Type:" drop-down menu and select an item from the list...

Objects "Shading" changed - to "Solid" in this instance

... this then draws the chosen object using the selected and/or reduce shading normally assigned to an entire scene

Material Mode Shading ^

Allied to "Maximum Draw Type" is "Texture Solid", a property which forces the display of textured objects in the main 3DView, even if "Viewport Shading" is be set to "Solid" - normally this draws objects as simple flat shaded shapes, coloured based on a given Materials "Diffuse" setting. This is useful when in "GLSL" mode as it allows for the toggling between two different lighting conditions whilst still showing objects as being fully textured (which cannot be done by default), in effect flipping back and forth between 'textured' but 'flat' lit, or 'textured' and 'real-time' lit.

Design note: when in "GLSL" mode, "Texture Solid" is over-ridden if an Object has its "Maximum Draw Type" set, i.e. if an object is specifically limited to "Draw Type > Solid" and at the same time the scene is set to "Viewport Shading > Solid" ("Alt+Z"), then that object will display as textured irrespective. However, if the scene is set to "Display > GLSL" mode then said-same object will display as flat shaded (solid coloured as determined by the Materials "Diffuse" setting).

To do this in the 3DView press the "N" key to open the "View Properties" panel and scroll down to the "Display" sub-section. Under the "Shading:" sub-heading click the checkbox to the left of "Texture Solid", if the scene is already in Solid mode all objects will instantly change to display textures. This now means that, if GLSL mode is active, using "Alt+Z" will toggle between real-time lighting and flat lit textured meshes.

Setting "GLSL" as the viewports "Shading"

From "View Properties", enabling "GLSL" real-time lighting in the main 3DView - this lights the scene using actual light ("Lamp") objects rather than Blenders default "3 Point" system

Toggling to "Solid" mode from GLSL

Switching "Viewport Shading" to "Solid" whilst still in "GLSL" material mode - all objects receive flat lighting and are coloured based on Material settings

Setting "Texture Solid" displays meshes in "Solid" mode

Whilst still in "Solid" mode, activating "Texture Solid" forces Blender to draw Objects in the 3DView as fully textured - switching between "Solid" and "Textured" modes does not change the scenes "Viewport Shading" it simply replaces material colours with textures, lamp objects have no effect because the scene itself is still using the flat illumination associated with "Solid" mode

Toggling into "Textured" viewport shading shows objects lit by lamps in GLSL

Objects in the 3DView can now be toggled between being textured but flat shaded and textured but fully lit using the standard "Alt+Z" shortcut (switching between real-time lighting and flat shaded)

Conclusion ^

It goes without saying that once a setting is changed it is saved to the *.blend file being edited/created. That means the user must be mindful of the state in which objects are placed so as not to think it's a problem or error at some point in the future when using the feature will likely be forgotten about. In instances where this technique is used, it may be worth adding a text 'note' to the file as a remember.

Display over-riding Viewport Shading of objects in GLSL mode

Fully lit scene in "GLSL" mode with a selected object set to "Wire" which over-rides both GLSL setting and "Viewport Shading", even when "Texture Solid" is set