First: Does anyone knows a way to report a (potential) bug
within the Quadro-(OpenGL-)driver? (where to email or web form)
Second: I’ve tried to draw triangles (wireframe), many triangles,
to name it, it is triangle raster. (Please don’t say anything
about the ways used. I know there are better ways to do it.)
Sample 1:
glBegin(gl.TRIANGLES);
for(int i=0; i<trianglecount; i++)
{
Tuple3d a=triangles[i].a;
Tuple3d b=triangles[i].b;
Tuple3d c=triangles[i].c;
Tuple3d normal=calcNormal(a, b, c);
glNormal3d(normal.x, normal.y, normal.z);
glVertex3d(a.x, a.y, a.z);
glVertex3d(b.x, b.y, b.z);
glVertex3d(c.x, c.y, c.z);
}
gl.End();
Sample 2:
for(int i=0; i<trianglecount; i++)
{
Tuple3d a=triangles[i].a;
Tuple3d b=triangles[i].b;
Tuple3d c=triangles[i].c;
Tuple3d normal=calcNormal(a, b, c);
glBegin(gl.TRIANGLES);
glNormal3d(normal.x, normal.y, normal.z);
glVertex3d(a.x, a.y, a.z);
glVertex3d(b.x, b.y, b.z);
glVertex3d(c.x, c.y, c.z);
gl.End();
}
Sample 3:
for(int i=0; i<trianglecount; i++)
{
Tuple3d a=triangles[i].a;
Tuple3d b=triangles[i].b;
Tuple3d c=triangles[i].c;
Tuple3d normal=calcNormal(a, b, c);
glBegin(gl.POLYGON);
glNormal3d(normal.x, normal.y, normal.z);
glVertex3d(a.x, a.y, a.z);
glVertex3d(b.x, b.y, b.z);
glVertex3d(c.x, c.y, c.z);
gl.End();
}
All 3 samples should produce the same result (or am I wrong?).
On my old …hmm, very old GeForce 2 MX and my
Radeon 7000, everything looks fine, but my Quadro FX 1400
(Driver version: 84.26) produce 3 different results.
Sample 3 looks exactly as it should (and were on the older cards).
Sample 1+2 looks like the try to interpret the
glVertex-commands as a GL_TRIANGLE_STRIP or some thing like that.
Did I do something wrong or is it a problem within the drivers?
Does the drivers try to optimize the triangles to reduce trafic to the GPU?
(If: Is there a way to stop the drivers from doing that?)