← All ideas

Make Workbench Render engine an official shader node output option

It will allow artists to manually define fixes to problems currently encountered with solid/texture viewport mode.

My computer isn’t good enough to stay in cycles viewport all the time. Eevee is also slow. Unfortunately solid view doesn’t do a good job of showing all the things it could show all at once. The ability to custom tailor a material just for solid view would be of great benefit.

Textures are not shown if the image node is not set to flat or if the object lacks uvs.

Vertex colors are only shown if Attribute option is chosen and then they are the only thing being shown.

Random colors are very useful but they ignore alpha set in material or object color so you can no longer see through glass.

Some glass materials use a roughness map and when in Texture mode you always see the opaque roughness map when you would rather see a semi-transparent color or texture.

Some transparent materials use an image texture for both the color and the alpha instead of having an alpha channel.

Textures with alpha channels always show with their alpha channels applied and very often I don’t want that:

80%

Development Status: Open

Upvote 8 Downvote 2
thinsoldier
2 Jul 2023

5 Comments

jeroenbakker

Workbench engine design principle is to have the best performing engine for animators and modellers. Adding the overhead of a node tree would sacrifice this design principle. Hence the current limitations.

We are already struggling with the data pipeline of workbench as we fully use all available data elements. Adding a new element is technically possible, but leads to already noticeable performance drop. Perhaps not noticeable in all scenes, but would be when comparing the bigger scenes, before the change and with the change applied.

To fix this we need to introduce a brand new engine, but I doubt that is feasible as that engine doesn't have that much of benefits over the other engines, but adds overhead to maintain it.

4
thinsoldier Author

I'm not asking for advanced calculations, just the ability to actually control the settings of what gets drawn.

Workbench is not giving the best performance that it could for modeling and layout because of a lack of control.

I am only asking for simple controls and the node editor is the best place for those controls.

You can define the cycles representation, the eevee representation, and the proxy workbench representation all in one place.

jeroenbakker

Hi, you might think that your not asking for advanced calculations and that is correct. But GPU performance isn't driven by calculations, but by data streams. Adding a node-base evaluation, even just very limited would require different data streams and reduce the performance drastically.

At this moment we can draw 4096 workbench materials in a single draw call. Note that a Blender material doesn't translate one to one to a workbench material due to matcaps, color modes etc. When adding just a simple evaluation would require to store more intermediate data per matieral and would reduce the number of workbench materials to be called in a single draw call a lot. Might just become a hand full of workbench materials per draw call.

This is very technical, but these are the limits the developers need to balance and aren't clear to users and artists, and might not be optimal for scene decoration but this request has the potential that animating in Blender becomes useless.

If it was possible without loosing performance we would already have done it.

1
thinsoldier Author

Maya's viewport is like a poor man's workbench combined with a poor man's eevee and it seems to have decent performance in a complex scene that has been setup to be used only as a background for an animator to work on a character. There's a decent amount of detail in terms of what is transparent and what is not and some textures are scaled by UV while other textures are scaled via the material nodes and they look and work fine in Maya. In Blender I have gotten into the habit of adding a semi-transparent png and selecting that image node just so it will be what is shown in solid textured view instead of the actual image texture node that is rendered. It's a workaround that works but why should we need a workaround for something that works fine without performance issues elsewhere?

camplowell

Even without full node editor options, it would be nice to have at least some of the options currently in the View properties broken out into Viewport settings on the material.

Possibly most importantly, allowing the material to set a fixed texture as the one to display in Workbench (as opposed to needing to re-select that image node every time you work with the material). This likely wouldn't even have any overhead on the Workbench side!

In terms of vertex colors, it would be great if that could be turned on/off on a per object or per material basis.

I know that the second one may have to add some bandwidth overhead that would reduce draw calls, but if there's even a single free bit in the mapping, that may be a good use for it.

1