|
1. 高層
深入了解各種計算圖形學及數字圖像學的算法,要知道它們要解決什麼問題,現存有那些解決方案,每個方案的優缺點是甚麼。書籍太多,不在此列舉,可參考本人的豆列:
計算機圖形: 入門/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/
遊戲圖形程序員必讀的是《Real Time Rendering》(見進建/專門豆列),和shader有關的較前沿著作有《GPU Pro》叢書(見Gems類列)。
計算機圖形學並不是追求物理上完全正確的解,而是觀眾/玩家看上去覺得好看。為了優化,有些問題可以通過近似化來減少運算,學習一些擬合函數(也需了解底層提供的現成函數),並作出嘗試。例如基於物理着色中的BRDF擬合[1]、SSS模擬[2]。
有時候,可以分解一些複雜的函數,生成查找表(LUT)減少運算量,如下面[1]的示例:
2. 底層
通常shader是圖形算法實現的一部分,程序員需要了解shader語言提供的指令,以及它們如何影射至更底層的匯編指令,有時候還要了解具體的GPU架構和特性。有些指令可能較少用,例如ddx/ddy這些,有時候能用於優化。可以參考shader語言手冊、各GPU廠商的官方文件,以及GDC的一些講座[3][4]。
3. 數學
如題主所言,數學佔了很大的部分,建議閱讀[5][6],之後可以找相關數學的豆列。
參考
[1] Brian Karis, "Real Shading in Unreal Engine 4", ACM SIGGRAPH 2013 Courses: Physically based shading in theory and practice, ACM, 2013. http://blog.selfshadow.com/publications/s2013-shading-course/
[2] Colin Barré-Brisebois, Marc Bouchard, "Real-Time Approximation of Light Transport in Translucent Homogenous Media", Gpu Pro 2. Vol. 2. CRC Press, 2011. Slides: GDC 2011 – Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look
[3] Emil Persson, "Low-Level Thinking in High-Level Shading Languages", GDC 2013. Slides: Humus - Articles
[4] Emil Persson, "Low-level Shader Optimization for Next-Gen and DX11", GDC 2014. Slides: Humus - Articles
[5] Lengyel, Eric. Mathematics for 3D game programming and computer graphics. 3rd Edition, Cengage Learning, 2012.
[6] Schneider, Philip, and David H. Eberly. Geometric tools for computer graphics. Morgan Kaufmann, 2002. |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|