我使用glDrawArrays
和GL_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
,但这听起来很奇怪。
我想了解幕后发生的事情。
恕我直言,特别是司机有乐队实施,但实际上是怎么回事?
答案 0 :(得分:0)
似乎我发现了这个问题。 例如在ATI上指定如浮点数(5,6)中的坐标时,我得到垂直线。 指定(5 + 0.5f,6 + 0.5f)时,所有系统上的一切都很好。 这与驱动程序如何解释坐标和像素位置有关。 整数坐标值位于不在其中心的像素之间。
我想了解更多关于这个问题的内容,但没有找到任何好的文章。