2010-11-12 60 views
10

我尝试使用下面的代码绘制一个正方形状的像素用OpenGLOpenGL的 - 如何绘制方形像素与GL_POINTS

glPointSize(5.0f); 
glBegin(GL_POINTS); 
glVertex3f(1.0f, 1.0f, 1.0f); 
glEnd(); 

然而,最终的结果是一个圆形状的像素。

请参考参考http://risknfun.com/compform/w1.html 请参阅“问题4.网格”。在右侧,显示图像具有方形像素。

+0

你对glPointSmooth的设置是什么? – Kos 2010-11-12 16:58:59

+0

我使用默认值 - 谢谢 – q0987 2010-11-12 16:59:46

+1

它现在适用于我。只需使用glDisable(GL_POINT_SMOOTH) – q0987 2010-11-12 17:10:53

回答

17

它部分取决于OpenGL的实现(也就是说,它可以随图形驱动程序而变化),但有一点运气,你可以用glEnable(GL_POINT_SMOOTH);glDisable(GL_POINT_SMOOTH);开启或关闭此功能打开点平滑功能后,通常会得到四舍五入的点数,但关闭它会得到方点。

5

您也可以尝试告诉OpenGL没有通过调用花时间做GL_POINTS好和轮:

glHint(GL_POINT_SMOOTH_HINT, GL_FASTEST); 

但请记住,这只是一个提示。 OpenGL驱动程序最终是硬道理。