所以我最近了解了 VAO(顶点数组对象),到目前为止它们看起来非常棒,但我有一个我似乎无法解决的问题。我有一堆模型,它们的顶点状态存储在单独的 VAO 中,所以一次调用
glBindVertexArray(VAO);
就是开始绘制这个实例所需要的一切。问题在于我必须绑定一个额外的 VAO,一个包含一个
glDrawElementsInstanced();
称呼。所以它包含偏移量、UV 偏移量、颜色叠加等数据。当我绑定它时,前一个似乎解除了自身绑定,我猜这在 OpenGL 中是有道理的,但我不知道该怎么做才能让两者都处于活动状态?
这个想法是绘制所有共享相同模型的静态对象,而不需要每帧上传任何数据。这完全是错误的方法吗?