glDrawArrays在使用GL_POINTS时给出垂直线

时间:2014-02-12 15:26:57

标签: windows opengl gldrawarrays

我使用glDrawArraysGL_POINTS绘制积分。 在我Intel 82945G Express Chipset Family上,一切正常。 但是在ATI Radeon Mobility 5730上,当调整窗口大小时,垂直线会随机出现。

以下是呈现图片的代码:

glMatrixMode(GL_MODELVIEW);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glColorPointer(color_p_v,GL_FLOAT,offset,color_array);
glDrawArrays(GL_POINTS,0,N);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_COLOR_ARRAY);

我在这里省略了数组初始化。

我已经用gDEBugger检查了在执行glDrawArrays函数后行被渲染到后台缓冲区。

我在这里看到了类似的问题,但人们在渲染纹理时遇到了类似的问题。我的情况稍微简单一些。

也有建议不要使用GL_POINTS,但这听起来很奇怪。

我想了解幕后发生的事情。

恕我直言,特别是司机有乐队实施,但实际上是怎么回事?

1 个答案:

答案 0 :(得分:0)

似乎我发现了这个问题。 例如在ATI上指定如浮点数(5,6)中的坐标时,我得到垂直线。 指定(5 + 0.5f,6 + 0.5f)时,所有系统上的一切都很好。 这与驱动程序如何解释坐标和像素位置有关。 整数坐标值位于不在其中心的像素之间。

我想了解更多关于这个问题的内容,但没有找到任何好的文章。