opengl 将对象绑定到目标vs直接使用对象名

lsmepo6l  于 2023-06-29  发布在  其他
关注(0)|答案(1)|浏览(197)

在OpenGL中,使用对象时,可以将该对象绑定到目标并在函数中指定该目标。对于许多函数,还有另一个版本,它不采用目标,而是直接采用对象名称。示例:

  1. glBufferData(target, ...)
  2. glNamedBufferData(buffer, ...)

我的问题是,哪个函数更快?有没有什么地方,一个人是上级的?我假设是后者,因为在调用它之前不需要绑定或者解除绑定。我还没有理解使用目标的意义,但也许有一些很大的优势。
我在Windows上使用OpenGL 4.6。
任何帮助都很感激。

6ie5vjzr

6ie5vjzr1#

后一个函数减少了驱动程序中状态更改的数量,从而减少了“处理图形”的CPU开销。如果你可以使用直接状态访问函数,那就去做吧。
这是2014年提出的开创性的“接近零驾驶员开销”演示文稿的一个组成部分。videoslides

相关问题