• 技术文章 >web前端 >H5教程

    到 2013 年底,WebGL 能发展到什么程度?

    2016-06-07 08:42:45原创573

    回复内容:

    我觉得取决于 browser vendor 和开发者的支持度。

    Web app 的优势是一个固定值(不用开发复杂的 installer 和 auto-updater 了,但是仅此而已)。所以对越复杂的 app 来说,Web 的优势就越边缘化。3D 应用的开发无疑是最复杂的。所以我可以说:3D app 的开发团队不缺这点写 installer 和 auto-updater 的人手。

    第二,Web 的优势领域是 HTML 和 OS 标准都成熟的部分。而标准不成熟的部分就惨了。在 HTML 不成熟的部分,开发者要测试每个 browser,在 OS 标准不成熟的部分,开发者要测试每个 OS。两个都不成熟的部分,开发者要测试 browser x OS 的组合。就 3D 来说,连 OpenGL 都不能说每家的 driver 实现完全一样,也不能说每个浏览器的绑定都一样。

    第三,其它领域的开发倾向使用稳定的技术。而 3D 开发倾向使用最先进的方案。所以 3D 平台要求能快速提供最先进的功能。在 native 平台上不用非标准 EXT 开发 OpenGL 的程序是很少的。最大公约数法则对 3D app 不成立。3D app 讲究的是 aggresive then fail back。

    所以争取到开发者的支持并不容易。

    浏览器方面,也说了 Microsoft 不支持。理由也很充分,shader code 的可信度如何保证?这个问题反过来又会降低用户的支持。一团糟。 正好逛到这个问题,正好是2013年底,正好最近基于http://www.hightopo.com/的HT for Web 3D引擎做的电力项目收尾,正好用到的就是WebGL技术,因此说说自己的感觉供参考:

    1、2013年应该感谢Google和MS,前者提供了Android Chrome浏览器的WebGL支持,后者终于让IE11支持了WebGL并且降低到win7也能运行。

    2、还得感谢Firefox和Opera这些厂家推动了移动终端浏览器对WebGL的支持,并且性能还都不差,早期Chrome的Android版还不支持WebGL时测试只能靠他们。

    3、感谢UCWeb浏览器提供了唯一(如果不是唯一还请高人指点)官方iPad的浏览器的WebGL支持,虽然有很多bug我们提交了问题也没人理,还好找到了workaround规避了些坑。

    4、IE11很给力,我在mac下的VirtualBox虚拟机里面IE11是唯一能跑WebGL的(其他浏览器不知道是否有开关设置可以在虚拟器可以跑的,如果有还请高人指点),但还得努力啊,一堆基础的API都不支持,例如TRIANGLE_FAN类型都不支持,例如lineWidth都不让设置,例如Shading Language都不支持return语句,还有好多坑,但还好我们都找到方法绕开了(如果你也遇到了IE11的坑可以帮我继续列举)。

    5、Nexus 7二代很给力,作为WebGL的移动测试机,很轻且性能不错,终于找到了让我满意的愿意随身带着用的Android板。

    6、打包android的WebView控件方式还很难搞,默认的WebView核与Android Chrome不一样,搞了个独立的Chrome 28的核还开启不了WebGL(要是有高人搞定了,还请指点)。

    7、上点代表性的项目抓图,一个是IE11下的,一个是Android下的,总体说我感觉2013年经过各个厂家的努力,对于大多数的企业应用应该可以说:WebGL is Ready!

    另供参考《基于HTML5的电信网管3D机房监控应用
    HT for Web 3D 手册
    HT for Web 入门手册


    HT fo Web - 3D Animation Easing http://v.youku.com/v_show/id_XNzE4NzM3NDc2.html WebGL和之前出现过的大部分web前端技术都不同,它比通常的web前端技术要更为复杂,它的原生接口非常低级(标准制定者这么做的原因是想保证WebGL在各种场合的广泛适用性),换句话说,WebGL的学习难度非常大。因为一种技术非常复杂从而得出结论说市场不需要这种技术的推理过程简直是无稽之谈,结论也相当荒谬。所以对于这种难度极大而业界大部分人又对其未来持积极态度的技术,如果要等到标准和OS以及市场环境全部成熟了再下手,那么对于我们开发者来说是非常不利的,因为那就意味着我们需要更多的时间和精力来学习它,而竞争对手则早已经在循序渐进的过程中占领了先机。

    另外,事实上,即使是当下,WebGL的底层兼容性问题也远非外界盛传的这么复杂。通常情况下,在Windows平台上我们不需要特别担心所谓的显卡驱动问题,因为Chrome和Firefox这两大主流支持WebGL的浏览器都是用ANGLE把WebGL API转换为DirectX API实现的。在非Windows平台上,OS X上使用Safari或Chrome、Firefox一切都近乎完美;在Linux上大部分的闭源驱动和Mesa classic DRI驱动都可以很好的支持WebGL。

    WebGL标准本身和现阶段各浏览器所支持的扩展都没有致命缺陷,Native GL能做的WebGL几乎都能做。我支持@邓鋆 的说法,我们不能寄希望于将《使命召唤》这种AAA级游戏大作马上就搬到Web上,但WebGL目前已经可以胜任一些休闲游戏或者从移动平台移植过来的Native 3D Game/App,因为移动平台和网络平台通常都受同样的几个因素制约,例如网络状况和性能等等。

    所以,我不知道未来会发生的事情,但我想如果你和Google、Apple、Mozilla等业界巨头一样,都非常看好这门技术,那么现在应该是一个非常好的时机来开始做必要的技术储备。 数据保密性太差,虽然three.js 已经非常强大了,但是你的模型数据瞬间就可以被竞争对手偷走,这个问题才是一个巨大的硬伤,能解决这个问题才行。现在看很难解决这个问题。 我个人认为,WebGL更多的是一种对HTML表现能力的一种补充,我期待着将来看到越来越多的演示,例如商品、房屋、城市等的3D展示,网页游戏中少部分3D效果的表现,而非生硬的把我们所熟悉的3D游戏完整搬到浏览器上。 2013年很可能Google Earth会有WebGL版的
    ---------------------------------------------------------------
    应验了,最新版的 google maps 中 3d 地球视图就是WebGL做的 转眼2016了,貌似没什么大发展,如果将WebGL应用在VR上,期待中。。。。。 WEbgl的发展空间受限。相信我,来云台网看看云台网的引擎,会让你兴奋。 转眼间2014年底了,貌似没啥大发展呢,不知道2015年底会咋样。。 UC Android在接下来的版本也会提供很好的支持。
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:
    上一篇:中国首届CSS开发者大会的演讲PPT用什么快捷的框架做的? 下一篇:HTML5 会不会使 Linux 比 Windows 更受欢迎?
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 上周朋友圈被传奇世界H5破1500流水刷屏了,求千万爆款H5游戏背后的成功秘诀?• HTML5中canvas的使用总结• 为什么html5将主宰在线视频?• 小强的HTML5移动开发之路(16)——神奇的拖放功能• HTML5引入的新数组TypedArray介绍_html5教程技巧
    1/1

    PHP中文网