學習一下知乎大佬的推薦書單
目前細分方向暫時分爲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的同學參考。
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的核心方面,所以依然有很大的參考價值。
OpenGL邊學邊做,講解詳細,代碼質量也不錯。
The Linux Command Line / William Shotts
相當棒、相當精簡、信息密度極大的介紹GNU/Linux(debian),bash programming和日常工具(grep, sed等)的手冊。是以後/正在使用Linux的同學絕佳的自學教程 / 參考資料。更重要的是, 這本書是開源免費的!
相當讚的在線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教授的圖形學書單:
SIGGRAPH Open Access (talks, courses, etc.)