打开本地STL文件并创建webgl使用的geometry

需求

  1. 打开本地STL文件
  2. 一个独立基于webgl的viewer,会被别的网站重用
  3. 将打开文件的数据传输给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秒。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。