[知乎][Milo Yip]系统的学习计算机图形学,有哪些不同阶段的书籍的推荐?

Computer Graphics, Animaition, OpenGL, DirectX, OpenCL
头像
523066680
Administrator
Administrator
帖子: 340
注册时间: 2016年07月19日 12:14
拥有现金: 锁定
储蓄: 锁定
Has thanked: 30 times
Been thanked: 27 times
联系:

[知乎][Milo Yip]系统的学习计算机图形学,有哪些不同阶段的书籍的推荐?

帖子 #1 523066680 » 2016年08月25日 21:41

作者:Milo Yip
链接:https://www.zhihu.com/question/26720808/answer/33885578
来源:知乎

本人二十多年前开始对图形学有兴趣,并进行自学。那时候能找到的学习材料比较杂乱,有来自BBS的文档及代码,有一些不太系统的书籍。后来开始阅读著名的教材《Computer Graphics (豆瓣): Principle and Practice 2nd Edition》(CGPP),发觉非常难读,当然一方面是自己的能力有限(那时候高一),另一方面是觉得有些比较简单的部分花了很多篇幅,有些重点的学习曲
线非常陡峭。
第二版的资料比较过时,但过了二十多年作者们才出了第三版,我买了一本(右图),但只读了一小部分,所以不在此妄下评论。
01.jpg
01.jpg (75.09 KiB) 查看 1135 次
01.jpg
01.jpg (75.09 KiB) 查看 1135 次

对于学习计算机图形,我觉得需要考虑是以哪种心态去学习。如果只是想了解一下,体验一下,可以选择一些较简单的方式,例如Processing相关的。《The Nature of Code (豆瓣)》是一本写给任何程序员甚至是非程序员,有关图形、动画的书,使用Processing作为例子。网上版是免费的The Nature of Code,国内也快有翻译版《代码本色:用编程模拟自然系统 (豆瓣)》,本人第一次获邀写本书的推荐序(求轻拍……)。
02.jpg
02.jpg (23.32 KiB) 查看 1135 次
02.jpg
02.jpg (23.32 KiB) 查看 1135 次

如果希望更正统地去学习,可以选择公开课及大学教科书。我并没有这方面的学习经验,但似乎《Fundamentals of Computer Graphics, Third Edition (豆瓣)》是一个不错的选择,作者是Utah及Cornell的教授,而且本书曾用于多所大学的课程(见Fundamentals of Computer Graphics, Third Edition)。
03.jpg
03.jpg (40.58 KiB) 查看 1135 次
03.jpg
03.jpg (40.58 KiB) 查看 1135 次

另一本常作为教材,但只集中讨论离线渲染的是《Physically Based Rendering, Second Edition (豆瓣)》(PBRT)。它的一个优越之处是配合开源项目mmp/pbrt-v2 · GitHub,而且书里采用了文学编程Literate programming)方式去展示源代码,这样会更容易理解代码和理论之间的关联。
04.jpg
04.jpg (37.96 KiB) 查看 1135 次
04.jpg
04.jpg (37.96 KiB) 查看 1135 次

提到PBRT,不能不提《Real-Time Rendering, Third Edition (豆瓣)》(RTR)。相对于制作CG(动画电影、电影特效)的离线渲染,实时渲染是游戏的核心部分,这本书被誉为游戏引擎开发者的天书。这本书的内容非常多,涉及实时渲染的方方面面,写作手法亦非常简明易读。但由于许多细节内容实在放不进这本超过1000页的著作,但作者们非常仔细地包含了大量的参考文献,可以作为这个领域的指南。但第3版已经是2008年出版,期待第4版。
05.jpg
05.jpg (38.89 KiB) 查看 1135 次
05.jpg
05.jpg (38.89 KiB) 查看 1135 次

对于想做实时渲染的朋友,必须要学习相关的API。现时基本上是Direct3D 9/11、OpenGL 3.x/4.x、OpenGL ES 2/3、WebGL,还有一些新的API如iOS的Metal、AMD的Mantle。
Direct3D 比较多人阅读的是龙书《Introduction to 3D Game Programming with DirectX 11 (豆瓣)》,但DirectX11版已没有龙做封面了。
06.jpg
06.jpg (41.22 KiB) 查看 1135 次
06.jpg
06.jpg (41.22 KiB) 查看 1135 次

不过如果对Direct3D9或OpenGL API已有经验,可以阅读《Practical Rendering and Computation with Direct3D 11 (豆瓣)》。这本书基本可以代替MSDN的相关介绍,并有几章比较实际应用上的问题处理。
07.jpg
07.jpg (37.01 KiB) 查看 1135 次
07.jpg
07.jpg (37.01 KiB) 查看 1135 次

而OpenGL的经典则是红书《OpenGL Programming Guide (豆瓣)》,现时已经是第8版。我已忘记最初是看哪一版,不过当时的确觉得非常易读。
08.jpg
08.jpg (45.45 KiB) 查看 1135 次
08.jpg
08.jpg (45.45 KiB) 查看 1135 次

OpenGL还有一本比较流行的书籍《OpenGL Superbible (豆瓣)》。
09.jpg
09.jpg (30.43 KiB) 查看 1135 次
09.jpg
09.jpg (30.43 KiB) 查看 1135 次

计算机图形学可能是在计算机出版中,首先以Gems形式把一些投稿结集出版的学科。1990年开创《Graphics Gems (豆瓣)》系列,2002年开始了《Direct3D ShaderX (豆瓣)》系列,2004年的《GPU Gems (豆瓣)》系列1,2010年的《GPU Pro (豆瓣)》系列等。这些书籍主要是业界(部分学界)发表最新技巧、技术的地方。完整列表可参考計算機圖形: Gems類
10.jpg
10.jpg (32.78 KiB) 查看 1135 次
10.jpg
10.jpg (32.78 KiB) 查看 1135 次

上面的都是比较广泛地讨论计算机图形及API的书籍,但计算机图形的每一个范畴,例如实时图形的阴影、流体模拟及渲染、曲面建模、地形渲染、皮肤渲染……许多许多题目都足以写一本甚至几本专著。可以参考 計算機圖形: 進階/專門
11.jpg
11.jpg (32.06 KiB) 查看 1135 次
11.jpg
11.jpg (32.06 KiB) 查看 1135 次

介绍到这里,以为完了吧?不,还有一类书籍,把计算机图形相关的文章结集出版。例如《Jim Blinn's Corner (豆瓣)》。Jim Blinn何许人也?就是发明Blinn-Phong Reflection Model、environment mapping、bump mapping的大牛。类似的书籍可参考 計算機圖形: 專欄結集
12.jpg
12.jpg (33.14 KiB) 查看 1135 次
12.jpg
12.jpg (33.14 KiB) 查看 1135 次


还有,计算机图形离不开数学,相关书籍可参考此答案:
与游戏或图形编程相关,有哪些好的数学和物理的书? - Milo Yip 的回答

我搜集了不少计算机图形书籍,做成豆列(但只有少量评语) :
計算機圖形: 入門/API類 http://book.douban.com/doulist/1445744/
計算機圖形: 進階/專門 http://book.douban.com/doulist/1445680/
計算機圖形: Gems類 http://book.douban.com/doulist/1445745/
計算機圖形: 專欄結集 http://book.douban.com/doulist/1445806/
計算機圖形: 動畫 http://book.douban.com/doulist/1445716/
計算機圖形: 相關數學 http://book.douban.com/doulist/1445735/
計算機圖形: 其他參考 http://book.douban.com/doulist/1447740/

zzz19760225
崭露头角
崭露头角
帖子: 20
注册时间: 2017年12月25日 11:12
拥有现金: 锁定
储蓄: 锁定
Has thanked: 7 times
联系:

Re: [知乎][Milo Yip]系统的学习计算机图形学,有哪些不同阶段的书籍的推荐?

帖子 #2 zzz19760225 » 2018年04月18日 12:32

楼主有没有在dos虚拟器,pcem,dosemu里的图形操作教程或参考方向?

头像
523066680
Administrator
Administrator
帖子: 340
注册时间: 2016年07月19日 12:14
拥有现金: 锁定
储蓄: 锁定
Has thanked: 30 times
Been thanked: 27 times
联系:

Re: [知乎][Milo Yip]系统的学习计算机图形学,有哪些不同阶段的书籍的推荐?

帖子 #3 523066680 » 2018年04月19日 11:33

zzz19760225 写了:楼主有没有在dos虚拟器,pcem,dosemu里的图形操作教程或参考方向?


DOS方面了解不多,手头上没有~ :(

briar
初来炸道
初来炸道
帖子: 10
注册时间: 2018年03月07日 00:16
拥有现金: 锁定
联系:

Re: [知乎][Milo Yip]系统的学习计算机图形学,有哪些不同阶段的书籍的推荐?

帖子 #4 briar » 2018年04月19日 22:16

zzz19760225 写了:楼主有没有在dos虚拟器,pcem,dosemu里的图形操作教程或参考方向?

最近我在群内放了一些我从ed2k翻出来的旧书,你可以参考下。
中華DOS聯盟:8393170

briar
初来炸道
初来炸道
帖子: 10
注册时间: 2018年03月07日 00:16
拥有现金: 锁定
联系:

Re: [知乎][Milo Yip]系统的学习计算机图形学,有哪些不同阶段的书籍的推荐?

帖子 #5 briar » 2018年04月19日 22:18

这些书或许网上能搜到扫描版,搜不到可以看看ed2k网络。或者是一些网址。
中華DOS聯盟:8393170

briar
初来炸道
初来炸道
帖子: 10
注册时间: 2018年03月07日 00:16
拥有现金: 锁定
联系:

Re: [知乎][Milo Yip]系统的学习计算机图形学,有哪些不同阶段的书籍的推荐?

帖子 #6 briar » 2018年04月19日 22:19

这些书或许网上能搜到扫描版,搜不到可以看看ed2k网络。或者是一些网址。
中華DOS聯盟:8393170

zzz19760225
崭露头角
崭露头角
帖子: 20
注册时间: 2017年12月25日 11:12
拥有现金: 锁定
储蓄: 锁定
Has thanked: 7 times
联系:

Re: [知乎][Milo Yip]系统的学习计算机图形学,有哪些不同阶段的书籍的推荐?

帖子 #7 zzz19760225 » 2018年04月20日 08:29

briar 写了:这些书或许网上能搜到扫描版,搜不到可以看看ed2k网络。或者是一些网址。


嗯,一直想寻个时间专心了解下,因为繁琐的事老是没成。什么时候找一个txt版的,随身用手机碎看。

zzz19760225
崭露头角
崭露头角
帖子: 20
注册时间: 2017年12月25日 11:12
拥有现金: 锁定
储蓄: 锁定
Has thanked: 7 times
联系:

Re: [知乎][Milo Yip]系统的学习计算机图形学,有哪些不同阶段的书籍的推荐?

帖子 #8 zzz19760225 » 2018年04月20日 08:41

523066680 写了:
zzz19760225 写了:楼主有没有在dos虚拟器,pcem,dosemu里的图形操作教程或参考方向?


DOS方面了解不多,手头上没有~ :(


你这里的帮助教材已经足够足够人消化的,辛苦了。
一种是没有图形接口的图形实现(针对点阵字符构成的小点点),另一种是有图形接口的图形实现。我在门外汉小白新手的角度,想着有没有什么笨的方向,开始就在一个硬件有关的范围活动体验。主要是想避免系统学习linux等的内容,进去类似操作debug那样,最好debug这个工具本身也是可以这样自构和修改的开源。

现实是从昨天走到今天,从已有走向未有,这个过程一般是要有的,所以我想直接接触硬件,一般是不大好实现,有点类似以前机器码操作的要求。

另一个是世界是丰富丰满的,在一个想法产生的同时,在相同的世界中,历史,现在,下一刻,都有很多人具有其他更好相同类同近似的想法或实践,只是无法互相自由联系沟通或有效沟通。

我目前的需求,属于不清不楚的大概方向,跟着你们的后面涨涨见识,已经是受益匪浅了(起点低也无法直接理解和吸收)。

慢慢逛逛


回到 “计算机图形”

在线用户

用户浏览此论坛: Google [Bot] 和 1 访客