我正在使用stl加载器将STL文件加载到three.js场景中。这些stl文件范围从5mb到50 5mb。
是否有一种方法可以用于在加载模型时逐步加载/流/增加细节级别(不确定正确的术语),以便用户在出现任何信息之前不会盯着空白屏幕数分钟?
如果模型是20,000个三角形,那么three.js是否有一种方法,可以先加载2,000个,然后再进行到完整的模型?
发布于 2015-07-31 09:32:29
真正的渐进式加载/网格流并不是现成的。这将是伟大的,但也是可行的。
它是在没有WebGL three.js的情况下使用POP缓冲区:http://x3dom.org/pop/ & https://github.com/thibauts/pop-buffer完成的。
其中一个演示是:http://x3dom.org/pop/happy.html
我希望有一天我们也能为three.js提供一个很好的POP缓冲区(或类似的替代方案)当然,如果有人写得更早,不要介意:)
三种方法确实包括一个简单的LOD机制,但它可以帮助呈现加载,而不是加载时间:http://threejs.org/docs/#Reference/Objects/LOD & lod.html
对于一个简单的解决方案,您可以编写低版本和高版本的模型,并编写自定义加载逻辑,首先加载低版本,然后显示它们,然后继续加载高版本等等。
我们在一个项目中做到了这一点,效果与预期一样好。唯一的缺点是,它增加了获得高版本的总时间。但低可以是非常小,所以它是好的(在我们的情况下,低聚非纹理与只有佛氏颜色,那么高的有更多的多,但本质上是相当大的纹理也)。
发布于 2018-09-19 11:28:13
目前最好的解决方案是尼克斯,它在过去几年中一直处于密集开发阶段。它有三个装载机。
发布于 2020-05-05 00:41:26
Nexus和popbuffer可能是预捕获LoD加载的正确解决方案。但是,如果您只想尝试一种简单的(只起作用的)解决方案,建议查看一下以下内容:https://github.com/amd/rest3d
在GLTF格式的基础上,逐个传输单个网格。在某种意义上,它减少了第一次渲染的等待时间。实际上,如果您重新排列网格数据,并使用流缓冲区下载数据,则可能会实现进程加载/呈现的结果。
https://stackoverflow.com/questions/31736353
复制相似问题