说明:收录25万 73个行业的国家标准 支持批量下载
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210768970.0 (22)申请日 2022.07.01 (71)申请人 鲁班软件股份有限公司 地址 200433 上海市杨 浦区淞沪路43 3号 301室 (72)发明人 刘洪峰 高丹 颜强  (74)专利代理 机构 北京艾纬铂知识产权代理有 限公司 16101 专利代理师 高会允 (51)Int.Cl. G06F 9/448(2018.01) G06F 9/50(2006.01) G06F 8/41(2018.01) G06F 9/54(2006.01) (54)发明名称 前端wasm和worker结合加速物理引擎的方 法 (57)摘要 本发明公开了一种前端wasm和worker结合 加速物理引擎的方法及装置, 所述方法包括: 将 承载建筑领域处理功能的物理引擎编译为wasm 格式的文件, 并将所述wasm格式的文件封装为 wasm模块; Web前端主线程调用所述wasm模块; Web前端创建worker 子线程, 运行所述wasm模 块, 将运行结果返回Web前端主线程。 所述方法提升 了性能, 解决了线程阻塞的问题, 提升了运行效 率, 加快了运行速度。 权利要求书1页 说明书4页 附图2页 CN 115167950 A 2022.10.11 CN 115167950 A 1.一种前端was m和worker结合加速物理引擎的方法, 其特 征在于, 包括: 将承载建筑领域处理功能的物理引擎编译为wasm格式的文件, 并将所述wasm格式的文 件封装为 wasm模块; Web前端主线程调用所述 wasm模块; Web前端创建w orker子线程, 运行 所述wasm模块, 将运行 结果返回Web前端 主线程。 2.如权利要求1所述方法, 其特征在于, 所述物理引擎基于R ‑tree结构实现, 将建筑领 域中拟合的三角网格曲面简化为三角形, 每16个三角形的参数作为所述 R‑tree结构的一个 节点。 3.如权利要求2所述的方法, 其特征在于, 所述步骤S2, 其中: 多个子线程并行操作, 将 所述wasm模块对应的任务分配到一个或多个子线程。 4.如权利要求1 ‑3中任一项所述方法, 其特征在于, 所述主线程接收所述一个或多个 worker子线程的运行 结果, 结合时间序列或逻辑关系调用所述 运行结果。 5.如权利要求1所述方法, 其特 征在于, 实现所述物理引擎的程序代码为C+ +。 6.一种前端was m和worker结合加速物理引擎的装置, 其特 征在于, 包括: 封装模块: 配置为将承载建筑领域处理功能的物理引擎编译为wasm格式的文件, 并将 所述wasm格式的文件封装为 wasm模块; 前端主线程模块: 配置为 Web前端主线程调用所述 wasm模块; worker子线程模块: 配置为Web前端创 建worker子线程, 运行所述wasm模块, 将运行结 果返回Web前端 主线程。 7.一种计算机可读存储介质, 所述存储介质中存储有多条指令; 所述多条指令, 用于由 处理器加载并执 行如权利要求1 ‑5中任一项所述方法。 8.一种电子设备, 其特 征在于, 所述电子设备, 包括: 处理器, 用于执 行多条指令; 存储器, 用于存 储多条指令; 其中, 所述多条指令, 用于由所述存储器存储, 并由所述处理器加载并执行如权利要求 1‑5中任一项所述方法。权 利 要 求 书 1/1 页 2 CN 115167950 A 2前端wasm和worker结 合加速物理引擎的方 法 技术领域 [0001]本发明涉及软件研发领域, 具体涉及一种前端wasm和worker 结合加速物理引擎的 方法。 背景技术 [0002]在软件研 发过程中, 前端物理引擎运行速度 主要受到了前端JavaScript语言运行 机制的影响, 只能使用单一的主线程处理物理引擎支持的一些运算, 同时本身的执行速度 也有一定瓶颈。 以建筑行业为例, 目前建筑行业常常使用到的, 比如在浏览器上实现建筑物 的捕捉点功能, 漫游 功能等, 这些性能都十分依赖物理引擎的加载处 理速度。 [0003]但现有技术主要是通过JavaScript等前端开发语言实现物理引擎的开发, JavaScript只能使用单一线程处理物理引擎支持的一些运算, 所以会 经常出现线程阻塞的 问题, 十分耗时, 其运行速度以及性能具有一定的瓶颈。 J avaScript物理引擎运行花费的时 间主要包括: 解析、 编译、 优化、 重新优化、 执行、 垃圾回收。 如图1所示, 解析时, JavaScript 源码一旦被下载到浏览器, 源将 被解析为抽象语法树。 编译优化的过程中, J avaScript是在 执行代码期间编译的, 因为 JavaScript是动态类型语 言, 相同的代码在 多次执行中, 可能因 为代码里含有不同的类型数据而被重新编译, 这十 分消耗时间。 垃圾回收阶段, J avaScript 有自带的垃圾回收器, 不能控制垃圾回收时机, 所以它 可能在系统处理关键且重要的步骤 时运行, 从而影响性能。 即基于前端开发语 言JavaScript实现的物理引擎存在运行速度慢、 性能较低的问题。 并且, J avaScript自身在web应用上解析和运行性能一般, 对于复杂运算, 比如本发明提到的物理引擎所处理的运算, web端处理速度较慢, 甚至出现卡顿。 此外, JavaScript只能使用单一线程处理物理引擎支持的一些运算, 所以会 经常出现线程阻塞的 问题, 十分耗时。 发明内容 [0004]有鉴于此, 本发明提供了一种前端wasm和worker结合加速物理引擎的方法, 能够 解决目前前端通过JavaScript等前端开发语言实现物理引擎运行速度以及性能具有一定 的瓶颈, 运行速度慢, 造成线程阻塞的问题。 [0005]为了解决上述 技术问题, 本发明是这样实现的。 [0006]一种前端was m和worker结合加速物理引擎的方法, 包括: [0007]将承载建筑领域 处理功能的物理引擎编译为wasm格式的文件, 并将所述wasm格式 的文件封装为 wasm模块; [0008]Web前端主线程调用所述 wasm模块; [0009]Web前端创建w orker子线程, 运行 所述wasm模块, 将运行 结果返回Web前端 主线程。 [0010]优选地, 所述物理引擎基于R ‑tree结构实现, 将建筑领域中拟合 的三角网格曲面 简化为三角形, 每16个三角形的参数作为所述R ‑tree结构的一个节点。 [0011]优选地, 所述步骤S2, 其中: 多个子线程并行操作, 将所述wasm模块对应的任务分说 明 书 1/4 页 3 CN 115167950 A 3

.PDF文档 专利 前端wasm和worker结合加速物理引擎的方法

文档预览
中文文档 8 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共8页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 前端wasm和worker结合加速物理引擎的方法 第 1 页 专利 前端wasm和worker结合加速物理引擎的方法 第 2 页 专利 前端wasm和worker结合加速物理引擎的方法 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 13:30:43上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。