【書單】圖形學科研之路(持續更新)
不同於目前互聯網上經常見到的圖形學書單推薦,本文側重收集、整理圖形學各個方向研究所需要的各個方面(基礎知識,領域重要著作,工具鏈參考手冊),以供想了解/快速上手該細分領域的同學參考。
本書單長期更新,請在評論區中留下您的反饋意見/補充推薦,我們會定期對這個書單做更新,並在貢獻者位置附上您的ID。
目前細分方向暫時分為Introduction(介紹圖形學、電影/動畫工業的基礎知識),Geometry Processing(幾何處理,建模等),Rendering(離線/實時渲染),Animation and Simulation(動畫/物理模擬),Mathematics(圖形學研究需要用到的數學知識),Toolchain(圖形學研究常用工具鏈)。如果您對這些方向分類有新的想法,我們歡迎您的反饋。
由於編者水平有限,本文難免有遺漏和不妥之處,請不吝賜教。
Contributors:
@碩鼠醬 ,@李旻辰 ,@Raymond,@丁歐南,@FAQ,@CodingHare
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
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
剛體模擬的入門讀物,從最基本的剛體運動方程講到剛體碰撞等。作者是皮克斯動畫工作室的高級研究員,其開發的布料模擬演算法已被廣泛採納於各種遊戲和特效引擎中。
@FAQ推薦
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的,但後來興趣有所改變…),這個系列提供很多關於流體的信息,但都不是那種看了作嘔的教科書,它還提供一些源碼可以玩。
@CodingHare推薦
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的大牛,和數值計算相關領域的必讀書目。
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的書也不錯, 有一種他論文摘要的作用.
Toolchain
The ltxprimer / Indian TeX Group
TeX排版語言的相當棒的入門參考。雖然這本小冊子比較老,但是由於它主要關注TeX的核心方面,所以依然有很大的參考價值。
HomeOpenGL邊學邊做,講解詳細,代碼質量也不錯。
The Linux Command Line / William Shotts
相當棒、相當精簡、信息密度極大的介紹GNU/Linux(debian),bash programming和日常工具(grep, sed等)的手冊。是以後/正在使用Linux的同學絕佳的自學教程 / 參考資料。更重要的是, 這本書是開源免費的!
Learn C++
相當贊的在線C++知識參考網站,有詳細的例子,體系完備技術新穎,適合自學C++或者查漏補缺。
Unreal Engine Game Development Cookbook, John P. Doran
UE4的入門讀物,從實例入手講解如何進行簡單遊戲的開發。
一些不錯的書單推薦:
Greg Turk教授的圖形學書單:
Mathematics for Computer Graphics葉勁峰老師的書單:
遊戲程序員的學習之路 - 知乎專欄Peter Wonka教授的圖形學書單:
Peter Wonka_(:3」∠)_ _(?ω?」∠)_ _(:з)∠)_ ∠( ? 」∠)_ _(:зゝ∠)_
請毫不猶豫地關注我們:我們的網站:GraphiCon知乎專欄:GraphiCon圖形控
公眾號:GraphiCon如果你有什麼想法,建議,或者想加入我們,你可以:給我們發郵件:hi@graphicon.io加入我們的QQ群:SIQGRAPH(342086343)加入我們的slack群:GraphiConGraphiCon長期接受投稿,如果你想投稿給我們可以通過上面的方式聯繫我們!本作品採用知識共享署名-非商業性使用-禁止演繹 4.0 國際許可協議進行許可。任何組織和個人不得將本文用作商業用途,轉載需要在顯要位置註明原文鏈接。作者保留對侵權行為追究責任的權利。
http://creativecommons.org/licenses/by-nc-nd/4.0/
推薦閱讀:
※差異、相似與模式
※直博一年級,科研無力,論文看不進去,想好好學,可是沒有動力,求支招?
※獨家!這可能是目前最全的醫學文獻資料庫了
※中國在地溝油的再利用方面的科研工作到了什麼地步呢?
※被媒體遺忘的諾獎女科學家屠呦呦