在OpenGL中,使用对象时,可以将该对象绑定到目标并在函数中指定该目标。对于许多函数,还有另一个版本,它不采用目标,而是直接采用对象名称。示例:
glBufferData(target, ...)glNamedBufferData(buffer, ...)
glBufferData(target, ...)
glNamedBufferData(buffer, ...)
我的问题是,哪个函数更快?有没有什么地方,一个人是上级的?我假设是后者,因为在调用它之前不需要绑定或者解除绑定。我还没有理解使用目标的意义,但也许有一些很大的优势。我在Windows上使用OpenGL 4.6。任何帮助都很感激。
6ie5vjzr1#
后一个函数减少了驱动程序中状态更改的数量,从而减少了“处理图形”的CPU开销。如果你可以使用直接状态访问函数,那就去做吧。这是2014年提出的开创性的“接近零驾驶员开销”演示文稿的一个组成部分。videoslides
1条答案
按热度按时间6ie5vjzr1#
后一个函数减少了驱动程序中状态更改的数量,从而减少了“处理图形”的CPU开销。如果你可以使用直接状态访问函数,那就去做吧。
这是2014年提出的开创性的“接近零驾驶员开销”演示文稿的一个组成部分。videoslides