天天看點

零基礎學計算機圖形學太難?或許你缺的隻是一本好書

雷鋒網 AI 科技評論按,計算機圖形學是一個有趣的話題——如何利用算法和一些幾何資料制作玩具總動員?這不僅對于普通的電影迷來說是一個神秘的話題,而且對于那些還沒有接觸過它的世界級工程師來說也非常有吸引力。

計算機圖形學涉及到的話題非常廣泛。從 3D 渲染到照片圖像過濾器、從字型到粒子系統等許多學科都和它有關。一位有着 5 年大學計算機圖形學教學經驗,在谷歌工作過後又自己創立遊戲公司「Mystery Studio」的軟體工程師 Gabriel Gambetta 寫了一本計算機圖圖形相關的書。該書主要專注于 3D 渲染。

這本書不會教你如何使用 OpenGL 或 DirectX,相反,它可以教你 OpenGL 和 DirectX 的工作原理。在實際中,你不會為編寫軟體渲染器,但了解渲染器的工作方式和工作原理将使您能夠更有效地使用 OpenGL 和 DirectX。

本書試圖用一種容易了解的方式揭開計算機圖形學的神秘面紗。它不僅可以很容易地被高中生了解,同時涵蓋大學課程的相同主題。事實上,這是作者在大學教授計算機圖形學的多年經驗總結。

學習本書幾乎沒有什麼先驗知識要求,也沒有軟硬體依賴。書中唯一使用的原語是一種方法,它允許我們設定像素的顔色,是以是「從頭開始」。本書涉及的算法概念簡單,數學也很簡單。其中涉及到一些高中水準的三角學,也有一些基本的線性代數,為此,作者在附錄對這些知識進行了補充,讀者可以根據需要查閱。

本書有兩個主要部分:光線追蹤和光栅化,重點是使用這兩種主要的方法,根據資料做出漂亮的圖檔。共同概念章節介紹了了解這兩部分所需的一些基本知識。

本書重點讨論的不是性能,而是清晰的概念闡述。書中的示例代碼是以最直覺清楚的方式編寫,但它可能不是實作算法的最有效方法。當有不同的實作方法時,作者選擇了最容易了解的方法來說明概念。

跟着書本學習,最後的「最終結果」是兩個完整的、功能齊全的渲染器:一個光線追蹤器和一個光栅化器。盡管它們采用的是非常不同的方法,但在用于渲染簡單場景時,它們會産生類似的結果:

零基礎學計算機圖形學太難?或許你缺的隻是一本好書

雖然它們的功能有相當大的重疊,但并不完全相同,本書讨論了它們各自的獨特優勢:

零基礎學計算機圖形學太難?或許你缺的隻是一本好書

這本書提供了大量的示例代碼,以及僞代碼;它還提供了用 JavaScript 編寫的完全的實作代碼,這些代碼可以直接在浏覽器上運作,呈現為畫布元素。

另外,本書還有相關的 github 資源,該資源包含「從頭開始的計算機圖形學」這本書的全部文本,圖表和示範代碼,有興趣的同學可以參考下~

via:http://www.gabrielgambetta.com/computer-graphics-from-scratch/introduction.html

雷鋒網(公衆号:雷鋒網)雷鋒網

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

繼續閱讀