Solid wiewport display problem (2.9)

Hi all !

Is it me or is the solid option in viewport display ineffective/not working ???

This is annoying for me to only be able to display 1 fram per 20 seconds :stuck_out_tongue:

My only option is to replace solid with wireframe for not burdening the viewport display :confused:

Happy blending !

Your screencapture is not showing Solid display but Material Preview display mode.
If you want to see textures in solid mode, you have to open shading popover and change default color from Material to Texture.

I show material preview yes. But i want for other objects a gray display ( without material/texture ) as it is choosen in viewport option.

This works fine in 2.79.

Is there a way to make it work properly in 2.9 ?
Or is it a new ‘feature’ ? :rofl:

OK. That is not possible in Material Preview mode.
Material Preview is EEVEE.

You have to create a shader tree made of one diffuse shader and a material output node for EEVEE.
Be sure that Material Ouput is active one for the material.

And you have to do that for all materials.

What i want is simply this: ( from 2.79 )

The viewport is shown in material view except for the objects for wich the MAXIMUM DRAW TYPE is solid.
This works as expected ( and say 20x faster ).

But in 2.9 this display feature seems broken and the DISPLAY AS ( called MAXIMUM DRAW TYPE in 2.79 ) is a no-effect option.

That feature does only work in 2.8 and 2.9 for Solid display mode.

If you set Coloring for Solid display mode to Texture, you can have some meshes Textured and other ones Solid.
In Material Preview mode, you have to define a material for EEVEE.

Sound a joke to me a the 1st read but i guess it’s not :wink:

When i use the solid display mode i get this:


Wich works as intended as it displays solid meshes without any material.
However i need to have the highlighted object showing its material preview ( eg simple UV texturing with texture blending if needed ) without forcing me to wait for 5 minutes that blender loads all textures of all other objects ( this is the reason why i want the other objects ( that are linked objects ) to show up in solid )…

I hope this is possible without caring of EEVEE^^

I know devs don’t care users and just want to have fun developping new things, but this seems kinds counterproductive to me. What would be the aim to make simple working things the latest awesome shitty blender feature ?

Will i have to buy 256GB RAM for loading my scene just because blender forces me to load all my textures for some obfuscated EEVEE ( that i don’t care & never use ) new feature ?
Sorry to say i’m somewhat upset ^^

However i keep hoping this is a remaining bug :wink:

Edit: The simple and efficient workaround i found is simply change the ‘solid’ option for the objects i want to appear in solid, to wireframe. Hopefully i don’t have to create some EEVEE wireframe shader/nodes :wink:

It is not possible and it is not a bug.

Material Preview mode is just an EEVEE render where lights and shadows are disabled.
In 2.79, material preview is done by same OpenGL engine that does wireframe and solid preview.
In 2.79, Maximum Draw Type is ineffective in Rendered mode with Blender Internal.

In 2.8 & 2.9, Material preview is a render from EEVEE with Overlay passes above it.
Generating a Workbench render to obtain a solid render above EEVEE would be more costly because you would be doing 2 renders and compositing them.

So, if you want to see blending of textures, you have to care about EEVEE materials.
Anyways, you can’t display a single texture in viewport without creating a material.
So, you already have materials.
You can switch to local view before jumping to Material Preview mode.
Or you can mute textures nodes in materials before jumping into Material Preview node.
Or you can create shading node trees inside materials dedicated to EEVEE.

We could expect in the future that creating a material would incorporate 2 nodetrees and the simpler one would be used when Solid Maximum Draw Type is enabled.
But new 2.8/2.9 UI design is only 2 years old. Developers did not solve every point, yet.
And there are lots of aspects of Blender that are inefficient due to To Do stuff to complete.

1 Like

Allright… :cold_sweat:

I can understant the need of display unification. The good old GLSL one with simple textures blend was light, efficient, simple and just perfect for a basic scene display.
But can you imagine what you explained for a 500 objects scene, some of them sharing the same mat, and some other not, the need of switching materials each time you want to edit another mesh ?
Sound totally counter productive.

At last but not least this also proves devs do things out of consistencies as this ‘solid’ option in the viewport display tab is now a nonsense and useless.
Hopefully user don’t have to write shader/nodes for each viewport display mode of each object, and the wireframe display mode still works.Even if it’s less ‘visual’ than the solid display mode, it answers my need to not waste time at loading/LookingAt the scene…

I’m sure the EEVEE material solution is perfect when you have this kind of scene:
solid_bug.blend (745.0 KB)

but with this kind of scene:


with a huge amount of details, inner rooms and many other things, user can just forget about it :confused:
This is a scene i cannot even show in 2.9 on my Ryzen7 with 16GB ram.

Then blender will become a wireframe mesh editor to me :slight_smile: ( sound like some decades regression :rofl:

Too bad cycles lights bakes were this crappy in 2.79… And because of this i’m forced to switch to 2.9 which obviously shows better bake results.

I guess i’ll discover many other regressions in 2.9 and hope they won’t be blocking :confused:

Thanks for your explainations @zeauro and happy blending ^^

EDIT: at last but not least, and with EEVEE or not, rendering an obj as solid should be quite simple ( say… 10 ? 20 lines of C code ) :stuck_out_tongue:

if(solid_flag==true)
   TheObjMat = InternalSolidShader;
else
   TheObjMat = TheAwesomeUserShader;

And this would be this simple that it would not even need to be beta-tested :wink:
Of course i believe the render display loop is not that simple ( though it should :stuck_out_tongue: ) but
Simplicity is the highest sophistication.

hehehe :stuck_out_tongue:
happy blending !

When you are working on a huge amount of objects, you are probably using collections.
Original design idea was to create dynamic overrides per collection, by using overrides to change materials.

So, initial idea for design was thought with real usercases in mind.
Problem is that they did not succeed to do it in a reasonable amount of time.
They abandoned dynamic overrides to focus on making library overrides working, first.

Library overrides are still needing some polishing.

But after several years of development, again, we should end-up with settings to manipulate lots of rendering options per collection.