首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL从单个VBO渲染多条VBO

OpenGL从单个VBO渲染多条VBO
EN

Stack Overflow用户
提问于 2014-03-03 17:47:45
回答 1查看 215关注 0票数 0

我有一个计算机着色器,为我生成数十万条路径(例如,GL_LINE_STRIPs),每个路径的大小为128个。我把它们都存储在一个很大的SSBO中,我想渲染它们。

代码语言:javascript
复制
[x1 y1 x2 y2 ... x127 y127] //path 0
[x1 y1 x2 y2 ... x127 y127] //path 1
...
[x1 y1 x2 y2 ... x127 y127] //path n

有什么好的方法来渲染这个吗?最初我考虑的是原始重启,但multiDrawArrays可能也能工作吗?我不想在抽签的同时发送成千上万的指数。

似乎在GPU上存储另一个数组以进行间接渲染也能工作吗?我只是想知道是否有某种类似于“原始重启每一个m‘点”的函数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-03 18:17:01

既然您是从SSBO而不是VBO中提取顶点数据,而且每条路径都有相同数量的顶点,那么您可能需要更少的实例呈现吗?

绑定空的VAO并调用glDrawArraysInstanced(GL_LINE_STRIP, 0, 128, n) (其中n是路径数)。在顶点着色器中,计算gl_InstanceID * 128 + gl_VertexID以获得SSBO中当前顶点的索引。

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

https://stackoverflow.com/questions/22153681

复制
相关文章

相似问题

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