0
雷鋒網(wǎng) AI 科技評論按,計算機圖形學(xué)是一個有趣的話題——如何利用算法和一些幾何數(shù)據(jù)制作玩具總動員?這不僅對于普通的電影迷來說是一個神秘的話題,而且對于那些還沒有接觸過它的世界級工程師來說也非常有吸引力。
計算機圖形學(xué)涉及到的話題非常廣泛。從 3D 渲染到照片圖像過濾器、從字體到粒子系統(tǒng)等許多學(xué)科都和它有關(guān)。一位有著 5 年大學(xué)計算機圖形學(xué)教學(xué)經(jīng)驗,在谷歌工作過后又自己創(chuàng)立游戲公司「Mystery Studio」的軟件工程師 Gabriel Gambetta 寫了一本計算機圖圖形相關(guān)的書。該書主要專注于 3D 渲染。
雖然目前這本書還沒有出版完成,但是網(wǎng)上有電子版內(nèi)容,github 上也有詳細的代碼~
這本書不會教你如何使用 OpenGL 或 DirectX,相反,它可以教你 OpenGL 和 DirectX 的工作原理。在實際中,你不會為編寫軟件渲染器,但了解渲染器的工作方式和工作原理將使您能夠更有效地使用 OpenGL 和 DirectX。
本書試圖用一種容易理解的方式揭開計算機圖形學(xué)的神秘面紗。它不僅可以很容易地被高中生理解,同時涵蓋大學(xué)課程的相同主題。事實上,這是作者在大學(xué)教授計算機圖形學(xué)的多年經(jīng)驗總結(jié)。
學(xué)習(xí)本書幾乎沒有什么先驗知識要求,也沒有軟硬件依賴。書中唯一使用的原語是一種方法,它允許我們設(shè)置像素的顏色,因此是「從頭開始」。本書涉及的算法概念簡單,數(shù)學(xué)也很簡單。其中涉及到一些高中水平的三角學(xué),也有一些基本的線性代數(shù),為此,作者在附錄對這些知識進行了補充,讀者可以根據(jù)需要查閱。
本書有兩個主要部分:光線追蹤和光柵化,重點是使用這兩種主要的方法,根據(jù)數(shù)據(jù)做出漂亮的圖片。共同概念章節(jié)介紹了理解這兩部分所需的一些基本知識。
本書重點討論的不是性能,而是清晰的概念闡述。書中的示例代碼是以最直觀清楚的方式編寫,但它可能不是實現(xiàn)算法的最有效方法。當有不同的實現(xiàn)方法時,作者選擇了最容易理解的方法來說明概念。
跟著書本學(xué)習(xí),最后的「最終結(jié)果」是兩個完整的、功能齊全的渲染器:一個光線追蹤器和一個光柵化器。盡管它們采用的是非常不同的方法,但在用于渲染簡單場景時,它們會產(chǎn)生類似的結(jié)果:
雖然它們的功能有相當大的重疊,但并不完全相同,本書討論了它們各自的獨特優(yōu)勢:
這本書提供了大量的示例代碼,以及偽代碼;它還提供了用 JavaScript 編寫的完全的實現(xiàn)代碼,這些代碼可以直接在瀏覽器上運行,呈現(xiàn)為畫布元素。
另外,本書還有相關(guān)的 github 資源,該資源包含「從頭開始的計算機圖形學(xué)」這本書的全部文本,圖表和演示代碼,有興趣的同學(xué)可以參考下~
via:http://www.gabrielgambetta.com/computer-graphics-from-scratch/introduction.html
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。