首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IBO比GL_TRIANGLE_STRIP更糟?

IBO比GL_TRIANGLE_STRIP更糟?
EN

Stack Overflow用户
提问于 2012-09-19 12:02:17
回答 1查看 455关注 0票数 6

为了学习的目的,我决定用3种方法画一个球体。

  1. 显示列表
  2. 美国之音Vbo (GL_TRIANGLE_STRIPE)
  3. Vao Vbo和Ibo (GL_TRIANGLES)

我读到使用ibo可以使程序运行得更快,但这真的是真的吗?对于100个切片和100个堆栈的球面,第二种方法生成40400个顶点,而第三个“仅”生成1982年。通过这样做,我保存了20598个顶点,每个32字节= 659136字节。

  1. VerticesSize=(片*4)*(stacks+1);
  2. VerticesSize=(片*2)*(叠-1)+2;

但是,我需要创建索引数组,在本例中,索引的大小为118800(创建所有faces所需的索引数量)*4(无符号int的大小)=475200字节!第二种方法用15 6pfs呈现1000个球体,而第三种方法仅用6 6pfs呈现1000球。

  1. 将索引数组从GL_TRIANGLES转换为GL_TRIANGLE_STRIP比第二种方法更有效吗?
  2. 使用ibo渲染球面是不是坏主意?
  3. 为什么它变慢了?索引数组中的顺序有什么关系吗?

或者也许我的代码写错了,这也是为什么它如此挣扎的原因:(如果有人感兴趣,下面是我的代码http://pastebin.com/raw.php?i=74jLKV5M

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-19 14:42:57

glDrawElements呼叫是错误的。计数参数应该是索引数,而不是数字乘以4。请尝试更改它。

使用指数代替三角形条几乎总是更快。事实上,如果司机在幕后使用索引来渲染三角形条带,我也不会感到惊讶。

另外,正如我在评论中提到的,索引的顺序会影响性能。然而,对于您的领域,您正在使用的索引模式可能是最优的,尽管如此,它所产生的影响很小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12494315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档