Ios 未绘制的直线

Ios 未绘制的直线,ios,opengl-es,Ios,Opengl Es,我使用OpenGLES1.1在整个iPad视网膜屏幕上填充点。代码非常简单: glDisable(GL_TEXTURE_2D); glBlendFunc(GL_SRC_ALPHA, GL_ZERO); glPointSize(1); glColor4f(1, 1, 1, 1); int ww = 1024, hh = 768; for (int i = 0; i < ww * hh; ++i) { [self extendVertexBuffer:vertexCount]; int

我使用OpenGLES1.1在整个iPad视网膜屏幕上填充点。代码非常简单:

glDisable(GL_TEXTURE_2D);
glBlendFunc(GL_SRC_ALPHA, GL_ZERO);
glPointSize(1);
glColor4f(1, 1, 1, 1);
int ww = 1024, hh = 768;
for (int i = 0; i < ww * hh; ++i) {
  [self extendVertexBuffer:vertexCount];
  int xx = i % ww, yy = i / ww;
  vertexBuffer[2 * vertexCount + 0] = xx;
  vertexBuffer[2 * vertexCount + 1] = yy;
  ++vertexCount;
}
glVertexPointer(2, GL_FLOAT, 0, vertexBuffer);
glDrawArrays(GL_POINTS, 0, vertexCount);
glDisable(GL\u纹理\u 2D);
glBlendFunc(GL_SRC_ALPHA,GL_ZERO);
glPointSize(1);
GL4F(1,1,1,1);
int ww=1024,hh=768;
对于(int i=0;i
结果是,当在iPad上运行此代码时,所有视图都是白色的,只有两行除外:水平,Y=23,垂直,X=31。glReadPixels确认这些线具有默认颜色

一些技巧是使用glPointSize(2),但我怀疑应该存在更好的决策

有趣的细节-在模拟器上运行代码不会得到这种效果

我很乐意看到任何解决这个奇怪问题的办法


注意,不要画三角形,我真的需要画点。列出的代码只是更复杂函数中非常简化的一部分。

作为开始渲染
1024*768=786432点
非常糟糕。真是浪费。也不要每次都更新缓冲区。。。你可以尝试渲染一个纹理,他们只需在纹理打开的情况下渲染一个巨大的四边形。因此,您也可以拥有更小的纹理,但图像中没有间隙,并且不在每次渲染时更新纹理,只在需要时更新纹理。。。一个更好的主意,是研究其他的东西,而不是渲染单个点,不是好人,不是好人。。。此外,您还应该研究一些现代的OpenGL…这只是一个描述问题的简单代码。实际上,填充区域更小,渲染只执行一次,并保存为纹理。但问题仍然存在-帧缓冲区包含未填充的点。如果只执行一次。然后使用我刚才给你的纹理概念。通过这种方式,您可以轻松精确地更改每个像素,并保证“点已填充”。