計算機圖形學入門 3D渲染指南 Computer Graphics from Scratch: A Programmer's Introduction to 3D Rendering

[瑞士]加布里埃爾·甘貝塔(Gabriel Gambetta)

  • 計算機圖形學入門 3D渲染指南-preview-1
  • 計算機圖形學入門 3D渲染指南-preview-2
計算機圖形學入門 3D渲染指南-preview-1

買這商品的人也買了...

商品描述

如今,電腦圖形學無處不在,它為視頻、游戲等增添了令人矚目的細節,為大型電影、動畫等增添了逼真的特效。本書圍繞電腦圖形學這一主題展開,是作者講授電腦圖形學課程多年經驗的結晶。

 

本書著重介紹光線追蹤渲染器和光柵化渲染器這兩大主流渲染器的基本實現過程,以渲染器的需求背景和實現原理作為出發點,輔以必要的簡單數學推導過程,從光到陰影與反射,從直線到著色與紋理,逐漸引導出實現渲染器的偽代碼,力求使沒有豐富編程經驗和深厚數學功底的讀者也能夠完全讀懂。

 

本書是電腦圖形學入門的學習教材,特別適合渴望進入電腦圖形學世界的“零基礎”讀者閱讀,也適合對電腦圖形學開發感興趣的愛好者以及相關從業人員使用。

作者簡介

加布里埃尔· 甘贝塔(Gabriel Gambetta)从5岁开始编写游戏程序。在获得计算机科学的学位后,他创办了一家游戏开发公司,在那里工作了10 多年,同时在当地一所大学教授计算机图形学。他目前在苏黎世,担任谷歌的高级软件工程师。

目錄大綱

 

第 1章 基礎入門概念 1

1.1 畫布 1

1.2 顏色模型 4

1.2.1 減色法模型 4

1.2.2 加色法模型 6

1.2.3 忽略細節 7

1.3 顏色深度和顏色表示法 8

1.4 顏色的處理方法 9

1.5 場景 10

1.6 總結 11

 

第 一部分 光線追蹤

第 2章 基礎光線追蹤知識 14

2.1 渲染一幅瑞士風景圖 14

2.2 基本假設 17

2.3 畫布空間到視口空間 18

2.4 追蹤射線 19

2.4.1 射線方程 20

2.4.2 球體方程 21

2.4.3 射線與球體相交 22

2.5 渲染我們的第 一組球體 24

2.6 總結 29

 

第3章 光 30

3.1 簡化的假設 31

3.2 光源 31

3.2.1 點光 31

3.2.2 方向光 32

3.2.3 環境光 33

3.3 單點光照 34

3.4 漫反射 34

3.4.1 對漫反射的建模 35

3.4.2 漫反射方程 38

3.4.3 球體的法線 38

3.4.4 漫反射的渲染 39

3.5 鏡面反射 41

3.5.1 對鏡面反射的建模 44

3.5.2 鏡面反射的計算項 46

3.5.3 完整的光照方程 46

3.5.4 鏡面反射的渲染 47

3.6 總結 50

 

第4章 陰影和反射 52

4.1 陰影 52

4.1.1 理解陰影 52

4.1.2 包含陰影的渲染 55

4.2 反射 58

4.2.1 鏡子和反射 58

4.2.2 包含反射的渲染 61

4.3 總結 64

 

第5章 擴展光線追蹤渲染器 65

5.1 任意相機定位 65

5.2 性能優化 67

5.2.1 並行運算 67

5.2.2 緩存不變值 68

5.2.3 陰影的優化 69

5.2.4 空間結構 70

5.2.5 子採樣 70

5.3 支持其他圖元 71

5.4 體素構造表示法 71

5.5 透明度 73

5.6 超採樣 75

5.7 總結 75

 

第二部分 光柵化

第6章 直線 78

6.1 描述直線 79

6.2 繪制直線 80

6.3 繪制任意斜率的直線 84

6.4 線性插值函數 85

6.5 總結 88

 

第7章 填充三角形 89

7.1 繪制線框三角形 89

7.2 繪制填充三角形 90

7.3 總結 94

 

第8章 著色三角形 95

8.1 定義問題 95

8.2 計算邊緣著色 96

8.3 計算內部著色 98

8.4 總結 101

 

第9章 透視投影 102

9.1 基本假設 102

9.2 查找P'點 103

9.3 透視投影方程 104

9.4 透視投影方程的性質 105

9.5 投影我們的第 一個3D物體 106

9.6 總結 108

 

第 10章 場景的描述和渲染 109

10.1 表示一個立方體 109

10.2 模型和模型實例 113

10.3 模型變換 116

10.4 相機變換 118

10.5 變換矩陣 121

10.6 齊次坐標 122

10.6.1 齊次旋轉矩陣 123

10.6.2 齊次縮放矩陣 124

10.6.3 齊次平移矩陣 124

10.6.4 齊次投影矩陣 125

10.6.5 齊次視口-畫布變換矩陣 126

10.7 回顧變換矩陣 126

10.8 總結 128

 

第 11章 裁剪 130

11.1 裁剪過程概述 131

11.2 裁剪體 131

11.3 使用平面裁剪場景 133

11.4 定義裁剪平面 135

11.5 裁剪整個物體 137

11.6 裁剪三角形 139

11.7 裁剪過程的偽代碼 142

11.8 渲染管線中的裁剪過程 145

11.9 總結 145

 

第 12章 移除隱藏錶面 146

12.1 渲染實體物體 146

12.2 畫家算法 147

12.3 深度緩沖 149

12.4 背面剔除 154

12.5 總結 158

 

第 13章 著色 159

13.1 著色與光照 159

13.2 扁平化著色 160

13.3 高洛德著色 161

13.4 馮氏著色 166

13.5 總結 169

 

第 14章 紋理 171

14.1 繪制木條箱 171

14.2 雙線性濾波 176

14.3 貼圖分級細化 179

14.4 三線性濾波 182

14.5 總結 182

 

第 15章 擴展光柵化渲染器 183

15.1 法線映射 183

15.2 環境映射 185

15.3 陰影 187

15.3.1 模板陰影 187

15.3.2 陰影映射 193

15.4 總結 194

 

編後記 195

 

附錄 線性代數 197

1.點 197

2.向量 198

(1)表示向量 198

(2)向量的模 199

3.點運算和向量運算 199

(1)點的減法 199

(2)點和向量的加法 200

(3)向量加法 200

(4)向量和數的乘法 201

(5)向量乘法 201

4.矩陣 203

5.矩陣運算 203

(1)矩陣加法 203

(2)矩陣和數的乘法 203

(3)矩陣乘法 204

(4)矩陣和向量的乘法 205