- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我读到 VBO(顶点缓冲区对象)本质上保留一个引用计数,因此如果将 VBO 的名称指定给 glDeleteBuffers()
,如果一个活的VAO(顶点数组对象)仍然引用它。这种行为类似于“智能指针”,越来越多的新语言被采用。但是这在多大程度上是正确的并且可以围绕它进行设计,以及它是否也适用于 IBO(索引缓冲区对象),我还没有找到任何相关信息。
如果 VBO 由引用它的 VAO 保持事件状态,并且我不打算更新它或在 VAO 死亡后使用它,我认为最好的做法是销毁我对它的引用。这样做合适吗?我可以对 IBO 做同样的事情吗?
最佳答案
对象可以附加到其他对象。只要一个对象附加到另一个对象,附加的对象实际上不会通过调用 glDelete*
销毁。只有在它未附加或它所附加的对象也被销毁后,它才会被销毁。
这真的不是什么值得担心的事情。如果您 glDelete*
一个对象,您不应该再次直接使用该名称。
关于c++ - 绑定(bind)到 VAO 后,我可以 glDeleteBuffer 一个 VBO 和 IBO 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69088830/
您好,我正在使用 VBO 加载图像纹理,然后用 C++ 绘制它。 VBO id 生成、绑定(bind)和绘制发生在这里 void ViewManager::render(){ glClear(GL_C
目前,我在 Java 端设置了一个在 onDestroy() 期间调用的 native 函数。我在我为其分配内存的任何 native 端指针上调用 free()。如果我还在这个函数中调用 glDele
正如 Qt 用户所知,使用任何 OpenGL 扩展都非常麻烦。我让它工作的方法是像这样扩展 QGLFunctions 类: class Object3D : protected QGLFunctio
基本上,在我的代码中,我挂接了 glDeleteTextures 和 glBufferData 函数。我存储了一个纹理列表和一个缓冲区列表。缓冲区列表包含校验和和指向缓冲区的指针。下面的代码在数据到达
我在我的 iOS/Android 游戏中遇到了一些性能问题,其中有几个 VBO 必须每隔一段时间更新一次。在对我的游戏进行分析后发现,每次 VBO 更新 glDeleteBuffers() 最多需要
我发现了一些我不理解的 del 行为,希望您能给我一些见解。我正在尝试使用 PyOpenGL 和 glfw 实现 OpenGL 的 hello_triangle。关闭 OpenGL 窗口后,我的程序应
是否需要在删除缓冲区对象之前取消绑定(bind)它?如果我在 VAO 中绑定(bind)它并删除它而不解除绑定(bind)(绑定(bind)到 0),会发生什么?引用还会存在吗? public voi
在 OpenGL ES 2 中使用 VBO 时,我遇到了 glDeleteBuffers , glDeleteShader , 和 glDeleteProgram .我在网上环顾四周,但找不到关于何时
我读到 VBO(顶点缓冲区对象)本质上保留一个引用计数,因此如果将 VBO 的名称指定给 glDeleteBuffers(),如果一个活的VAO(顶点数组对象)仍然引用它。这种行为类似于“智能指针”,
我是一名优秀的程序员,十分优秀!