【发布时间】:2013-01-18 17:57:44
【问题描述】:
我是 OpenGL-ES 的新手,并且已经开始阅读 Buck 的 Learning OpenGL ES for iOS 书籍。
第 2 章介绍了用纯色绘制三角形,第 3 章继续使用纹理。
作为个人学习练习,我正在尝试更改示例代码以绘制两个三角形;一个有纹理,另一个是实心的。
似乎是一个非常基本的练习,但是 - 作为 OpenGL-ES 初学者 - 被证明是棘手的。
到目前为止,我已经尝试了多种方法。
首先,我准备使用GLKVertexAttribPosition 进行绘图,然后是GLKVertexAttribTexCoord0。然后我用三角形 1 绘制我的顶点缓冲区。
接下来,我尝试了几件事,包括:
glDisableVertexAttribArray(GLKVertexAttribTexCoord0);
和
GLuint name = self.textureInfo0.name;
glDeleteTextures(1, &name);
在绘制颜色属性之前:
[self.vertexBuffer prepareToDrawWithAttrib:GLKVertexAttribColor
numberOfCoordinates:3
attribOffset:offsetof(SceneVertex, colours)
shouldEnable:YES];
您可以在屏幕截图中看到,左下角三角形的纹理与顶点颜色属性混合在一起。构成正方形的直角三角形完全是黑色的。
请注意,prepareToDrawWithAttrib 方法调用是 Buck 的实用程序类,主要调用 glVertexAttribPointer 方法。
重要的是要注意我在这里使用GLKit,所以没有着色器或任何类似的东西。
截图如下:
任何想法都非常感谢。
【问题讨论】: