How to fix "wavy faces" when in shaded mode?

Sorry to bother folks with this one, I know I came across a proposed fix for this a while back, but endless Google searches and searches here and at cgtalk have failed to re-locate it.


When dealing with meshes in shaded mode, the faces seem to “swim,” that is they get a wavy sort of jagged appearance near the edges, almost as if the face was a loose piece of paper flapping off of the edges. This does not happen at the edges beween coplanar faces, only the edges between faces where there is an angle. It happens with primitves I’ve tweaked (such as taking a cube and moving one edge to put the face on an angle), with extrusions, and even, lately, with primitives that have only been changed by scaling along an axis.

I have noticed that using a lot of extrusions with scaling seems to make the issue worse, and on a few models the fix was to delete the “wavy” face and then re-form it by selecting the four vertices and hitting “f.” It also seems to be caused in some cases by edges that are coplanar but not coextensive (caused by use of f-gons and by extrusions scaled flat along the normal AFAICT). Deleting the edges and then re-forming the faces works…sometimes.

If this only occurred when dealing with oddball extrusions, I could understand the issue as one likely pertaining to f-gons. But the fact that it seems to happen with simple six-sided cube shapes that have been merely, say, scaled along x or y, has me confused.

Can anyone point me to a work-around for this issue?

Thanks for your help, in advance.

Could you post a screenshot?

does changing your clipend value to be lower [in the view’s “view properties” panel] make it any better?

if it does it is a lack of precision on the part of your [graphic card’s] zbuffer. or that clip end is too high. there isn’t really much you can do to fix this other than get a newer video card

also, this error shouldn’t show up in a render, blender uses a iirc 24 bit zbuffer which is very unlikely to have this problem

Here are two screenies. I think I’ve figured out how to correct the issue, but I have no idea why it keeps happening.

I think the “wavy” effect is pretty obvious here.

Here’s what it looks like after the “fix”:

Since z3r0 d pointed out that this should not appear in renders, I decided to test it out, so I lined up the 3d view and hit Numpad INS (set camera view). I had to move the camera again, but once it got close enough in, the “wavy” effect was gone and I could continue editing.

Anyone have any idea what this is? Is it maybe a bug I’ve stumbled across?

Yes. . . I notice this too when I blend! It seems to go away when I change zoom, but reappears after a little while. It is annoying I know, but I always blamed my Nvidia for the error because I thought it had something to do with the acceleration in OpenGL.

IF it is a bug, by all means, I would like to see it fixed.

This is not a Blender bug, and might not even be a video driver bug. It is due to your video card using a 16-bit zbuffer, or depth buffer. In perspective mode, the depth errors don’t show up for some odd reason. This happened on my Wildcat VP 760, where the default zbuffer value was 16-bit. If I forced a 24- or 32-bit zbuffer, the problem went away. It might be possible to do the same on your card.

This does not happen in renders because Blender does not use the OpenGL subsystem in its rendering path.

What kind of video card are you using? Also, could you post some screenshots of the advanced graphics settings? (right click desktop > properties > setup > advanced > video card specific settings) If I could see those, I might be able to tell you if there is a setting you can change to get things to work right.


I run a Gainward GeForce 4 4200 128mb

Here are the settings:

This problem is called zFighting. It happens when the openGL zBuffer is confused about which face is on top and which is in the back. It’s usually triggered by an extreme zoom on a really small model. In those case, just scaling the model up a bit would “fix” it. On top of that, some 3D card uses very low precision zBuffers, so this can account for frequent zFighting too.

In any case, this only affect the openGL view, not rendering.