内存占用与闪屏
-
最近用orillusion实现了下3dtiles的加载逻辑(其实就是照搬cesium的),调试过程碰到挺多问题的,最突出的就是内存占用与闪屏。
关于内存部分,看了下源码发现有两个地方是比较占用内存的,一个是http请求缓存,一个是网格数据缓存。这些缓存措施对于小场景来说,不用因为lod的问题反复加载(是不是小场景就没要整lod了),体验不错,但对于大场景来说这是致命的,而且在执行Object3D.destroy后,数据并没有释放,如此内存不断堆叠,最后浏览器崩溃。
闪屏经常会出现GPU负载较高的情况下,这个具体的原因未知,但挺影响体验的。
其他的问题就是模型展示效果没有B站demo上那么爆炸,可能模型本身质量也不行吧。
在ue横行霸道的今天,web3d的发展,依然道阻且长啊。 -
@bestsam 我虽然没用orillusion 引擎,但引擎中也使用了webgpu, 跟 webgl 比, pipeline 和 bindgroup 资源管理有点闹心,尤其是bindgroup, 也就是vulkan 或dx中的描述符, 一旦涉及到场景中有动态更新的对象,这种东西在设计类软件中存在较多, 比如过程话的缩放对象(坐标轴、标注、、、)在屏幕空间中保持大下,会不断的创建描述符,但 webgpu 并没有提供手动回收的内存接口,导致内存占用越来越高,靠javascript gc 机制是不及时的,最后out of memory 就白屏了。管理好内存资源确实是挑战。