【发布时间】:2013-03-19 21:29:55
【问题描述】:
背景:我正在开发一个应用程序,该应用程序主要绘制一个巨大的节点和边的 3D 图。节点绘制为实例立方体,而边缘使用GL_LINE 绘制,并使用几何着色器扩展为由三角形条带构成的 3D 体积“线”。目前,每次重绘边缘时,我都会执行此扩展。但是,由于我的图形是完全静态的(节点不能移动,因此边缘也不能移动),我认为我只需要将 GL_LINE 定义扩展为三角形条带一次,将扩展的顶点捕获到缓冲区中(使用 Tranform Feedback ),然后从那一点开始,使用glMutliDrawArrays 使用原始类型GL_TRIANGLE_STRIP 绘制边缘。
问题:我绘制的所有这些体积线都包含 10 个顶点。但是,glMultiDrawArrays 需要一组起始索引和计数大小,它们基本上描述了每个基元的起始点和计数(以元素为单位)。由于我的原语的大小都没有变化,我会制作一个看似不必要的起始索引和计数列表。是否有 OpenGL 提供的任何功能可以让我简单地指定一个步幅(以元素为单位),在该步幅处会发生原始重启?
【问题讨论】:
-
+1 用于解释您为什么需要它。