我读过 VBO(顶点缓冲区对象)本质上保留了一个引用计数,因此如果 VBO 的名称被赋予glDeleteBuffers()
,如果一个活的 VAO(顶点数组对象)仍然引用它,它并没有真正被解雇。这种行为类似于“智能指针”,较新的语言越来越多地采用。但是在多大程度上这是正确的并且可以围绕它进行设计,如果它也适用于 IBO(索引缓冲区对象),我还没有找到任何信息。
如果 VBO 由引用它的 VAO 保持活动状态,并且我不打算在 VAO 死亡后更新或使用它,我认为最好的做法是销毁我对它的引用。这样做合适吗?我可以对 IBO 做同样的事情吗?