Drawing Mesh

Started by
4 comments, last by Disgruntled Gamer 17 years, 11 months ago
I'm trying to draw the mesh ontop of my world objects in OpenGL, but I'm having problems. If I turn on Depth testing, it draws like I want, but the mesh lines are "inside" many of the polygons, resulting in a mesh that fades in and out. If I turn off depth testing, the lines look perfect but I can see through meshes, which obviously gets very confusing very fast. How do I do this?
[size=2]Darwinbots - [size=2]Artificial life simulation
Advertisement
its not 100% clear what u want
eg possible solutions
A/ use various glDepthRanges(..)
B/ clear the depth buffer before u draw the mesh
C/ use polygon offset
I'm still somewhat new to OpenGL.

Basically I want to draw the wire mesh on top of the polygons being rendered. If I just draw the wireframe as usual, it gets variously obscured by by the poly mesh, resulting in a dulled wireframe that's not as distinct as I'd like.

Like you can show in a modeller such as Maya.
[size=2]Darwinbots - [size=2]Artificial life simulation
If you're having the same problem that I did, I could draw plain wireframes ok, but if I drew them with a colored solid and then a wireframe, the wireframe wouldn't look right with depth testing on. Try this before you draw your solid version.

glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
glEnable(GL_POLYGON_OFFSET_FILL);
glPolygonOffset(1.0, 1.0);

That should take care of your problem. The seeing through the meshes problem you are talking about can be fixed with a call to glEnable(GL_CULL_FACE); Opengl defaults to counter clockwise wound polygons, and will not draw clockwise wound polygons(the back facing ones) with this option enabled. But I'm guessing your overall scene is going to need depth testing on at some point.
Your first fix is definately an improvement. What exactly is it doing :P?
[size=2]Darwinbots - [size=2]Artificial life simulation
It's telling opengl that when you draw the filled polygon and it's time to update the depth buffer, that instead of putting the actual depth of the polygon it uses an offset of one more depth unit than it normally would. Then when you just draw the lines for the wireframe which would normally have the same depth values as the filled polygon(but now they don't since you used offset fill) they now appear how they should. Make sure you disable offset fill when your done using it too.

Here's where I originally learned to do it, click here, it's from the Red Book, you should definitely check it out.

[Edited by - Disgruntled Gamer on May 22, 2006 3:58:04 PM]

This topic is closed to new replies.

Advertisement