我正在iPhone上的OpenGL ES2中渲染3D对象,该模型是从.obj文件加载的。以前渲染引擎是在ES1中实现的,我使用相同的结构,相同的元素缓冲区,一切都很好。
现在我想迁移到ES2,但是当我绘制模型时,似乎顶点以不同的顺序绘制,但是数组缓冲区和元素数组缓冲区是相同的。
这是我的顶点结构:
struct Vertex
{
union { struct { float x, y, z; }; float position[3]; };
union { struct { float nx, ny, nz; }; float normal[3]; };
union { struct { float u, v; }; float uv0[2]; };
};
我的顶点着色器是正确的,因为我渲染了一个立方体,一切都很好。
以下是使用ES2呈现的结果的屏幕截图: