My Cycles render is not displaying normal properly

Hello there,
I’m trying to render a 3d model and after I export the textures from substance and set up the pbr material, it looks how I want them to in the viewport. But as soon as I render them with cycles the normal from the handle for examples looks really “washed out” for a lack of a better term.
Eevee render in the other hand looks more closely to the viewport and to what it was in substance.

Any ideas why this is happening??
Below I posted 3 images for comparison…

VIEWPORT:
viewport

EEVEE:
eevee

CYCLES:
cycles_render

By the way, here is a screenshot of the material set up. Nothing fancy… just the normal stuff for pbr:

Hi.
There is an old bump/normal map node bug, maybe it can be related:
https://developer.blender.org/T74517

2 Likes

It might be direct x normal map (blender uses opengl normal maps), try flipping green channel with nodes:


Combined into node group with Ctrl+G:

4 Likes

Yeah, that bug is still relevant here.

You can get around it by using a Displacement node with Bump Only enabled; that seems to execute the code from before the bug was introduced. This is actually mentioned in comments to that bug report.

Otherwise you have to adjust the strength of your normal map every time you switch between Eevee and Cycles.

1 Like

Thanks everyone for your replies, appreciate it. I made the changes and put the normal map into the displacement node and set to bump only but still does not give the same result as eevee and the viewport. Still coming washed out.
Am I doing anything wrong?

Below are some pictures:


disp_settings
render_02

I tried this as well but had no difference in the output as well.

If you don’t have a dedicated height map, plug the albedo/diffuse/your base color itself into the Displacement node’s Height input.

I originally made an example, but must have spaced out and didn’t actually include it. Here it is, top left is viewport, bottom left Cycles render.

This is probably too much information, but just in case:

If it’s important to you to avoid any possible, minute change of the bump (since internally Blender converts color information between sRGB and rec709, run your base color through a default black/white Color Ramp first to make it greyscale before you plug that into the Displacement. Or if this asset has to go into a game engine, you can make your own height map from the normal map you have (by using the free program Materialize, or I think you can also do it in Blender’s Compositor).

1 Like