glBufferData中的提示标志实际上可以做任何事情吗



我所说的标志是GL_STREAM_DRAW、GL_STATIC_DRAW和GL_DYNAMIC_DRAW。手册页清楚地说明了你应该在什么时候使用它们,但不清楚如果你这样做会发生什么

现在,在你们回答得太快之前,让我声明我理解他们应该做什么,并可以想象一些可能很重要的假设场景。但我怀疑这是否会在实践中产生很大影响。最近,我一直在想,把国旗设置为GL_DYNAMIC_DRAW并忘记它会很好,但我心中有一个挥之不去的疑问,如果我这样做,我可能会朝自己的脚开枪。

有人真的更了解这些东西的作用吗?特别是我最好奇的是STATIC_DRAW和DYNAMI_DRAW之间的区别。选错是帧速率死亡陷阱还是安慰剂?我想,任何真正的答案都将以实际的驱动程序实现为条件。或者,如果你能想出一个真实世界的例子,让这些标志做一些事情(任何真正的事情),那么我很有兴趣看看它

使用提示永远不会有任何行为变化。他们最多会改变各种操作的性能。也许那时也不会。

例如,使用提示被滥用,AMD有效地忽略了它们。它们将根据使用缓冲区的方式来移动内存,而不是根据使用提示。NVIDIA的驱动程序不太愿意妥协。

一般来说,要想知道使用哪种用法提示来获得最大性能,唯一的方法就是评测。您可以选择哪种提示来获得最佳性能。

相关内容

  • 没有找到相关文章

最新更新