学习一下知乎大佬的推荐书单
目前细分方向暂时分为Introduction(介绍图形学、电影/动画工业的基础知识),Geometry Processing(几何处理,建模等),Rendering(离线/实时渲染),Animation and Simulation(动画/物理模拟),Mathematics(图形学研究需要用到的数学知识),Course Notes(不错的笔记),Toolchain(图形学研究常用工具链)。
Introduction
Interactive computer graphics : a top-down approach with shader-based OpenGL / Edward Angel et al.
相当不错的图形学入门读物,偏重实时渲染。用OpenGL(新版本为WebGL)作为教学,简单容易上手。
The Art of 3D Computer Animation and Effects by Isaac V. Kerlow
全面介绍电影/动画工业的方方面面,由迪斯尼工作人员攒书,值得一看。
Geometry Processing
Computational Geometry: Algorithms and Applications. Third Edition. Mark de Berg, et al
计算几何经典之作,深入浅出,例子很多,每一章开头都有本章内容的实际应用,书后附有大量习题。
Polygon mesh processing. CRC press. Botsch et al. 2010
包括基本的几何形体处理算法的讲解,比如平滑降噪、参数化、三角剖分、简化与近似、形变等。
Discrete Differential Geometry: An Applied Introduction. Keenan Crane 2015
讲述传统微分几何的基本概念如何在离散计算中得到应用,同时也会涉及到对一些相关数学工具的应用的探讨。内容主要包括曲率、平行转移、外蕴代数和微积分、拓扑、霍奇分解、保角映射、有限元方法等。
Vector Field Processing on Triangle Meshes. Fernando de Goes et al. 2015
讲述如何在几何体表面的切空间定义向量场并应用到对几何形体的处理中。本文也着重讲解了如何将传统微分几何的概念离散化到三角形网格上,选取三角形、顶点、边作为离散元分别有何优缺点。
Rendering
Physically Based Rendering, From Theory to Implementation /Matt Pharr
讲解详细体系完备,更难能可贵的是本书配套一个渲染系统,书后习题提供了参考文献和思路来改进这个渲染系统,学练结合,夫复何求?
Real-Time Rendering, Tomas Akenine-Moller, Eric Haines & Naty Hoffman
与离线渲染相对应的实时渲染经典著作,针对现代图形渲染管线、GPU、着色器等有详细讲解。同时总结了大量游戏开发中非常实用的算法。
Animation and Simulation
Fundations of physically based modelling and animation / D House
翻了下目录,比较适合物理建模入门
Fluid simulation for computer graphics / Robert Bridson
作者流体模拟届大牛Bridson,从NS方程的推导入手,详细介绍流体模拟的经典算法,是做物理模拟方向的同学几乎人手一本的参考书。
Nonlinear Continuum Mechanics for Finite Element Analysis / Javier Bonet & Richard D. Wood
固体、软体模拟、声音合成等方向的必读物。从最简单的线性力学介绍到非线性力学,对各种应力模型都有详细的介绍。同时对不同力学模型的有限元分析也进行了深入的讲解。
Boundary Element Method / Stefan A. Sauter & Christoph Schwab
本书详细介绍了边界元方法的理论和具体的数值方法。从边界元的概念、伽辽金方法等,讲述到椭圆边界积分方程的性质和解法,之后详细介绍了边界元方法及其在不同应用下的各种变通方法,最后也介绍了一些相关的线性方程求解和误差分析方法。
Rigid Body Simulation I & II / David Baraff
刚体模拟的入门读物,从最基本的刚体运动方程讲到刚体碰撞等。作者是皮克斯动画工作室的高级研究员,其开发的布料模拟算法已被广泛采纳于各种游戏和特效引擎中。
The Arts of Fluid Animation / Jos Stam CRC Press
Jos Stam 的 The Arts of Fluid Animation 讲得很有趣,可以作为引起兴趣的一本入门书籍,还带他的经典代码。
Fluid Simulation for Video Games
今天在办公室整理资料的时候发现当时一开始学习流体的时候看得很起劲的一个系列教程,叫Fluid Simulation for Video Games (因为我以前是做Game dev的,但后来兴趣有所改变…),这个系列提供很多关于流体的信息,但都不是那种看了作呕的教科书,它还提供一些源码可以玩。
Kim, Doyub. Fluid Engine Development. CRC Press, 2017.
推荐一本 Doyub Kim 的 FLUID ENGINE DEVELOPMENT, ISBN978-1-4987-1992-6,基本上是手把手的从零开始教你写流体解算器啦,对像我一样的自学新手很有帮助
Mathematics
Linear Algebra and Its Applications / Peter Lax
作者是科学计算领域大家,这本书前面从分析的视角讲代数,后文从代数扩展到计算数学,是用一本书快速温习多个领域的不二之选。本书观点较高,适合有本科数学基础的同学参考。
Numerical Solution of Time-Dependent Advection-Diffusion-Reaction Equations / Willem Hundsdorfer and Jan Verwer
从Method of Lines讲解抛物方程数值求解的一本观点新颖的著作,可供做流体模拟/CFD的同学参考。
What is...
AMS邀请各位大神编写的给数学爱好者阅读的科普小短文系列,能找到很多很有趣的东西 :)
Numerical Mathematics and Computing / Cheney, E., and David Kincaid.
一本比较新的计算数学著作,详细介绍了科学计算各个方面,知识比较新,并有详细的例子。
Modern Mathematics and Applications in Computer Graphics and Vision / Hongyu Guo
这本书收集了很多计算机图形学和视觉科学需要用到的现代数学知识。
Numerical Optimization / Jorge Nocedal & Stephen J. Wright
数值优化的经典著作,作者是开发了著名非线性优化算法L-BFGS的大牛,和数值计算相关领域的必读书目。
Convex Optimization / Stephen Boyd
另一本优化理论经典著作。斯坦福大学有配套网课:EE364A/EE364B。
The Matrix Cookbook / Petersen
遇到不会算的东西直接进来套用即可。
Partial Differential Equations / L. C. Evans
本书从应用角度全面地介绍了偏微分方程的相关内容,结合经典的工科应用,详细讲述了偏微分方程的类型、求解方法以及相关理论,适合已有数学分析基础的同学学习。
微积分学教程(三卷本) / 菲赫今哥尔茨
这套书是享誉世界的著作。然而由于体量实在太大,所以更适合作为参考资料使用。这套书讲解相当详细,每一章几乎都可以自成体系,并且配备数量可观的例题,是快速回忆微积分相关公式/定理绝佳的参考资料。
Ascher, Uri M., and Linda R. Petzold. Computer methods for ordinary differential equations and differential-algebraic equations. Vol. 61. Siam, 1998.
ODE数值解法方面的著作,配有习题和很多具体例子,也照顾到了对数学原理的讲解。这本书美中不足之处是省略了很多证明的细节。
Fung, Yuan-cheng. "A first course in continuum mechanics." Englewood Cliffs, NJ, Prentice-Hall, Inc.,
Trefethen, Lloyd N., and David Bau III. Numerical linear algebra. Vol. 50. Siam, 1997.Osher, Stanley, and Ronald Fedkiw. Level set methods and dynamic implicit surfaces. Vol. 153. Springer Science & Business Media, 2006.
就那本Continuum Mechanics, 好像从Stanford出来, 师承Ronald Fedkiw的那几代人都在用它. 另外数学部分可以考虑加上numerical linear algebra(Trefethen). 我超喜欢这个作者的书, 我导师有一次看我桌上摆着也表示赞同. xxzhang 曾经在哪个回答里说要熟悉Krylov/CG的那一套嘛,我就是从这本书学来的. 另外SIAM还有几本关于numerical methods的书, 我忘记确切书名了, 作者好像是LaVeque. 还有Redkiw自己的那本levelset的书也不错, 有一种他论文摘要的作用。
Course Notes
本章整理一些自己看过的不错的course notes
FEM Simulation of 3D Deformable Solids: A practitioner's guide to theory, discretization and model reduction
FEM做软体模拟的经典notes。
An introduction to physically based animation
PBA的经典tutorial。
The Material Point Method for Simulating Continuum Materials by Chenfanfu Jiang
MPM的经典入门材料。
A Primer on the Kinematics of Discrete Elastic Rods by A. Novelia et al
讲DER(Discrete Elastic Rods)的非常好的材料。
Toolchain
The ltxprimer / Indian TeX Group
TeX排版语言的相当棒的入门参考。虽然这本小册子比较老,但是由于它主要关注TeX的核心方面,所以依然有很大的参考价值。
Home
OpenGL边学边做,讲解详细,代码质量也不错。
The Linux Command Line / William Shotts
相当棒、相当精简、信息密度极大的介绍GNU/Linux(debian),bash programming和日常工具(grep, sed等)的手册。是以后/正在使用Linux的同学绝佳的自学教程 / 参考资料。更重要的是, 这本书是开源免费的!
Learn C++
相当赞的在线C++知识参考网站,有详细的例子,体系完备技术新颖,适合自学C++或者查漏补缺。
A Tour of C++ 2ed/ Bjarne Stroustrup
短小精悍干货非常多的讲C++17(包含少量C++20)用法和实际操作范例/建议。有C++基础的建议一读。
Unreal Engine Game Development Cookbook, John P. Doran
UE4的入门读物,从实例入手讲解如何进行简单游戏的开发。
The Python Tutorial / Guido v. Rossum
这是你唯一需要的Python入门教程。
Fluent Python / Luciano Ramalho
非常好的Python进阶读物,并且有很多对Python解释器原理层面的讲解。
一些不错的书单推荐:
Greg Turk教授的图形学书单:
Mathematics for Computer Graphics
叶劲峰老师的书单:
游戏程序员的学习之路 - 知乎专栏
Peter Wonka教授的图形学书单:
Peter Wonka
SIGGRAPH Open Access (talks, courses, etc.)
Conference Content