WebGL简易教程——目录
1. 绪论
最近研究WebGL,看了《WebGL编程指南》这本书,结合自己的专业知识写的一系列教程。之前在看OpenGL/WebGL的时候总是感觉OpenGL/WebGL看的时候懂,实际用起来却挺难,感觉中间总是隔着很多东西。现在一路边学边写,才明白这中间缺少的其实就是总结,是实践;把这个过程写出来,既是帮助他人,也是帮助自己。
现在这一系列文章也写了不少了,就写个目录汇总一下,方便查阅,以后增添了新的文章也会随之更新。这一系列教程由浅入深,知识也是循序渐进的,前后关联。实例也逐渐复杂,最终完成一个地形渲染的实例:
2. 目录
1.WebGL简易教程(一):第一个简单示例
概述了这篇教程的目的,编写了WebGL的第一个示例。
2.WebGL简易教程(二):向着色器传输数据
改进了绘制一个点的实例,讲述了WebGL中向着色器(shader)传输数据的问题。
3.WebGL简易教程(三):绘制一个三角形(缓冲区对象)
通过一个绘制三角形的具体实例,详解了WebGL中缓冲区对象(buffer object)的使用。
4.WebGL简易教程(四):颜色
通过绘制彩色三角形的示例,介绍了varying变量,顶点着色器与片元着色器之间数据传输的过程:顶点装配与光栅化。
5.WebGL简易教程(五):图形变换(模型、视图、投影变换)
详细讲解了OpenGL\WebGL关于绘制场景的图形变换过程,并推导了其图形变换矩阵。主要包括模型变换、视图变换以及投影变换。
6.WebGL简易教程(六):第一个三维示例(使用模型视图投影变换)
通过使用模型视图投影变换,完成第一个真正三维场景的示例:显示一组由远及近的三角形。
7.WebGL简易教程(七):绘制一个矩形体
通过一个绘制矩形包围盒的实例,进一步理解了模型视图投影变换。
8.WebGL简易教程(八):三维场景交互
基于之前教程的知识,实现了一个三维场景的浏览实例:通过鼠标实现场景的旋转和缩放。
9.WebGL简易教程(九):综合实例:地形的绘制
综合WebGL的知识,实现了绘制一张地形图的实例。
10.WebGL简易教程(十):光照
讲述了WebGL光照生成的原理,并作出了实际案例。
11.WebGL简易教程(十一):纹理
WebGL中使用纹理的实例:给地形贴上一张真实的纹理。
12.WebGL简易教程(十二):包围球与投影
通过包围球来设置模型视图投影变换,显示合适的渲染位置。
13.WebGL简易教程(十三):帧缓存对象(离屏渲染)
详细论述了WebGL中帧缓冲区技术的实现。
14.WebGL简易教程(十四):阴影
详述了WebGL中生成阴影的ShadowMap算法。
3. 资源
其代码已经上传到GitHub:地址。个人见解难免有所疏漏,欢迎大家来互相交流。
WebGL简易教程——目录的更多相关文章
- WebGL简易教程(二):向着色器传输数据
目录 1. 概述 2. 示例:绘制一个点(改进版) 1) attribute变量 2) uniform变量 3) varying变量 3. 结果 4. 参考 1. 概述 在上一篇教程<WebGL ...
- WebGL简易教程(三):绘制一个三角形(缓冲区对象)
目录 1. 概述 2. 示例:绘制三角形 1) HelloTriangle.html 2) HelloTriangle.js 3) 缓冲区对象 (1) 创建缓冲区对象(gl.createBuffer( ...
- WebGL简易教程(四):颜色
目录 1. 概述 2. 示例:绘制三角形 1) 数据的组织 2) varying变量 3. 结果 4. 理解 1) 图形装配和光栅化 2) 内插过程 5. 参考 1. 概述 在上一篇教程<Web ...
- WebGL简易教程(六):第一个三维示例(使用模型视图投影变换)
目录 1. 概述 2. 示例:绘制多个三角形 2.1. Triangle_MVPMatrix.html 2.2. Triangle_MVPMatrix.js 2.2.1. 数据加入Z值 2.2.2. ...
- WebGL简易教程(七):绘制一个矩形体
目录 1. 概述 2. 示例 2.1. 顶点索引绘制 2.2. MVP矩阵设置 2.2.1. 模型矩阵 2.2.2. 投影矩阵 2.2.3. 视图矩阵 2.2.4. MVP矩阵 3. 结果 4. 参考 ...
- WebGL简易教程(九):综合实例:地形的绘制
目录 1. 概述 2. 实例 2.1. TerrainViewer.html 2.2. TerrainViewer.js 3. 结果 4. 参考 1. 概述 在上一篇教程<WebGL简易教程(八 ...
- WebGL简易教程(八):三维场景交互
目录 1. 概述 2. 实例 2.1. 重绘刷新 2.2. 鼠标事件调整参数 3. 结果 4. 参考 1. 概述 在上一篇教程<WebGL简易教程(七):绘制一个矩形体>中,通过一个绘制矩 ...
- WebGL简易教程(十):光照
目录 1. 概述 2. 原理 2.1. 光源类型 2.2. 反射类型 2.2.1. 环境反射(enviroment/ambient reflection) 2.2.2. 漫反射(diffuse ref ...
- WebGL简易教程(十一):纹理
目录 1. 概述 2. 实例 2.1. 准备纹理 2.2. 配置纹理 2.3. 使用纹理 3. 结果 4. 参考 1. 概述 在之前的之前的教程<WebGL简易教程(九):综合实例:地形的绘制& ...
随机推荐
- Java实现多态的机制是什么?
靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型 ...
- ASP.NET Core Blazor 用Inspinia静态页模板搭建简易后台(实现菜单选中)
Blazor 是一个用于使用 .NET 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建丰富的交互式 UI. 共享使用 .NET 编写的服务器端和客户端应用逻辑 ...
- 参观路线——并查集+dfs
题目描述 Lambdaland由N个城市组成,任两个城市间都有一条道路相连. 下个月TBL准备参观Lambdaland.他将从城市1开始,以深度优先搜索顺序参观能所有遍历到的城市. 由于TBL是一位 ...
- Helm 3 发布 | 云原生生态周报 Vol. 27
作者 | 墨封.元毅.冬岛.敖小剑.衷源 业界要闻 1.Helm 3 发布 美国时间 11 月 13 日,Helm 团队发布 Helm 3 第一个稳定版本.Helm 3 以 Helm 2 的核心特性为 ...
- getchar()用法 【转】
1.从缓冲区读走一个字符,相当于清除缓冲区 2.前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致),所以如果不在此加一个getchar()把这个回车符 ...
- 网站搭建-虚拟机的使用-Linux (包括输入法和QQ下载使用)
之前已经联网了,基本的软件系统会自己下载,先不用管. 1. 先下载一个中文输入法吧: 先改一下Firefox的搜索引擎吧,因为大陆不支持google 下载,安装,就完事了,还好这个没变,几年不用这个系 ...
- Arduino 将 String 转化为 int
Arduino 将 String 转化为 int 函数:toInt() 实例: String my_str = "; int my_int = my_str.toInt();
- 【Java】面向对象之多态
生活中,比如动物中跑的动作,小猫.小狗和大象,跑起来是不一样的.再比如飞的动作,昆虫.鸟类和飞机,飞起来也是不一样的.可见,同一类的事物通过不同的实际对象可以体现出来的不同的形态.多态,描述的就是这样 ...
- css3布局-圣杯布局
圣杯布局he双飞翼布局都是解决两边固定款中间自适应的三栏布局 圣杯布局为了中间div内容不被别的内容覆盖,将中间div设置了左右的内边距后,将左右两个div用相对布局position: relativ ...
- SQL Server Management Studio 安装流程
数据库的操作需要使用SQL Server Management Studio,不过也可以使用其他的: 下面是安装操作的步骤:如果你下载的压缩包,你需要先解压到一个文件夹里,然后双击setup.exe, ...