我必须绘制一个物理模拟,显示在粒子周围移动的轨迹。在绘图时,实时从数据库中读取3D位置数据。为每个对象设置VBO后,绘图调用将成为标准glDrawArrays(GL_LINE_STRIP, 0, size)
。问题是,自添加新点以来,每帧都会更新存储跟踪点的VBO。这对我来说效率极低!此外,如果我想用从粒子的实际位置到较旧点的渐变颜色绘制轨迹,该怎么办?我必须在每次绘制调用时更新VBO中所有顶点的颜色!通过这种东西的标准方法是什么?
总结:
我阅读了很多教程但是我没有发现任何关于绘制不断更新和无限期增长的内容......我将不胜感激任何建议!谢谢!
答案 0 :(得分:1)
gl_VertexID
并将总点数作为制服传递。然后,您可以将给定顶点的序列号除以总计数,并使用该分数在渐变颜色之间进行混合。