3D图形引擎系列(四) 学习3D图形资料

学3D开发也有两三年了,弯路走了不少就当给大家提个醒吧。


3D图形学刚开始学的时候最难的部分其实是渲染流水线,要搞清楚流水线每一步做了什么,用到了那些矩阵,以及矩阵背后的数学原理还真是要了亲命。折腾了死去活来好久以后,发现好书就那么几本:

1.《3D数学基础:图形与游戏开发》 这个可以当参考手册使用


2.《3D游戏编程大师技巧》 很多人说它过时了,但是让你徒手写个流水线,我还没有发现比这本代码更完整,系统的书。不过这本书的缺点是,透视变换和投影变换完全是乱七八糟的一大坨坨(第七章介绍整个流水线的时候,将投影变化移到了第十章。并且正本书没有引入投影矩阵,以及规范立方体(CVV)。这样看上去3D裁剪的过程就十分的混乱。现代的shader 过程中如果不了解规范化这个过程,shader写起来很麻烦。)!下面这本书就好很多。


3.《计算机图形学(opengl版)》第三版 最近才发现的,目前中文网站上所有关于3D流水线叙述比较热门的博客,帖子基本上都能从这本书上找到出处,很系统,也基本完整,概念,术语,图例等等也比较到位,有些不太清楚的地方可以上网查查,基本上没有什么太大的遗漏。


4.红宝书

以下所有前提都要求你明白简单的线性代数运算,比如向量和矩阵的左右乘法,矩阵转置,正交矩阵的逆矩阵等于其转置矩阵等等。


如果你不知道3D是啥,建议从红宝书开始。
如果对3D有一定了解,会一点opengl,建议从《计算机图形学(opengl版)》开始,跟着徒手写一个渲染流水出来,写的过程中,《计算机图形学(opengl版)》里面有数学原理的介绍不太完整的,查查《3D数学基础:图形与游戏开发》相关章节,不知道具体数据结构怎么设计的,查查《3D游戏编程大师技巧》。
这个阶段,如果最后能写出来一个软的光栅化流水线,渲染出来线框就算成功。这是我的学习过程,可能对于不同的人,学习过程不太相同,但是,3D渲染流水线上关于几何变换的东西,这三本书都包含的差不多了。


关于光照部分,还需要研究一下,主要是shader的使用,已经有几本资料了,我看看了再来更新吧。


你可能感兴趣的:(3D图形引擎系列(四) 学习3D图形资料)