【发布时间】:2015-01-03 00:58:42
【问题描述】:
嘿。
我是 OpenGL ES 的新手,但我对普通的 OpenGL 有一些经验。
有人告诉我,由于避免缓存未命中的优化,对顶点缓冲区使用交错数组要快得多。
我开发了一种我将使用的顶点格式,如下所示
然后我使用“glVertexAttribPointer(index,3,GL_FLOAT,GL_FALSE,stride,v);”指向顶点数组。索引是我要使用的属性之一,除步幅外,其他一切都可以。在我决定将其添加到等式之前它起作用了。我以 sizeof(SVertex) 和 13*4 的形式通过了跨步,但它们似乎都不起作用。
如果它有任何重要性,我会像这样绘制原语
glDrawElements(GL_TRIANGLES,surface->GetIndexCount()/3,GL_UNSIGNED_INT,surface->IndPtr());在 OpenGL 规范中写到,步幅应该是从属性末尾(在本例中为 z)到下一个同类属性(在本例中为 x)的大小(以字节为单位)。所以根据我的计算,这应该是 13(nx,ny,nz,tx,ty....tuv2,tv2) 乘以 4(浮点数的大小)。
哦,还有一件事是显示器只是空的。
谁能帮我解决这个问题?
非常感谢。
【问题讨论】:
-
我说了 13 个值,认为我必须减去前 3 个值(如果你只有 x,y,z 则步幅为 0);
标签: c++ pointers opengl-es rendering