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