我正在用 OpenGL 3.2+ 编写引擎。可渲染对象有一个网格(又名 VAO)和几个材质(又名着色器和程序)。所有可渲染对象都存储在渲染队列中,该队列对材质和网格的渲染过程进行排序,从而需要最少的 OpenGL 绑定调用。
但是,有时它会绑定已经绑定的对象,我的问题是:OpenGL 是否会自动检测您何时尝试绑定已绑定的对象并跳过所有昂贵的操作,或者您是否必须实现一个系统才能检测一个对象是否已经自己绑定?
如果 OpenGL 没有检测到这一点,通过 glGet* 获取对象名称并与您尝试绑定的对象进行比较或自己跟踪当前绑定的对象是否可能更快?