2013-07-04 35 views
0

是一个完整的OpenGL新手,我有一个问题,我不明白如何解决。我正在使用JOGL,并试图绘制一个磁盘,充满纯色和不同的边框颜色。我的问题是显而易见的,如下图中:GLUQuadric磁盘绘制但填充颜色不固定

gluquadric disk

什么我不明白的是为什么我仍然可以看到由GLU生产线。代码绘制如下:

glColor3ub(r, g, b); // purple 
gluDisk(quadric, 0, 50, 32, 2); 

glColor3ub(r, g, b); // dark gray 
gluDisk(quadric, 49, 50, 32, 2); 

我怀疑我做了混合/反锯齿的错误。当我禁用抗锯齿功能时,形状将以纯色绘制;但是我需要AA。我已经建立了AA和混合如下图所示:

glEnable(GL2.GL_BLEND); 
glBlendFunc(GL2.GL_SRC_ALPHA, GL2.GL_ONE_MINUS_SRC_ALPHA); 

glEnable(GL2.GL_LINE_SMOOTH); 
glHint(GL2.GL_LINE_SMOOTH_HINT, GL2.GL_NICEST); 

glEnable(GL2.GL_POLYGON_SMOOTH); 
glHint(GL2.GL_POLYGON_SMOOTH_HINT, GL2.GL_NICEST); 

最后,我GLCanvas中与以下GLCapabilities创建:

caps.setAlphaBits(16); 
caps.setDoubleBuffered(true); 
caps.setHardwareAccelerated(true); 

其他的二次渲染性能是默认的。有人明白我做错了什么吗?对于可能丢失的任何信息,我表示歉意!谢谢阅读!

伊利亚斯

回答