Why does Rendered viewport shading butcher this material?

Hi all,

I am trying to build a node material that will apply corrosion to metallic objects (partially) based on an ambient occlusion map. I got it to a stage where I wanted to use cycles to bake it to several maps, only to find that in the viewport (and in renders) cycles completely kills the material I made.

Left has the Viewport Shading set to Material and on the right it’s set to Rendered UFO 00.blend (1.51 MB)

I don’t understand why the results look so very different. Can anybody help me out?

By the way, any tips on improving the procedural material are welcome. This is a test for a much larger, more complex scene, so I want to create a material that gives decent results “out of the box”. Handpainting stencils and maps is what I am trying to get away from at this point. I have somewhat exhausted the options I can see as helpful in the Shader Nodes, so now I will try to first use a Compositing Nodes to generate a better rust stencil from the AO map.


…and there are some weird things going on in your node tree.
For example is the output of the “chips” nodegroup a shader (green), yet you feed it into a MixRGB node as if the output was a color (yellow). Not sure that’s going to produce reasonable results.

Thanks for your help guys! It’s already 80% solved :slight_smile:

Eppo, sorry about that. Using Blender 2.71 on a ubuntu/kubuntu 14.04 machine with an nvidia GeForce GTX 260.

IkariShinji, that does seem to be the main culprit, I was not aware that that mistake was a noodle no-no. Now the two versions are at least close, as you can see here:

I would still love to understand why the texturing is not identical though. The difference is still large enough that it matters while tweaking. The textures and the updated blend file are here:

(Please note some are derived from textures originating from cgtextures, so please, no redistribution)

Eppo, those script look pretty useful. Going to try them out pronto. They should get me close to where I want to be. Thx!

I would assume that this is a limitation of the 3D viewport - only UV mapped textures are displayed correctly in it. Another example:

(top: viewport with “Material” shading / bottom: Rendered viewport / texture with “generated” coordinates)

If you want to see a proper preview of your non-UV-mapped textures, you will need to change to the rendered viewport.

@cornell: There was a bug for a while on Material / Render shading modes.
Fixed few days ago https://developer.blender.org/T41068
There was display differences for texture coordinates type: General, Window, Reflection.

Try download last build http://builder.blender.org/download/

Note: I didn’t read thread carefully, so sorry if my post is off topic :slight_smile:

It’s better now, having some info. But the problem is still on your end, not solved. Second file as opened shows no difference between views. I changed lights on render to better compare patterns: http://www.pasteall.org/pic/show.php?id=76784
This is rendered on different pc and OS - Mint, 64 bit. Blender comes from buildbot
vklidu already linked. Build from 26-08-14 (see splash screen for details on yours).
Download Blender, unpack in separate folder, run and see if it’s still different.
You likely are rendering on CPU (GTX 260 doesn’t fit Cycles list); here it is no difference if i use GPU or CPU.

vklidu, looks like you are right on topic. Good to know about that bug, I’ll have to get a newer build then.

eppo, my build is much older, so that looks to be the problem. Your screenshot is exactly what I was expecting and hoping for. Good to know it can work.
And yes, it’s the slower CPU that’s doing the rendering, which is why I rely mostly on the Material setting of the viewport shader, if possible, and then check the results in Rendered mode.