Windows glDrawArrays在使用GL_点时提供垂直线
我正在使用gldrawArray和GL_点绘制一个点。 在我的Intel 82945G Express芯片组系列上,一切正常。 但在ATI Radeon Mobility上,调整窗口大小时,5730条垂直线随机出现 以下是渲染图片的代码:Windows glDrawArrays在使用GL_点时提供垂直线,windows,opengl,gldrawarrays,Windows,Opengl,Gldrawarrays,我正在使用gldrawArray和GL_点绘制一个点。 在我的Intel 82945G Express芯片组系列上,一切正常。 但在ATI Radeon Mobility上,调整窗口大小时,5730条垂直线随机出现 以下是渲染图片的代码: glMatrixMode(GL_MODELVIEW); glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_COLOR_ARRAY); glColorPointer(color_p_v,GL
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_点,但这听起来很奇怪
我想知道引擎盖下发生了什么
我知道在特定的驱动程序中是否有频带实现,但到底是怎么回事?我似乎发现了问题所在。 当指定坐标为浮点值(如ATI上的5,6)时,我会得到垂直线。 当指定5+0.5f、6+0.5f时,所有系统都可以正常工作。 这与驱动程序如何解释坐标和像素位置有关。 整数坐标值位于像素之间,不在其中心
我想读更多关于这个问题的文章,但没有找到任何关于这个问题的好文章。在clearbuffer和rerender之后,行是否仍然存在?使用GL_点肯定没有错;使用点精灵,它们是执行各种有趣操作的有效方法。启用双缓冲。调整大小时可以停止渲染。调整大小时仍无法绘制窗口。发生此情况时,Windows停止运行正常消息泵。然而,一个技巧是在开始调整大小时以0毫秒的间隔运行计时器,并在完成时停止计时器。调整窗口大小时,Windows将继续发送计时器事件。线条显示在窗口的特定宽度处。当它们出现时,我正在用其他窗口覆盖窗口,导致WM_PAINT消息和窗口重新渲染。线路还在,这不是司机的事。除非您告诉OpenGL使用不同的约定,否则它是完全指定的。阅读