打开本地STL文件并创建webgl使用的geometry
需求
- 打开本地STL文件
- 一个独立基于webgl的viewer,会被别的网站重用
- 将打开文件的数据传输给viewer,并且在文件加载的时候显示进度条
解决方案
#1可以使用传统的html5 api来打开,
#2来说,可以通过iframe来提供独立的viewer,
#3来说需要用web worker来实现。
实现细节
数据的流向是网站的main page-》iframe中viewer的main page-》web worker-》iframe的main page
刚打开的数据类型是buffer array,可以通过post message直接传给iframe viewer的main page,然后再通过post message转发给viewer 的web worker,由worker来解析,在解析过程中通过worker来发消息给viewer main page来更新progress bar
注意
在使用post message的时候,因为数据copy,在文件大的时候容易out of memory,解决方法是使用transferable的参数,避免对于传输的大数据的copy。
结果
在300mb的文件打开大概时间是6秒。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。