zed

09-14-2005, 10:50 PM

the spheres are contructed in a display list, the tips are tri_fans and the middle is made from quad_strips, the quad strips work fine its only the tri_fans that have the problem but only if i have the glnormal call in there

im getting this on a gffx with 77.72 drivers.

// good picture

glNormal3f( 0,1,0 );

// draw the tips as tri_fans

glBegin( GL_TRIANGLE_FAN );

v.x = sin( 0.0 ) * sin( 0.0 ); // blah blah

v.z = cos( 0.0 ) * sin( 0.0 );

v.y = cos( 0.0 );

glVertex3fv( center + v*radius );

for ( sl=0; sl<slices+1; sl++ )

{

a = float(sl)*off_R;

v.x = sin( a ) * sin( off_H );

v.z = cos( a ) * sin( off_H );

v.y = cos( off_H );

// glNormal3fv( v );

glVertex3fv( center + v*radius );

}

glEnd();

// bad picture (yes i know the normal aint necessarily unit length)

glBegin( GL_TRIANGLE_FAN );

v.x = sin( 0.0 ) * sin( 0.0 );

v.z = cos( 0.0 ) * sin( 0.0 );

v.y = cos( 0.0 );

glVertex3fv( center + v*radius );

for ( sl=0; sl<slices+1; sl++ )

{

a = float(sl)*off_R;

v.x = sin( a ) * sin( off_H );

v.z = cos( a ) * sin( off_H );

v.y = cos( off_H );

glNormal3fv( v );

glVertex3fv( center + v*radius );

}

glEnd(); http://uk.geocities.com/sloppyturds/good.jpg

http://uk.geocities.com/sloppyturds/bad.jpg

btw this aint important (as i can workaround it and also its only for debugging)

ta zed

im getting this on a gffx with 77.72 drivers.

// good picture

glNormal3f( 0,1,0 );

// draw the tips as tri_fans

glBegin( GL_TRIANGLE_FAN );

v.x = sin( 0.0 ) * sin( 0.0 ); // blah blah

v.z = cos( 0.0 ) * sin( 0.0 );

v.y = cos( 0.0 );

glVertex3fv( center + v*radius );

for ( sl=0; sl<slices+1; sl++ )

{

a = float(sl)*off_R;

v.x = sin( a ) * sin( off_H );

v.z = cos( a ) * sin( off_H );

v.y = cos( off_H );

// glNormal3fv( v );

glVertex3fv( center + v*radius );

}

glEnd();

// bad picture (yes i know the normal aint necessarily unit length)

glBegin( GL_TRIANGLE_FAN );

v.x = sin( 0.0 ) * sin( 0.0 );

v.z = cos( 0.0 ) * sin( 0.0 );

v.y = cos( 0.0 );

glVertex3fv( center + v*radius );

for ( sl=0; sl<slices+1; sl++ )

{

a = float(sl)*off_R;

v.x = sin( a ) * sin( off_H );

v.z = cos( a ) * sin( off_H );

v.y = cos( off_H );

glNormal3fv( v );

glVertex3fv( center + v*radius );

}

glEnd(); http://uk.geocities.com/sloppyturds/good.jpg

http://uk.geocities.com/sloppyturds/bad.jpg

btw this aint important (as i can workaround it and also its only for debugging)

ta zed