我在.OBJ文件中有一个人体模型,我想用三角形显示网格。没有纹理。我还希望能够移动,缩放和3D旋转。iOS OpenGL ES绘制网格线框
第一个工作选项是使用数学手动将顶点投影到2D,然后用Quartz 2D绘制它们。这是有效的,因为我知道透视投影的基本数学概念。
但是,我想使用OpenGL ES的那种方法,但我不知道如何绘制三角形。
例如,代码 - (空)的drawRect:(的CGRect)矩形是:
glClearColor(1,0,0,0);
glClear(GL_COLOR_BUFFER_BIT);
GLKBaseEffect *effect = [[GLKBaseEffect alloc] init];
[effect prepareToDraw];
glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);
现在怎么办?我有顶点位置(每个顶点3辆花车)和三角形索引数组的数组,所以我想这:
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, numVertices,pVertices);
glDrawElements(GL_TRIANGLES, numTriangles, GL_UNSIGNED_INT,pTriangles);
但这并不显示任何东西。我从示例中看到glEnableVertexAttribArray(GLKVertexAttribPosition)和glDrawArrays的用法,但我不确定如何使用它们。
我也明白,使用ES渲染线框是不可能的?所以我必须将颜色属性应用到顶点。没关系,但在此之前,三角形必须先显示。
http://gamedev.stackexchange.com/ – axis
@axis我无法以任何方式看到这与游戏开发有何关系。 gamedev.se不是任何与图形相关的转储。 –
@ChristianRau OpenGL是一种渲染技术,不仅仅适用于“图形”,而且可能是Gamedev的最佳选择。 – axis