WebGL第一课:核心目标

785 阅读3分钟
本文标题:WebGL 第一课:核心目标

我们要开始学习 WebGL 技术了, 当我们做好准备之前,我们首先问一个问题:

WebGL 能帮我们做的到底是什么?

  • 有读者说了,我要做游戏
  • 又来一位,我要做动画
  • 我要实现特效
  • 等等等等等等 那么我们不妨再换一个问题:

上面说的这些目标都是在做什么?

答:在电脑或者手机显示屏的某一块地方,决定哪个像素点什么时间什么颜色。无他尔。
确实是这样,所有上面说的那些大目标,都是在屏幕上决定像素点的颜色而已。说实在的,这与绘画者拿一只笔在纸上画画,没什么区别。绘画者可不就是在决定纸上的什么位置是什么颜色吗,就这么简单。

"这还要你说吗,说点有用的吧!" --- 来自某读者的嘲讽

当然,我要说点有用的了,我们先把什么时间这个关键点放到后面。那么回答就变成了: 决定哪个像素点是什么颜色

  • 哪个像素点:我们用数学来表示:可不就是 (x y) 坐标么。
  • 什么颜色: 我们还用数学来表示:可不就是 (r g b) 颜色么。 问题显而易见了: 决定屏幕的(x y)处的像素是什么(r g b)颜色

好的, WebGL 能提供给我们最终的用途就是上面这个表述。所有的复杂的问题,都是以这个目标来扩展开来的。
当学习过程中实在觉得绕不过去的时候,请谨记: 我tm到底要在哪个(x y)像素点,画tm什么(r g b) 颜色




本文正文结束,以下是答疑部分
  • 小丫丫问:WebGL和画画相似在哪?
答:电脑屏幕就是纸,WebGL 就是笔。然后这么理解就行了。
  • 小能能问:我要画 3D 的啊,你凭什么没有 z 坐标,只有(x y)???
答:你左看右看上看下看,请问你的电脑或者手机屏幕是不是一个类似于纸的这么一个薄片,你能做的,就是在这个薄片上画画,无论如何,你也不可能在电脑屏幕上画出一个 3D 的物体的,就算看上去像 3D 的物体,那也只是一个投影而已。
对,这就是我强调的,最终我们关心的结果,还真就是 2D 的,至于 3D ,那是一个业务性的东西而已。 WebGL 不关心这些业务性的东西。 还拿画画做比方,我可以拿纸来写字,也可以用来设计图纸,也可以用来写作业,我要干什么,跟纸和笔都没关系。笔唯一能做的,就是在纸上的某一个位置印上一个颜色而已。
再次强调:你就只要关心在什么(x y)像素,画什么(r g b)颜色。只要把这件事,搞定了,你的任务就完成了。
  • 小瓜瓜问:我当然知道我要画什么了,关键是不会画:我要在屏幕中间画一个半径1的圆,请问我如何用 WebGL 来做这件事?
答:将你的需求,转换成数学描述,然后利用 WebGL 的api进行操作即可。
  • 小瓜瓜:凸(艹皿艹 )呱呱呱???
答:我已经知道你要表达什么了,但第一课不会告诉你这么好玩的东西的,请看后面的课程吧!!!!!!