我是WebGL的新手。:)我知道顶点数据和纹理在发生变化时不应该经常更新,但是最好更改:-通过调用gl.deleteBuffer销毁先前的缓冲区(static_draw)并创建一个新的。-重用同一个(Dynamic_Draw开始)
(不,我没有使用任何库,只是直接使用webgl)
相同的规则适用于纹理吗?谢谢
足够有趣的是,我找不到现有的讨论,或者只是错过了他们。
首先让我们看一下何时要删除资源:
由于OpenGL是一种C-Style API,因此假设用户要负责管理内存,其中一部分还用于管理GPU内存。由于封装和其他设计原理,人们并不总是能够共享和重用资源,因此delete*
存在一些功能来释放分配的资源。JavaScript中的垃圾收集器可以确保的是走的范围之WebGL的资源被标记为删除就像调用delete*
它¹导致delete*
功能成为WebGL的背景下,而多余的。
清除所有内容后,您总是希望尽可能地更新资源,因为您还必须重做已经对它们进行的所有设置,例如,设置顶点属性指针或纹理的过滤和包装模式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句