繁体   English   中英

GLKit不会绘制GL_POINTS或GL_LINES

[英]GLKit Doesn't draw GL_POINTS or GL_LINES

我正在努力开发仅使用程序生成的线条绘制的新iOS游戏。 一切工作正常,除了一些绘制原始图元的怪事。

我现在需要实现文本,并且将字符设置为数组中的一系列点。 当我绘制点(即CGPoints)时,某些绘制模式很有趣。

    effect.transform.modelviewMatrix = matrix;
[effect prepareToDraw];
glEnableVertexAttribArray(GLKVertexAttribPosition);
glVertexAttribPointer(GLKVertexAttribPosition, 2, GL_FLOAT, 0, 0, &points);
glDrawArrays(GL_POINTS, 0, ccc);

我正在使用此代码从数组中绘制图形,并且当模式设置为GL_LINE_LOOP或GL_LINE_STRIP时,所有效果都很好。 但是,如果将其设置为GL_POINTS,则会收到gpus_ReturnGuiltyForHardwareRestert错误。 如果我尝试GL_LINES,它什么也不会画。

可能会发生什么?

在ES2或ES3中使用GL_POINTS进行绘制时,您需要在顶点着色器中指定gl_PointSize ,否则将获得未定义的行为(最好是在设备上进行丑陋的渲染,最糟糕的是发生崩溃)。 GLKBaseEffect使用的顶点着色器不执行gl_PointSize ,因此不能与GL_POINTS一起使用。 您需要实现自己的着色器。 (作为起点,请尝试在创建新的Xcode项目或使用Xcode Frame Debugger查看GLKBaseEffect生成的GLSL时获得的“ OpenGL Game”模板中的模板。)

只要您在客户端代码中使用glLineWidth()设置适当的宽度, GL_LINES可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM