求图形学基本算法好书推荐?
想从事实时渲染方向,图形学初学者,数学,英语,算法和数据结构等基础还算扎实,现在是《real time rendering》刚开始读,刚学完opengl es,按@张静推荐的那本OpenGL es 3.0书学习的,知道大部分api怎么用了,但对背后的算法不甚了解,现在想系统的学习一下图形学的基本算法(渲染管线从头到尾),打好基础,求前辈推荐一下好的书籍,英文,中文都可以,最好技术上比较新。
补充:深以为读本好书要比读几本烂书要节约时间,比较喜欢看知乎的大牛推荐的书。
补充:深以为读本好书要比读几本烂书要节约时间,比较喜欢看知乎的大牛推荐的书。
2 条评论
分享
按投票排序
按时间排序
15 个回答
Barney Zhao,Hello World
Scratchapixel
我看到这个网站后,感动得要哭!这一个网站就够了!!好好珍惜吧!
想学opengl, 就用这个网站 OpenGL Step by Step。非常赞!老外好无私!
想学DX,就看‘Practical Rendering and Computation with Direct3D 11’。 这本书把pipeline讲得非常清晰。这是我见过最好的一本DX的书。 (小八卦,real-time rendering的作者曾把这书当礼物送给我同事)
我看到这个网站后,感动得要哭!这一个网站就够了!!好好珍惜吧!
想学opengl, 就用这个网站 OpenGL Step by Step。非常赞!老外好无私!
想学DX,就看‘Practical Rendering and Computation with Direct3D 11’。 这本书把pipeline讲得非常清晰。这是我见过最好的一本DX的书。 (小八卦,real-time rendering的作者曾把这书当礼物送给我同事)
对觉得PBRT太厚的同学补充一本:Advanced global illumination
流体:Fluid simulation for computer graphics
刚体:
没读到过非常全面的书,所以写三个
http://www.pixar.com/companyinfo/research/pbm2001/pdf/notesg.pdf
http://image.diku.dk/kenny/download/erleben.05.thesis.pdf
Realtime collision detection
流体:Fluid simulation for computer graphics
刚体:
没读到过非常全面的书,所以写三个
http://www.pixar.com/companyinfo/research/pbm2001/pdf/notesg.pdf
http://image.diku.dk/kenny/download/erleben.05.thesis.pdf
Realtime collision detection
如果不是大牛,知乎上有关图形学的问题基本上看Milo Yip就足够了,水平高,热于且善于分享。我仔细看过的图形学书籍(
系统的学习计算机图形学,有哪些不同阶段的书籍的推荐? - Milo Yip 的回答中列的书或多或少都看过)中,感觉基础阶段最好的是《Fundamentals of Computer Graphics, Third Edition (豆瓣)》,实践的话《Interactive Computer Graphics: A Top-Down Approach with OpenGL》也不错。RTR仔细通读前四章,后面的一边实践一边慢慢读吧,否则像我这种不够坚强的人就很难愉快地读完。图形学的书基本可以分三类:
1. 偏重理论类;
2. 偏重实践类;
3. 精粹类;
第1类精读,第2类快速通读,第3类选读。具体哪些属于哪一类就不详细对应了,相信题主看过目录就能对上,也可以看看亚马逊(.com,不是.cn)上的书评。
如果不纠结语言和API版本的话,倒是可以考虑用WebGL来实践,感觉比用OGL/D3D方便。Three.js这类基于WebGL的引擎对于图形学的学习来说可能比基于Cpp的那些引擎更轻量,更容易专注于shader的编写。
1. 偏重理论类;
2. 偏重实践类;
3. 精粹类;
第1类精读,第2类快速通读,第3类选读。具体哪些属于哪一类就不详细对应了,相信题主看过目录就能对上,也可以看看亚马逊(.com,不是.cn)上的书评。
如果不纠结语言和API版本的话,倒是可以考虑用WebGL来实践,感觉比用OGL/D3D方便。Three.js这类基于WebGL的引擎对于图形学的学习来说可能比基于Cpp的那些引擎更轻量,更容易专注于shader的编写。
打杂狗一个,只推荐自己喜欢的书,顺便提一下对其他人提到的书的看法。
题主问图形学 基本算法,那我第一反应是数学。首先最基础的是矩阵乘法,最主流的光栅渲染器都是基于这个实现的,然后什么标架变换,什么四元数,什么曲线什么曲面。。。
高端一点的就是各种光照,都是各种物理公式,然后各种近似各种正着反着地往里套,其实也是数学。
算法也有,比如八叉树之类的应该算算法,但实际运用还是脱不开数学。
所以我推荐数学书 : Mathematics for 3D GameProgrammingandComputerGraphics.
我不敢说“入门看这书够了”,也不能保证你一上来看这本书一定能看懂。但是如果你能深入学下去的话,这本书一定是本不错的参考书。
很多书大而全,比如Real-Time Rendering,但如果你真正 遇到了问题,它未必能解决。比如你问它常见的透视投影变换矩阵怎么来的,它不会给你讲,比如你对纹理坐标差值的透视矫正有疑惑,它也不会给你讲。
而这些都是烂大街的算法。
甚至因为是烂大街的算法,很多书都不讲。但你遇到了问题你可以从数学书里查。尤其你提到3D API“背后的算法”。
这种问题的回答里通常会有人提到Introduction to 3D Game Programming: With Directx 11这一系列的书……如果你本来就擅长写代码那看这本书入门妥妥的。同理还有openGL红宝书(那本书开头几章讲了一些固定管线的知识很让我不满)。不过既然你“知道大部分api怎么用了”,那么看这类书就没意义了。
有人提到《3D游戏编程大师技巧》,那本书用的API太旧,我不知道对题主来说合不合适。但是那本书里的数学部分可以和 Mathematics for 3D GameProgrammingandComputerGraphics放在一起当数学参考书。
题主问图形学 基本算法,那我第一反应是数学。首先最基础的是矩阵乘法,最主流的光栅渲染器都是基于这个实现的,然后什么标架变换,什么四元数,什么曲线什么曲面。。。
高端一点的就是各种光照,都是各种物理公式,然后各种近似各种正着反着地往里套,其实也是数学。
算法也有,比如八叉树之类的应该算算法,但实际运用还是脱不开数学。
所以我推荐数学书 : Mathematics for 3D GameProgrammingandComputerGraphics.
我不敢说“入门看这书够了”,也不能保证你一上来看这本书一定能看懂。但是如果你能深入学下去的话,这本书一定是本不错的参考书。
很多书大而全,比如Real-Time Rendering,但如果你真正 遇到了问题,它未必能解决。比如你问它常见的透视投影变换矩阵怎么来的,它不会给你讲,比如你对纹理坐标差值的透视矫正有疑惑,它也不会给你讲。
而这些都是烂大街的算法。
甚至因为是烂大街的算法,很多书都不讲。但你遇到了问题你可以从数学书里查。尤其你提到3D API“背后的算法”。
这种问题的回答里通常会有人提到Introduction to 3D Game Programming: With Directx 11这一系列的书……如果你本来就擅长写代码那看这本书入门妥妥的。同理还有openGL红宝书(那本书开头几章讲了一些固定管线的知识很让我不满)。不过既然你“知道大部分api怎么用了”,那么看这类书就没意义了。
有人提到《3D游戏编程大师技巧》,那本书用的API太旧,我不知道对题主来说合不合适。但是那本书里的数学部分可以和 Mathematics for 3D GameProgrammingandComputerGraphics放在一起当数学参考书。
李土,脑残片三厂试药员
还以为没人提,拉到底看见了最后一位的@匿名用户 提到了。渲染方面的经典,略偏重理论,但是所有内容均有源代码(伪代码)。
@Milo Yip 在
系统的学习计算机图形学,有哪些不同阶段的书籍的推荐? - Milo Yip 的回答里亦有提到。若有志于深入研究图形学领域不要错过
PBRT:
Physically Based Rendering: From Theory to Implementation

PBRT:
Physically Based Rendering: From Theory to Implementation
maxint,being geek
看下这个
http://www.songho.ca/opengl/index.html,再 手写个z buffer 扫描线算法,再看看opengl api,再看看glsl,就图形学入门了。
接下来看rtr, gpu gem之类的,里面有好多酷酷的东西。有空再看开源绘制引擎代码,如ogre及插件的代码。
如果在学校,可以关注下siggraph文章
这样对图形学基本心中有数,知道方向。
接下来看rtr, gpu gem之类的,里面有好多酷酷的东西。有空再看开源绘制引擎代码,如ogre及插件的代码。
如果在学校,可以关注下siggraph文章
这样对图形学基本心中有数,知道方向。
安柏霖,coder
知乎用户 赞同
如果读书是为了从事实时渲染,可能是一边读书,一边实践更好一些。读directx的sdk和相关的sample,然后自己写一些demo,再进一步带着问题去读书,逐渐积累热情(不是一开始的激情那种),知识和实践技能
向宇波,听着音乐走在学习道路上的年轻程序员
我跟题主一样都是刚接触图形编程,不过我看的是DirectX。个人觉得DirectX11还是不错的,技术也算先进,而且今年微软又要推出新一代的Dx,功能更强大。入门的《Introduction to 3D Game Programming: With Directx 11》/*经过高人指点后修改成这本书*/ 挺仔细的。手上还有本《3D游戏引擎设计》,这本书难度就不小了,但是内容很全面深入,相信对图形编程大有帮助。网上也有很多不错的系列教程,也值得学习。另外一个就是Dx自带的例子。
sqy12,太逗了
1
CGB3D computer graphics / 3rd editionWatt, Alan HAddison-Wesley, 2000
2 OPGBOpenGL programming guide: the offical guide to learning OpenGL, version 1.4 / Op ...Shreiner, DavidAddison-Wesley, 2004
3 ICGWOBInteractive computer graphics: a top-down approach using OpenGL / 5th editionAngel, EdwardAddison-Wesley, 2009
教你一个办法 查找xxxxxxxxx学校+Graphics 然后拉到最下一般会有讲师推荐读物
2 OPGBOpenGL programming guide: the offical guide to learning OpenGL, version 1.4 / Op ...Shreiner, DavidAddison-Wesley, 2004
3 ICGWOBInteractive computer graphics: a top-down approach using OpenGL / 5th editionAngel, EdwardAddison-Wesley, 2009
教你一个办法 查找xxxxxxxxx学校+Graphics 然后拉到最下一般会有讲师推荐读物