作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Android 上使用 OpenGL ES 绘制一些形状,所以我有一些模型类可以从 .obj 文件加载顶点等。
然后每个模型都有一个 onDrawFrame() 方法,由渲染器调用以将其放置在场景中。
public void onDrawFrame(GL10 gl) {
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glEnable(GL10.GL_CULL_FACE);
gl.glFrontFace(GL10.GL_CCW);
gl.glCullFace(GL10.GL_BACK);
gl.glVertexPointer(0, GL10.GL_FLOAT, 0, mVerts);
gl.glDrawElements(GL10.GL_TRIANGLES, mFaces.capacity(), GL10.GL_UNSIGNED_BYTE, mFaces);
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
}
我现在的困惑是在哪里“重置”顶点指针(我认为),因为如果我尝试使用 2 个新顶点从新 glVertexPointer 创建任意线,并使用这些 ID 调用 glDrawElements(GL_LINES),该行似乎总是使用原始数据中的顶点 0 和 1。
我是否需要在一个由主场景以某种方式跟踪的主 glVertexPointer 中预定义我场景的所有顶点,并让每个模型只调用具有合适偏移量的 glDrawElements?或者我是否以某种方式清除指针?
最佳答案
不确定这是否能解决您的问题,但您的 glVertexPointer 行应该如下所示:
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mVerts);
因为每个顶点有 3 个坐标。除此之外,您应该能够使用上述方法设置一个新指针。
关于android - 重复调用 glVertexPointer 和 glDraw,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3612831/
我正在尝试使用 gltexcoordpointer 和 gldrawarrays 来纹理立方体(我在我的环境中使用 PyGL)。我可以让立方体成功显示(尽管它是白色阴影的),但我不知道如何将纹理应用到
我在 Android 上使用 OpenGL ES 绘制一些形状,所以我有一些模型类可以从 .obj 文件加载顶点等。 然后每个模型都有一个 onDrawFrame() 方法,由渲染器调用以将其放置在场
我是一名优秀的程序员,十分优秀!