PDA

View Full Version : Strange GL_LINE_STRIP behaviour



hemicube
12-05-2007, 07:10 AM
Ok, so I'm getting these really strange gaps within a single line-strip. I've never seen this happen before and I've done my share of OpenGL/GFX programming.

My graphics card is an ATI mobility x1400 running on Vista :S

My actual application is drawing lots of fairly tessellated B-Splines, but right around where the tangent on the spline is close to pi/2 I get these annoying gaps!!

I thought it might have something to do with my tessellation code but it's really impossible to get a gap within a single LINE_STRIP prim... Here are some pics of the problem and a small code clip that exhibits the same problem, just as a sanity check! :)

1:1 no scaling of any sort.

http://hemicube.googlepages.com/normal.jpg

Zoomed in quite a bit to get a clear view of that lovely gap.

http://hemicube.googlepages.com/scaled.jpg



glBegin(GL_LINE_STRIP);
for (u32 i = 0; i < 32; i++)
{
f32 t = (f32)i / (32.0f - 1.0f);
f32 x = cosf(t*kPi)*4.0f;
f32 y = sinf(t*kPi)*4.0f;

glVertex2f(x, y);
}
glEnd();


Any insight on this would be awesome as I'm getting ready for another release of my app and this is kinda holding me back...

P.S. I've tried the same code under Linux as well with the same results.


Chris
__

Seth Hoffert
12-05-2007, 08:08 AM
Do you have depth testing enabled? Try disabling it. (Or, you could try disabling write to depth buffer.)

hemicube
12-05-2007, 10:49 AM
Yes, depth testing is disabled and really it shouldn't matter as all of the points are on the same plane (z=0) facing the camera...

Also I should add that the holes aren't always present just at certain distances away from the camera.

def
12-06-2007, 04:16 AM
What does it look like with antialiasing enabled?
Sounds to me like a rasterization problem, nothing to do with the LineStrip... If you reduce the drawing steps, the gaps don't get wider, do they?

hemicube
12-06-2007, 06:26 AM
It looks exactly the same, and yeah I'm pretty sure that it's a rasterization issue but this is all running through OGL hardware and the line-strip happens to be the interface that I'm using...

Reducing the tessellation level doesn't matter either it still has a 1 pixel gap.

I've tested the same code now on another computer and it's fine so at this point I'm just going to assume that it's an ATI driver issue, although I still find it hard to believe that I'm the only one that's come across this, so if anyone can verify that this is in fact a known ATI issue with this card that would be great! :)