哪个更快:调用glGetUniformLocation还是使用std::map

Which is faster: calling glGetUniformLocation or using std::map?

本文关键字:map std glGetUniformLocation 调用      更新时间:2023-10-16

我正在尝试将GL调用封装在外部函数和类中。因此,这给我的着色器设置统一带来了一个问题:glGetUniformLocation是一个缓慢的操作吗?如果是这样的话,使用std::map将由统一名称索引的统一索引存储在字符串中会更慢还是更快?我试图避免静态地(即使用宏或类似的)统一编码

编译/加载着色器时只调用glGetUniformLocation一次,然后自己缓存结果;在帧中使用它会导致暂停,因为大多数驱动程序并没有将其实现为热通道,而是会等待任何排队的管道操作完成后再执行(这适用于大多数glGet函数,永远不要在帧中调用这些函数,只调用一次,然后自己缓存结果)。

相关文章: