From: Brian P. <br...@va...> - 2001-03-06 14:26:12
|
Mike Gilbertson wrote: > > I have Redhat Linux 7.0 installed on three very different PCs, but I get > the same drawing effect on each. > > We are drawing an earth globe, with SOLID 3D lines drawn slightly above > the surface to mark off latitudes, longitudes and country boundaries, > among other things. > > The LINES are broken (the globe shows through) in a series of circular > patterns, radiating out from the viewpoint center. Lines drawn well > away from the globe do NOT have this dropout effect. > > I thought this might be a Z-buffer computational effect, so I recompiled > Mesa with 32 bits set for the DEPTH BUFFER. This had no effect on the > display. Do you mean DEFAULT_SOFTWARE_DEPTH_BITS? Actually, 32 won't work because of integer overflow problems. If you're using the GLX API you can specify GL_DEPTH_BITS=31 to glXChooseVisual() and Mesa will give you that amount. No need to recompile. You'll need Mesa 3.4 or later though. > Does anyone know what the problem is, and what I can to do to eliminate > it?? > > Note: The program works perfectly on SGI computers. This sounds like the well-known "Z-fighting" problem in which nearly coplaner primitives generate fragment Z values which aren't consistently ordered. Typical solutions include: 1. using glPolygonOffset() to push the polygons back by some amount. 2. using a smaller near/far clip plane ratio to improve Z buffer performance. 3. biasing the near, far clip planes to approximate polygon offset. 4. disabling Z testing when drawing the lines, if practical. -Brian |