女王控的博客

可视化

9 篇文章

WebGL 零基础入门学习

快速入门 绘制一个点 着色器代码放在 script 标签中 绘制一个矩形 attribute 关键字 声明顶点相关数据的时候需要用到 attribute 关键字,目的是为了 js 可以调用相关的 WebGL API 把顶点相关数据从 js 传递给顶点着色器 attribute 声明的变量。 drawArrays 整体执行顺序 硬件相关 着色器语言编写的程序称为着色器程序(shader program),在 GPU 顶点着色器单元上执行的是顶点着色器程序,在 GPU… »

WebGL 理论基础——二维

WebGL 二维平移 平移就是普通意义的“移动”物体。这里有个例子基于前一个例子。首先我们来定义一些变量存储矩形的平移,宽,高和颜色。 然后定义一个方法重绘所有东西,我们可以在更新变换之后调用这个方法。 在下方的例子中,我添加了一对滑块,当它们值改变时会更新 和 并且调用 drawScene 方法。拖动滑块来平移矩形。 到目前为止还不错!但是想象一下如果对一个更复杂的图形做类似操作怎么办。 假设我们想绘制一个由六个三角形组成的 ‘F… »

WebGL 理论基础——纹理

WebGL 三维纹理 在 WebGL 中如何使用纹理?你可能会从二维图像处理的文章中得到启发,如果我们讲的再深入一点可能更好理解。 首先需要调整着色器以便使用纹理,这里是顶点着色器的修改部分,我们需要传递纹理坐标,在这个例子中直接将它们传到片断着色器中。 在片断着色器中声明一个 sampler2D 类型的全局变量,可以让我们引用一个纹理,然后使用从顶点着色器传入的纹理坐标调用 texture2D 方法,在纹理上找到对应的颜色。 我们需要设置纹理坐标 F 如你所见,我们将图像映射到 F… »

WebGL 理论基础——光照

WebGL 三维方向光源 实施光照的方式有很多种,最简单的可能就是方向光源了。 方向光是指光照均匀地来自某一个方向,晴朗天气下的太阳经常被当作方向光源,它距离太远所以光线被看作是平行的照到地面上。 计算方向光非常简单,将方向光的方向和面的朝向点乘就可以得到两个方向的余弦值。 这有个例子 随意拖动其中的点,如果两点方向刚好相反,点乘结果则为 -1,如果方向相同结果为 1。 这有什么用呢?如果将三维物体的朝向和光的方向点乘,结果为 1 则物体朝向和光照方向相同,为 -… »

0%