gpt4 book ai didi

Webgl:销毁或重用缓冲区/纹理?

转载 作者:行者123 更新时间:2023-12-04 15:51:13 28 4
gpt4 key购买 nike

我是 WebGL 的新手。 :)我知道顶点数据和纹理不应该经常更新,但是当它们确实发生变化时,首选哪个:- 通过调用 gl.deleteBuffer 销毁先前的缓冲区 (static_draw) 并创建一个新缓冲区。- 重复使用相同的(Dynamic_Draw 开始)

(不,我没有使用任何库,只是直接使用 webgl)

相同的规则是否适用于纹理?谢谢

有趣的是我找不到现有的讨论..或者可能只是错过了它们。

最佳答案

让我们先看看什么时候我们想删除一个资源:

由于 OpenGL 是一种 C 风格的 API,因此假定用户的任务是管理内存,其中一部分还包括管理 GPU 内存。由于封装和其他设计原则,人们并不总是能够共享和重用资源,因此 delete* 函数的存在是为了释放分配的资源。在 javascript 中,垃圾收集器确保超出范围的 WebGL 资源被标记为删除,就像调用 delete* 一样 ¹导致 delete* 函数在 WebGL 上下文中变得相当多余。

清除这些后,您总是希望尽可能更新您的资源,因为您还必须重做您已经对它们完成的所有设置,例如为纹理设置顶点属性指针或过滤和环绕模式。

关于Webgl:销毁或重用缓冲区/纹理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53823987/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com