打开本地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秒。
打开本地STL文件并创建webgl使用的geometry的更多相关文章
- 实现HTML调用打开本地软件文件
有时候我们想要实现一个功能,就是在HTML页面点击一个链接就能调用打开本地可执行文件.就像腾讯QQ.迅雷这种. 而实现这种功能其实也很简单,就是需要我们添加修改注册表,实现自定义URL Protoco ...
- NX二次开发-UFUN打开二进制STL文件函数UF_STD_open_binary_stl_file
NX9+VS2012 #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <u ...
- 【原】使用SQLite打开本地*.db文件
1.下载安装文件:官网下载地址:http://www.sqlite.org/download.html32位安装包:http://www.sqlite.org/2016/sqlite-tools-wi ...
- 【WPF】 打开本地的文件或者文件夹
问题描述: 我做的程序中需要添加帮助文档,我将文档生成了CHM格式,在用户点击帮助按钮时候 弹出帮助文档. 实现方法: System.Diagnostics.Process.Start(AppDoma ...
- 谷歌浏览器不能打开本地HTML文件
打开浏览器右上角菜单——>更多工具——>扩展程序——>将Axure RP Extension For Chrome 0.62.crx文件拖入——>成功后,勾选相关选项 文件的下 ...
- 使用WebGL实现一个Viewer来显示STL文件
关键字:WebGL,STL,ThreeJS,Chrome,Viewer,Python3.4, HTML5,Canvas. OS:Windows 10. 本文介绍如何使用ThreeJS来实现一个WebG ...
- 如何将SolidWorks文件另存为.obj文件及如何打开.obj格式文件
原网站:http://fans.solidworks.com.cn/forum.php?mod=viewthread&tid=40238) OBJ文件是Alias Wavefront公司为它的 ...
- python解析本地HTML文件
Python使用爬虫技术时,每运行一次,本地都会访问一次主机.为避免完成程序前调试时多次访问主机增加主机负荷,我们可以在编写程序前将网页源代码存在本地,调试时访问本地文件即可.现在我来分享一下爬取资料 ...
- 第五十六篇、OC打开本地和网络上的word、ppt、excel、text等文件
iOS打开本地和网络上的word.ppt.excel.text等文件 iOS开发过程中可能需要预览一些文件,这些文件的格式可能有word.ppt.excel等文件格式.那么系统提供两个类去预览这些文件 ...
随机推荐
- Travel(HDU 5441 2015长春区域赛 带权并查集)
Travel Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Su ...
- information_schema.collations 学习
information_schema.collations 表中的每一行对应一个排序规则 1.information_schema.collations 表中学用列: 1.id :排序规则的ID 2. ...
- Qt直接使用OpenSSL里的函数
简述 OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用. 简述 下载安装 使用 更多参考 下载安装 ...
- redis的安装与配置
官网 http://redis.io/download 管理工具 http://docs.redisdesktop.com/en/latest/quick-start/ https://redisde ...
- apache+php+mysql常见集成环境安装包
http://www.thinksaas.cn/group/topic/33/ apache+php+mysql是常见php环境,在windows下也称为WAMP,对于初学者自选版本搭建总是会遇到一些 ...
- |,&,<<,>>运算符
<< 位移运算符(>>相反了) /* * 题目: 2 << 3 = 10000 = 16 * 解答: 2向左移动三位,就变成了10000 * 十进制 二进制 * 2 ...
- IOS 调用拨打电话Api
// 判断设备是否有通话功能 NSString *deviceType = [UIDevice currentDevice].model; if([deviceType isEqualToString ...
- [工作问题总结]MyEclipse 注册
------------------------------ASP.Net+Android+IO开发 .Net培训 期待与您交流!------------------------------ 1.本人 ...
- linux网络编程--跳水send和recv
要了解一个概念:所有的TCP socket在内核具有发送缓冲器和接收缓冲器.TCP除了全双工操作模式TCP滑模取决于这两个单独buffer和这个buffer填充状态. 接收缓冲器数据缓存入内核.应用进 ...
- AliCTF 2016
上上周参加了阿里的CTF,靠着最后绝杀队伍有幸拿到了国内第一名,也顺利进入了XCTF Final.把自己做的几个题简单写了下,发出来也算个总结吧. PWN-FB 经典的null byte overfl ...