快速入门 绘制一个点 着色器代码放在 script 标签中 绘制一个矩形 attribute 关键字 声明顶点相关数据的时候需要用到 attribute 关键字,目的是为了 javascript 可以调用相关的 WebGL API 把顶点相关数据从 javascript 传递给顶点着色器 attribute 声明的变量。 drawArrays 整体执行顺序 硬件相关 着色器语言编写的程序称为着色器程序(shader program),在 GPU 顶点着色器单元上执行的是顶点着色器程序,在 GPU… »
WebGL 二维平移 平移就是普通意义的“移动”物体。这里有个例子基于前一个例子。首先我们来定义一些变量存储矩形的平移,宽,高和颜色。 然后定义一个方法重绘所有东西,我们可以在更新变换之后调用这个方法。 在下方的例子中,我添加了一对滑块,当它们值改变时会更新 和 并且调用 drawScene 方法。拖动滑块来平移矩形。 到目前为止还不错!但是想象一下如果对一个更复杂的图形做类似操作怎么办。 假设我们想绘制一个由六个三角形组成的 ‘F… »
WebGL 三维纹理 在 WebGL 中如何使用纹理?你可能会从二维图像处理的文章中得到启发,如果我们讲的再深入一点可能更好理解。 首先需要调整着色器以便使用纹理,这里是顶点着色器的修改部分,我们需要传递纹理坐标,在这个例子中直接将它们传到片断着色器中。 在片断着色器中声明一个 sampler2D 类型的全局变量,可以让我们引用一个纹理,然后使用从顶点着色器传入的纹理坐标调用 texture2D 方法,在纹理上找到对应的颜色。 我们需要设置纹理坐标 F 如你所见,我们将图像映射到 F… »
WebGL 三维几何加工 有人问我怎么在 WebGL 中制作一个保龄球瓶,聪明的回答是 。使用它创建一个保龄球瓶,导出,读取点坐标(OBJ… »
WebGL 三维方向光源 实施光照的方式有很多种,最简单的可能就是方向光源了。 方向光是指光照均匀地来自某一个方向,晴朗天气下的太阳经常被当作方向光源,它距离太远所以光线被看作是平行的照到地面上。 计算方向光非常简单,将方向光的方向和面的朝向点乘就可以得到两个方向的余弦值。 这有个例子 随意拖动其中的点,如果两点方向刚好相反,点乘结果则为 -1,如果方向相同结果为 1。 这有什么用呢?如果将三维物体的朝向和光的方向点乘,结果为 1 则物体朝向和光照方向相同,为 -… »