Material Preview Viewport Mode needs better optimization

Blender Material Preview Viewport mode is still too problematic when handling huge scenes and very large textures like 16k +.

Even when the textures are small, there are better ways the scene textures can be handled better.

The render pass they added for Material preview was good but I see no reason why all objects in the scene are displaying textures even with render passes when you aren’t working on them. This just wastes gpu usage imho especially if the textures used in the scene are huge.

My suggestions is a toolbox in the shader editor with the following:

  • A display /turn off material preview of all assets/objects in the scene button from the shader editor.
    -Display or turn off material preview of selected object from Shader editor.

Or can be added to the drop down menu of the Material preview Viewport mode.

What most 3d artists do to manage viewport performance especially with texture heavy scenes is to turn off material preview of all assets and turn on preview for the asset they are working on only. Turn it off and switch to another assets, turn on material preview for that one, and repeat.

1 Like

There are better places for developers to see your requests.
If you don’t have a specific request and want to discuss it, User Feedback section here::

If you have a specific request:

About big Textures, Cycles has Texture Limits in Simplify menu. But Eevee (Material Preview included) doesn’t have Texture Limits on Simplify menu. You have global Textures “Limit Size” in Preferences → Viewport, but the problem is that it also affects final render for Eevee. There are plans to move it to the Simplify menu for Eevee as well.

There is no such thing as a scene button in the shader editor.
There is a dropdown menu allowing to see difference between an object material or a world material.
But there is no sum-up of all materials present in scene in shader editor.
Only recap existing is available in outliner.

I would be more in favor of a clay material for a whole collection in collection properties.
I think it is the kind of solution that should become possible with dynamic overrides.

But yes, current situation is not as good as in 2.79. Solid Display type is ignored by Material and Rendered mode, like Render Region. It does not work for EEVEE that keeps everything textured.
Only way to minimize amount of textured objects is to use Wire Display type instead.

I probably missunderstand the problem, but why not just single out the object/asset of interest (e.g. local view)?

greetings, Kologe

Personally I never use this mode since Realtime Render mode added, because my Rendered mode works much much faster. And if you have huge scene, then you can use “Simplify” option.


While there are certainly improvements to be made in performance…

If so then ‘most’ 3d artists are making a fundamental mistake in workflow.
Don’t edit assets in a scene. That’s not a Blender limitation, that’s fundamental CG workflow.

1 Like

Good question, sometimes you might want to texture or tweak materials with other assets in full view to see how the scale of texture, etc match other assets. Due to performance issues if you are using very high textures or very complex materials, the scene might become heavy so you comprise by turning them off for other assets while still having the models in display as you texture that particular asset. Some people like to work with everything in view to get a sense of how everything is even though textures are turned off for performance reasons. This is possible in 3dsmax if I recall or am not mistaken.

Another issue here too is if the scene is very heavy material wise. If you open the scene, you have to wait for the shader compilation to calculate all material previews. It would be nice if the file opens with what materials you had on and the ones you had off, so shader compilation is kept to a minimum.

Never knew about this feature. Thanks a lot for the tip. It definitely improves things but you might want to keep your textures high res to inspect them in relation to other assets but it definitely useful when everything is finalised and you want to optimize viewport for better rendering.

I am aware of the append and Linking in Blender. Everybody has their own way of working. Some prefer to work in separate files, some like to work on everything in one file.

As for ‘‘fundamental’’, that’s debatable. Editing assets in separate blender files and linking them to one big scene might be a solution to the Material Preview issue in Blender but that doesn’t mean it should be the way it is.
Even with the linking, if you open the master file that has all the linked assets, you will still have to wait a very long while for shader compilation to be complete to see the end result to know what needs fixing and adjustments texturing wise.

Eh? I’ve been a 3D artist for 25 yrs and I edit assets in scenes almost everyday!

Help me! I’ve been doing it wrong for a quarter of a century!

1 Like