13840251110 在线客服 人才招聘 返回顶部
企业动态 技术分享 行业动态

为什么要学习webgl

2020-03-10分享
webgl案例
WebGL
使您无需使用插件即可呈现交互式3D图形。它可以与任何支持OpenGL的平台一起使用,并且它现在非常流行,以至于您无需费神就可以找到一些很棒的示例。从逼真的3D人头到刺客信条(Assassins Creed)之类的游戏版本,WebGL 迅速出现。为了使它更好,所有主要的浏览器都支持WebGL,包括版本11的Internet Explorer,它可以在包括版本8的iOS在内的各种移动平台上运行。
鉴于我们已经有了许多图形显示技术的选择,包括CSS,Canvas,SVG和基于插件的选择(例如Silverlight和Flash),您可能会问自己WebGL如何适合以及是否需要学习它。因此,让我们快速看一下为什么要这么做。

WebGL的优势

WebGL具有三个明显的优势:

1.    任务。它可以执行其他技术无法完成的任务,或者更准确地说,是很难完成的任务(祝您好运,可以在SVG中产生复杂的照明和反射材质效果。

2.    性能。WebGL速度惊人,并充分利用了硬件加速,使其适合于游戏或复杂的可视化。尽管其他选项可以从硬件加速中受益,但是WebGL的编写考虑了性能,在许多情况下应比其他选项表现更好。

3.    着色器。WebGL应用程序可以利用称为“着色器”的微型程序来产生复杂的视觉效果。简单的着色器可能会产生棕褐色的着色效果,而更复杂的实现则可能会模拟水或火焰。有关更多信息,请查看
Shadertoy。

较老的开发人员可能会注意到,以前有很多尝试将3D放入浏览器(例如VRML),但后来消失了。以下是我认为WebGL可以保留的一些原因:

·       它基于OpenGL,Op​​enGL是用于开发3D应用程序的久经考验的框架。

·       随着浏览器性能的提高,连接速度的提高以及JavaScript的复兴,WebGL的发布恰逢其时,并且可以说是可能的。

·       DOM集成;WebGL显示在画布元素中,并且可以与其他Web技术结合使用。

·       它具有在许多不同平台和浏览器上运行应用程序的能力。

·       这是一个开放的规范;它不受单个供应商控制。

·       它进入3D编程的门槛低。
webgl开发工具
如上所述,WebGL是OpenGL上的JavaScript抽象,它利用Canvas元素显示内容。它基于OpenGL ES 2的OpenGL子集,该子集面向移动设备(ES表示嵌入式系统)。WebGL来自Mozilla的Vladimir Vukicevic发起的实验。该规范由非营利性Khronos组管理,包含Apple,Google,Mozilla,Opera以及许多较小的组织和个人的贡献。

已经出现的WebGL的实例:

·       数据可视化。在3D空间中查看时,某些类型的数据更有用,其中包括诸如医学MRI扫描或工程勘测数据之类的东西。

·       游戏。这可能是最明显的。游戏开发框架Unity3d将在将来提供向WebGL导出的功能。

·       交互式页面组件。这使用户可以从各个角度全方位的浏览您的产品。

WebGL还可以给任何开发人员带来一个有意思的挑战,它使您可以通过视觉展示来自己的成就感。

但是,它用途广泛吗?

是的,没有。虽然WebGL为3D图形创造奇迹,但有时诸如Canvas和SVG之类的解决方案将是更好的选择。这包括:

·       简单的2D游戏和应用程序。尽管您当然可以使用WebGL开发2D应用程序,但是Canvas可能会是一个更好的选择,因为它具有更多的支持和许多2D聚焦的库。

·       搜索。当前,搜索引擎无法理解WebGL内容,因此SVG可能是一个更好的选择。不过,您可以利用混合方法从搜索引擎索引中受益。

·       DOM集成。WebGL可以与页面的其余部分集成,但是无法像SVG一样将事件处理程序附加到页面元素上(PhysiJs库可以帮助实现此目的)。

·       较旧的浏览器。当您的用户群使用较旧的浏览器/低规格计算机时,WebGL并不理想。

·       高度安全的环境。WebGL可能会带来安全问题。使用交叉原点图像作为纹理已有一些概念证明,但此后已得到修复。WebGL通过许多抽象运行,但是在高安全性环境中,通常禁用WebGL。
如何编写程序

Webgl可以自学,但是原拓动画建议您首先了解幕后发生的事情。WebGL与您可能曾经使用过的工具有很大的不同,您最终可能会花很多时间学习基础知识,但是却收效甚微。

首先,我建议查看其中一个库。各种WebGL库使执行对象操纵,数学/几何计算,模型加载,碰撞检测,功能以及与鼠标和键盘集成等操作更加容易。

当前,两个主要的WebGL库是three.js和babylon.js。3D编程中最困难的一点是学习概念和数学,而不是API本身。因此,如果您已经掌握了一个框架,那么迁移到另一个框架就不会太棘手。

WebGL可以让您执行其他技术根本无法完成的任务。这使其适用于跨平台的复杂可视化和游戏。
 
> 在线咨询
Copyright © 2020-2025 原拓数字科技(沈阳)有限公司 工信部备案号:辽ICP备18006475号-2  技术支持:原拓动画