Unity3D 实用技巧 - WebGL初识(一)

WebGL技术允许在浏览器中实现3D画面渲染,无需额外插件,适用于创建复杂3D网页和游戏。本文介绍WebGL的工作原理,Unity WebGL的局限性,包括多线程、调试、网络、图形API等方面的限制。同时,提供了使用Unity编辑器构建WebGL项目的步骤,如设置纹理压缩、减小文件大小、禁用异常和剥离引擎代码等。
WebGL 是一项在网页浏览器呈现3D画面的技术。在百度百科上书面的解释,WebGL(全写Web Graphics Library)是一种3D绘图协议,这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。显然,WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏等等。
其实Unity WebGL内容在当前大部分桌面主流浏览器都支持,然而不同的浏览器,提供的支持程度仍有所差别。移动设备并不被Unity WebGL支持。 根据官方文档的解释,它实际存在一定的局限性。 1、多线程不被支持,因为JavaScript没有线程支持技术。这对Unity使用多线程来提升执行速度,以及脚本代码和管理dll,都产生了影响。实际上,所有在System.Threading命名空间中的都不被支持。 2、WebGL工程无法在MonoDevelop或Visal Studio中进行调试。详细请看“Debugging and trouble shooting WebGL builds”。 3、浏览器不允许联网进行IP套接字的直接存取,出于安全方面得考虑。详细请看“WebGL Networking” 4、WebGl图形API等同于OpenGL ES 2.0,有一些限制,详细请看:“ WebGL Graphics”。 5、WebGL工程使用一个自定义、基于Web Audio API的后端,用于音效。这仅支持基本的音频功能。详细请看“Using Audio in WebGL”。 6、WebGL是一个预编译平台,所以它不允许使用System.Reflection.Emit的代码动态生成。这在所有其它IL2CPP平台,iOS,以及大部分控制台都一样。
下面我们简单通过U3D引擎编辑器构建一个WebGL项目。 1、确认当前的平台属于WebGL,File->Build Settings操作。 2、当我们发布时,需要当向WebGL平台发布时,保证工程的大小尽可能低,让用户在内容开始前,只经历可忍受的下载时长。所以在设置中对在纹理导入器中所有压缩的纹理,指定Crunch纹理压缩格式。不要部署开发工程;这些未被压缩,或不是最小化,所以有很大的文件尺寸。 到播放器设置中(菜单:Edit->Project Settings ->Player),打开Publishing Settings并设置Enable Exceptions为None,如果你不需要在工程中抛出异常。 到播放器设置中(菜单:Edit->Project Settings ->Player),打开Other Settings 并且启用Strip Engine Code来保证产生高效的工程。 当使用第三方dlls时要小心,因为它们可能包含大量的依赖,并且因此明显增大了生成代码的大小。
3、最后直接导出工程项目使用即可。
最后,小编这边与大家分享一下基础的链接资源。 1、20个不可思议的WebGL示例和演示 https://www.cnblogs.com/lhb25/p/20-webgl-demo-and-examples.html 2、W3Cschool 学习的教程 https://www.w3cschool.cn/webgl/ 3、Unity发布WebGl注意事项 https://www.cnblogs.com/huwenya/p/9547224.html 4、Web的3D绘图标准 https://www.oschina.net/p/webgl?hmsr=aladdin1e1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值