前端技术栈是不是都玩过,那WebGL呢?

Posted js攻城师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端技术栈是不是都玩过,那WebGL呢?相关的知识,希望对你有一定的参考价值。

春节期间没有打扰大家,给大家拜个晚年。


经常玩前端代码的朋友对前端技术栈肯定都有所涉猎,例如与html5相关的一些新特性:localStorage、文件API、WebSocket、富媒体、canvas等。那么,WebGL您熟悉吗?

从市场价值来看,目前大部分的浏览器都支持WebGL,受众群体很广。近几年发展很迅猛,整个技术生态构建的越来越完善。

前端技术栈是不是都玩过,那WebGL呢?


早期的WebGL是由标准组织科纳斯组织(Khronos Group)发起并维护的,这个组织还运作着OpenGL、COLLADA及一些其它标准化规范。

WebGL有几大核心优势:

  • 免费授权使用,高性价比。

  • 可以做跨平台API,把javascript作为唯一的入口语言,是一套编程API,与2D绘图类似,也是使用Canvas元素。

  • 基于OpenGL ES 2.0,OpenGL ES是3D渲染标准OpenGL的精简版。我们的移动设备商,大部分使用OpenGL ES进行3D渲染,Web GL继承了它的优良价值(性能强劲、跨平台、协调一致等)。


听了这么多好处,那WebGL究竟能做出什么呢?看看下图,一个动态的水池,是不是很酷?

前端技术栈是不是都玩过,那WebGL呢?


2D的图形世界是建立在笛卡尔儿坐标系中绘制的,写过这方面项目的都知道x坐标与y坐标。为了传递空间感知,WebGL的绘制是建立在3D坐标系中,相对于2D又新增加了一个z轴,如下图:

前端技术栈是不是都玩过,那WebGL呢?


x轴是水平由左到右,y轴是垂直由下到上,z轴是由屏幕里面指向外面。熟悉2D坐标系的朋友对于理解3D应该不是很难。

除了3D坐标系之外,WebGL是如何绘制图形的呢?我们常用的方法是用网格(Mesh)。网格是由一系列的多边形构成的物质,通过多个顶点(x,y,z)定义多边形在3D坐标系空间中的位置。3D网格另一个别名叫模型(model),示例图如下:

前端技术栈是不是都玩过,那WebGL呢?

有了网格之后,除了顶点坐标外,还需要更多的网格的属性,才能够更好的描述物质。例如物质的颜色、反光程度、光泽度等。其中,网格表面可以用位图来定义,也就是我们通常所说的纹理映射(texture map)或叫做纹理。纹理可以描述一个物质的外观,不同的纹理组合可以构建更加酷炫的效果。另外,网格的表面特性,例如一个物体的透明度、颜色和反光度等效果一般称为材质(material),它通常依赖于光源的照射呈现外观。


下一篇文章将介绍更多关于WebGL的内容(着色器、相机、透视、投影等),敬请期待···

ps:理想如果不向现实做一点点屈服,那么理想也将归于尘土。


JS攻城师

你若有前端干货,欢迎前来投稿,一起执笔分享思考。




代码也是一种思考艺术

评论功能现已开启,灰常接受一切形式的吐槽和赞美☺



以上是关于前端技术栈是不是都玩过,那WebGL呢?的主要内容,如果未能解决你的问题,请参考以下文章

大前端的完整技术栈包括哪些?

2022前端技术栈

Web 前端的技术栈是怎样的

顺丰科技的web前端工程师使用的技术栈是怎样的?

前端技术栈都有哪些

前端前端及其技术栈