use polygon offset to avoid multi-pass Z-fighting artifacts

This commit is contained in:
Brian Paul
2002-11-28 15:51:55 +00:00
parent 957a0cdb13
commit 1b94df053d

View File

@@ -1,4 +1,4 @@
/* $Id: gloss.c,v 1.6 2000/12/24 22:53:54 pesco Exp $ */
/* $Id: gloss.c,v 1.7 2002/11/28 15:51:55 brianp Exp $ */
/*
* Specular reflection demo. The specular highlight is modulated by
@@ -85,9 +85,9 @@ static void Display( void )
glCallList(Object);
/* Second pass: specular lighting with reflection texture */
glEnable(GL_POLYGON_OFFSET_FILL);
glBlendFunc(GL_ONE, GL_ONE); /* add */
glEnable(GL_BLEND);
glDepthFunc(GL_LEQUAL);
glMaterialfv(GL_FRONT, GL_DIFFUSE, Black);
glMaterialfv(GL_FRONT, GL_SPECULAR, White);
if (DoSpecTexture) {
@@ -102,6 +102,7 @@ static void Display( void )
glDisable(GL_TEXTURE_GEN_S);
glDisable(GL_TEXTURE_GEN_T);
glDisable(GL_BLEND);
glDisable(GL_POLYGON_OFFSET_FILL);
glPopMatrix();
@@ -341,6 +342,8 @@ static void Init( int argc, char *argv[] )
glEnable(GL_DEPTH_TEST);
glEnable(GL_NORMALIZE);
glPolygonOffset( -1, -1 );
if (argc > 1 && strcmp(argv[1], "-info")==0) {
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));