很少动画的顶点的 OpenGL VBO 使用提示
Posted
技术标签:
【中文标题】很少动画的顶点的 OpenGL VBO 使用提示【英文标题】:OpenGL VBO usage hints for vertices that animate rarely 【发布时间】:2012-01-13 23:45:07 【问题描述】:假设我有一个 95% 的时间保持不变的 VBO。但是,另外 5% 的时间是动画。我不确定调用glBufferData
时要给OpenGL 哪个使用提示。
一方面,它在 95% 的情况下都像 GL_STATIC_DRAW
缓冲区。另一方面,GL_STREAM_DRAW
推荐用于动画。我应该妥协并通过GL_DYNAMIC_DRAW
吗?
或者我应该将它们组合起来,在动画期间调用glBufferData
和GL_STREAM_DRAW
,然后在动画完成时用GL_STATIC_DRAW
重新缓冲?
【问题讨论】:
【参考方案1】:唯一可行的答案是尝试一些东西,看看哪种方法最适合不同的平台。 OpenGL 没有定义性能,每个驱动程序都会以不同的方式实现这些东西。提示就是提示;他们不一定会做任何事情。
事实上,AMD 完全无视你的使用提示;它会根据您实际使用缓冲区的方式来执行它的操作。这主要是因为 GL 的太多用户使用不当。
【讨论】:
以上是关于很少动画的顶点的 OpenGL VBO 使用提示的主要内容,如果未能解决你的问题,请参考以下文章