WebGL入门学习资料
作为一名图形爱好者,在学习WebGL的起步阶段经历了非常痛苦的过程。2016年初至今,三年的学习过程中,阅览过各种类型的教程。这里收集了我所学习过的、对初学者比较友好的教程,主要包括了WebGL、GLSL和ThreeJS相关主题。
在罗列这些教程前,先介绍一下我个人的情况,这样你也能够更好的和自身情况进行对比。我学习的专业是工业设计与软件工程,所以对三维的各种概念和三维美术创作的整个工作流程比较了解、而且能熟练使用多种行业的三维软件。毕业后从事交互设计工作,在工作中学习了Html、CSS和JavaScript。
如果你对三维一无所知,我建议你可以看一下这两本书:3D动画与特效制作艺术、数字绘图的光照与渲染技术,这两本是我看过最最最优秀的三维书籍(美术技术方面),不局限于某一三维软件,讲解浅显易懂、面面俱到,看完后你会对三维美术工作流程有一个直观的认识,并且里面也提及了非常多专业术语,对我的帮助特别大。
学习WebGL前,你还需要具备一定的前端知识,至少需要知道HTML的标签是干什么用的,JavaScript的变量和基本语法。除了前端知识,一些基本的线性代数概念也需要了解,比如矢量、矩阵。你也可以考虑先学习使用ThreeJS这样的WebGL框架,然后再过度到WebGL,这也是一个很好的选择。ThreeJS的学习门槛非常低,重要的是ThreeJS对象名称、属性、方法的可读性很高,正常人能够直观的理解,学习过程中不会有太大挫败感。
带有 的教程是我个人最喜欢的教程,希望这些入门教程也同样对你有帮助。Enjoy~
WebGL在线学习资料
- Mozilla - Getting_started_with_WebGL(中/英)
- Learning WebGL (中/英)
- English(dead link as of Nov 2018, backup link here,GitHub DEMO)
- Chinese
- WebGL Fundamentals(中/英)
- WebGL Academy - interactive tutorials(英)
- Learn WebGL(英)
WebGL 2.0
- WebGL2 Fundamentals(中/英)
Manual
- Khronos WebGL repository(英)
- Mozilla - WebGL: 2D and 3D graphics for the web (中/英)
GLSL/ESSL在线学习资料
- The Book of Shaders(中/英) ,讲解浅显易懂,并且提供了很多现成的函数算法和优秀的GLSL相关资源。还在连载中,但已经很久没有更新了,这个项目的GitHub地址。正在学习中~
- GLSL: An Introduction(英)
Shader create tool
- GLSL community - Shadertoy
- GLSL community - Vertex Shader Art
- GLSL community - GLSL sandbox
- Shader editor
ThreeJS在线学习资料
- Threejs intro PPT(英)
- ThreeJS documentation(中/英),Manual章节中的Getting Started部分是很好的入门资料
- Three.js入门指南(中) ,浅显易懂的一本小教材,是我学习WebGL过程中看的第一本教材,对我帮助非常大。
数学在线学习资料
中文图书
- WebGL Programming Guide / WebGL编程指南(Download DEMO)
- OpenGL Shading Language / OpenGL着色语言,这本书是用的OpenGL语言,但是因为比较老,所以书中GLSL语言貌似现在WebGL的GLSL都能支持,内置函数命名有些不同,但是能够看明白。正在学习中~
- Learning Three.js / Three.js开发指南(Online DEMO、GitHub DEMO) ,市面上为数不多的ThreeJS中文教材,不需要图形学基础就能看懂。
- Interactive Computer Graphics / 交互式计算机图形学(Resources) ,这是一本正儿八经、非常全面的高校计算机图形学教科书。难得的是这本教材居然用JavaScript和WebGL作为讲解计算机图形学的语言,缺点是这本书有点厚、难度也较高,课后习题我基本都不会做。相见恨晚,努力学习中~~~
- Introduction to Computer Graphics / 计算机图形学导论——实用学习指南(WebGL版),这本书没有看过,发现这本教材的时候,我已经不需要学习导论了。但是这种导论、概论类的教材对初学者入门非常有帮助。
- 程序员的数学3 - 线性代数,遇到线性代数的计算问题可以翻看查阅,正在努力学习中~
版本兼容&浏览器兼容
Xie Huating, 2019-04-28