Smooth Shading Error Revealing Polygons on a Scaled-Up Object

Hello! I’m experiencing the following issue with any smooth-shaded object in unity:

I am working on a multiplayer game where a major mechanic requires a game character to scale up to 40 times its normal size.

Our character is about 10,000 tris, and is smooth shaded. The smooth shading looks perfect on the model at normal scale, even when the camera is brought up close. But at 40x scale the shading reveals the ugly polygon faces. If I pull the camera really far away from the scaled-up model the shading looks normal again.

In regular multiplayer gameplay though, small players will be right next to and underneath a scaled-up player model, making this effect very noticeable.

How can I avoid this visual error?

This happens with both the mesh renderer and the skinned mesh renderer.

Subdividing the model only made the polygon pattern more dense, and unfortunately doesn’t smooth it out.

Hey @JChaseFilms , it’s hard to say without a repro.
The first thing that comes to mind for me is floating point issues. Could you try increasing the model size by 10x in your DCC tool and do 1/10 → 4x scaling in the engine, to see if this solves the issue ?

To me this doesn’t seem to have anything to do with smooth shading, it just looks like self-occlusion issues with screen-space ambient occlusion (SSAO). If I had to guess I’d say the world-space fragment position reconstruction is suffering from precision issues*,* in that case using a higher-precision depth buffer and/or adjusting the camera’s near/far planes should help.

Are you using SSAO as part of your post-processing pipeline?

1 Like