Help with weird normals

Hi!

We are currently working on an Audi Q8 for a presentation, but are having troubles with the normals on the body of the car.

I’m using the latest beta 6, and I’ve tried the model in the sandbox and the editor with the same result.

37

Has anyone else experienced this and knows what it depends on?

hey can you share material textures?

Pinging @PatrickRyan

Is it gltf? Which exporter?

@leon, are you, by chance, using the new clear coat options in the PBR material? If so it looks like your paint normal may be in the clear coat normal input. But if not is there any way to share the asset for us to debug? Even into a private repo.

The original exporter is substance painter, but then we had to tweak some stuff so we used editor.babylon.com.

editor.babylonjs.com is still running on alpha16, but I don’t think that is causing the problem.

In the images above the clear coat is turned off, but we are intending to use that in the final product

This is what we have discovered so far.
Normal maps are a bitch :wink:

Disclaimer, I’m still very new to the deeper aspects of 3d, so at times I might not have a clue of what I’m doing…

Our model is using tangent space normals and my 3d artist has exported the textures directly from substance painter as uncompressed 2k png files.

When using a 8-bit png uncompressed we are getting artifacts such as the above images

This is the normal map for that

But if we bumped the png up to 16-bit it looked better, but still not good.


My knowledge of how this works exactly is limited, but I understand that if each pixel from the normal texture is stored with a more precise floating point number it will look better.
But looking at the normal map in photoshop, it looks smooth, so the orange peel effect we are seeing feels a bit over the top.

Here is the model, though it contains hitboxes also, so you need to hide them first.

How were yr normals baked? with a cage ?

from high poly to triangulated low poly with cage, mikk-t space tangent basis, exported as 16 bit normalmap

1 Like

normal map not have problem

@leon, I was able to debug your model and found that there is indeed some noise in your normal map. Below you can see the normal map containing the hood of the car placed on a sphere. There is only a base color factor set to red and a roughness factor set to 0 on the asset. I rotated the environment lighting around in the scene, and you can see all of the noise that you pointed out in your question above:

I then pulled your map into photoshop and ran the cursor around what looked to be a flat area watching the info window. The colors were hopping by one or two in R, G, or B pretty consistently, which was my first clue. Then I dropped a solid chip of 127, 127, 255 with a black stroke around it and added a curve adjustment layer on top of everything. I modified the curve as you can see in the image below to maximize the contrast in any noise in the map:

You can see that There is a lot of change of tone in your normal map when compared with the flat blue in the chip. Every slight difference in the normal map means a different normal vector on that pixel. With enough changes in the normal vector across a field of pixels, you will see this kind of ripple in the surface.

You mentioned that your original textures were done in Painter so I would go back into the layers of the file and see where you may have introduced some noise in the material. My guess is that if a smart material was used, there nay be some height information baked into the normal to give this orange peel effect. Granted, if you are using clear coat on top of this, you may want to keep this texture in the normal as it will give you some lighting information on the paint below the clear coat.

I used this same approach when making our demo for clear coat where I applied clear coat to a carbon fiber material and backed off the clear coat intensity to 0.9 until you could just see some lighting information on the carbon fiber. This can be very effective at giving depth to your assets:

Let me know if this doesn’t solve your issue or if you have more questions. Take care!

1 Like

Thanks for the detailed debugging :slight_smile:
I’ll take this back to my 3d-artist and see what he says :sweat_smile:

1 Like