翻译丨WEBGL: WEBASSEMBLY及功能一览

Posted 游戏蛮牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了翻译丨WEBGL: WEBASSEMBLY及功能一览相关的知识,希望对你有一定的参考价值。

在反复折腾asm.js无果后,WebAssembly大救星横空出世~~~

6月17日,来自 Google, MicrosoftMozilla的工程师们(Chrome,Edge和Firefox的作者)宣布了他们正在进行的一项跨浏览器技术叫做WebAssembly。这个消息非常令人兴奋,因为这将大大改善unity WebGL的用户体验。


尽管它在技术上被定义为全新的、独立的标准,但从我们的角度来看,WebAssembly主要就是javascript子集asm.js的字节码格式(asm.js用来将Unity代码部署到WebGL平台上)。相比目前使用的基于文本表示的方式,字节码格式显著减少了编译为asm.js的代码数量。这就使得代码下载速度更快,更重要的是,能够更快地解析和编译代码且占用内存更少。这将改善编译的大Javascript代码库的启动时间,而且减少了内存需求——这两者都是针对WebGL平台的开发者目前面临的一些常见问题。


我们计划一旦该功能发布到浏览器中,就将Unity WebGL切换为输出WebAssembly字节码。浏览器并非原生支持该功能,字节码可以通过Javascript被高效解释为基于文本的asm.js代码——这在大多数情况下依然会使得内容加载更快,因为下载速度改善了。


我们用WebAssembly格式原型做了个实验来构建AngryBotsdemo,发现生成的JavaScript代码大小从19.0 MB的asm.js代码(gzip格式压缩后为4.1MB)降到了6.3MB的WebAssembly代码(gzip格式压缩后为3.0MB)。这意味着浏览器需要处理的数据减少了3倍,而且下载的压缩包尺寸减少了1.4倍。根据项目不同实际结果可能会有差别,但我们希望将所有相关的改善都分享给关心Unity部署到WebGL平台的任何人。


想了解关于WebAssembly的更多信息,请查阅FAQ。


根据这一公告,我们会在后续更新关于WebGL的目前状态,以及未来一年我们期待发生的生态变化——还有我们计划要做的事情,包括进一步改善生成代码大小,SIMD.js,Shared Array Buffers(让JavaScript支持多线程)以及WebGL 2.0等。所以,我想邀请大家一起查阅并讨论 WebGL Roadmap,里边包含更多信息。


如果你会去下周在阿姆斯特丹举行的Unite 欧洲现场,请在周三来听我关于WebGL的主题演讲,或者来手动实验室找我问问题。



原文链接:http://blogs.unity3d.com/2015/06/18/webgl-webassembly-and-feature-roadmap/



以上是关于翻译丨WEBGL: WEBASSEMBLY及功能一览的主要内容,如果未能解决你的问题,请参考以下文章

运行基于 webassembly 的 WebGL 程序的 CPU 使用率高

BIM丨每日一学基于WebGL BIM轻量化引擎的二次开发

WebGL-实例化绘制

程序丨如何把WebGL显存占用减少84.2%?

3D绘图小帮手WebGL入门与进阶(上)——WebGL的背景及基本功能

实践解析丨如何通过 WebAssembly 在 Web 进行实时视频人像分割