Clarifying Rhino 7 Cycles PBR Normal: It's OpenGL!

It’s important to note that the PBR Normal Map must be OpenGL for optimal results in Rhino 7 Cycles.

image

Normal maps are typically encoded in one of two coordinate systems: OpenGL or DirectX.

Rhino 7 Rendered

Rhino 7 Raytraced
In raytraced, the bump is stronger.

However, the comparison between different normals becomes a bit more complex when the light source is at the side - in these instances, all formats seem equal.

The difference lies in how they interpret the Y coordinate: DirectX uses “up” Y direction, while OpenGL uses “down” Y direction.

I’m afraid, as of my last knowledge, (OpenGL or DirectX) is not explicitly documented.

For the most accurate, I do research by myself. To explore this further, consider using Substances to open two projects - one configured for OpenGL and the other for DirectX. Remember to double-check your exports to ensure you’re working with the correct format regardless of your initial setup.

As a part of my experimentation, I used various surface creation techniques, including SrfPt, Loft, EdgeSrf, Patch, Plane, Box, Cap, and others. I discovered that some surfaces are flipped by construction (displayed in magenta/pink/purple color) by default, leading to various UV configurations.

Some of the UVs were rotated, while others were flipped.

When dealing with a texture that has a flipped mesh (normal), it can make things more confusing, especially for bump and OpenGL Normal. This can cause misrepresentations in normal bump mapping. Therefore, it’s vital to consider checking the UV mesh using the UV editor and asking for bug fixing.

Last Tutorial: Breathing Fresh Air into Rhino 3D: A Study on Fog Rendering in 2023

5 Likes

In my opinion, Bump mapping, the grayscale image, produces too many visible steps:

That is the reason why using OpenGl Normal can improve your render.

6 Likes

thanks Alan for sharing

1 Like