定 價:¥139.00
作 者: | (美)約翰·M·克賽尼希,格雷厄姆·塞勒斯,戴夫·施萊爾 |
出版社: | 機械工業(yè)出版社 |
叢編項: | |
標 簽: | 暫缺 |
ISBN: | 9787111575115 | 出版時間: | 2017-08-01 | 包裝: | |
開本: | 16開 | 頁數(shù): | 664 | 字數(shù): |
推薦語
譯者序
前 言
致 謝
第1章 OpenGL概述 1
1.1 什么是OpenGL 1
1.2 初識OpenGL程序 2
1.3 OpenGL語法 6
1.4 OpenGL渲染管線 7
1.4.1 準備向OpenGL傳輸數(shù)據(jù) 8
1.4.2 將數(shù)據(jù)傳輸?shù)絆penGL 8
1.4.3 頂點著色 9
1.4.4 細分著色 9
1.4.5 幾何著色 9
1.4.6 圖元裝配 9
1.4.7 剪切 9
1.4.8 光柵化 9
1.4.9 片元著色 10
1.4.10 逐片元的操作 10
1.5 第一個程序:深入分析 11
1.5.1 進入main()函數(shù) 11
1.5.2 OpenGL的初始化過程 12
1.5.3 第一次使用OpenGL進行渲染 21
第2章 著色器基礎(chǔ) 24
2.1 著色器與OpenGL 25
2.2 OpenGL的可編程管線 25
2.3 OpenGL著色語言概述 27
2.3.1 使用GLSL構(gòu)建著色器 27
2.3.2 存儲限制符 33
2.3.3 語句 36
2.3.4 計算的不變性 40
2.3.5 著色器的預(yù)處理器 42
2.3.6 編譯器的控制 44
2.3.7 全局著色器編譯選項 44
2.4 數(shù)據(jù)塊接口 45
2.4.1 uniform塊 45
2.4.2 指定著色器中的uniform塊 46
2.4.3 從應(yīng)用程序中訪問uniform塊 47
2.4.4 buffer塊 53
2.4.5 in/out塊、位置和分量 53
2.5 著色器的編譯 54
2.6 著色器子程序 59
2.6.1 GLSL的子程序設(shè)置 59
2.6.2 選擇著色器子程序 60
2.7 獨立的著色器對象 62
2.8 SPIR-V 64
2.8.1 選擇SPIR-V的理由 64
2.8.2 SPIR-V與OpenGL 66
2.8.3 使用GLSL在OpenGL中生成SPIR-V 67
2.8.4 Glslang 69
2.8.5 SPIR-V中包含了什么 69
第3章 OpenGL繪制方式 70
3.1 OpenGL圖元 70
3.1.1 點 71
3.1.2 線、條帶與循環(huán)線 72
3.1.3 三角形、條帶與扇面 72
3.2 OpenGL緩存數(shù)據(jù) 75
3.2.1 創(chuàng)建與分配緩存 75
3.2.2 向緩存輸入和輸出數(shù)據(jù) 77
3.2.3 訪問緩存的內(nèi)容 81
3.2.4 丟棄緩存數(shù)據(jù) 86
3.3 頂點規(guī)范 86
3.3.1 深入討論VertexAttribPointer 87
3.3.2 靜態(tài)頂點屬性的規(guī)范 90
3.4 OpenGL的繪制命令 92
3.4.1 圖元的重啟動 99
3.4.2 多實例渲染 102
第4章 顏色、像素和片元 112
4.1 基本顏色理論 113
4.2 緩存及其用途 114
4.2.1 緩存的清除 116
4.2.2 緩存的掩碼 117
4.3 顏色與OpenGL 118
4.3.1 顏色的表達與OpenGL 118
4.3.2 平滑數(shù)據(jù)插值 119
4.4 片元的測試與操作 121
4.4.1 剪切測試 122
4.4.2 多重采樣的片元操作 123
4.4.3 模板測試 124
4.4.4 模板的例子 125
4.4.5 深度測試 127
4.4.6 融混 129
4.4.7 邏輯操作 133
4.4.8 遮擋查詢 134
4.4.9 條件渲染 138
4.5 多重采樣 139
4.6 逐圖元的反走樣 141
4.6.1 線段的反走樣 142
4.6.2 多邊形的反走樣 143
4.7 像素數(shù)據(jù)的讀取和拷貝 143
4.8 拷貝像素矩形 145
第5章 視口變換、裁減、剪切與反饋 147
5.1 觀察視圖 148
5.1.1 視圖模型 148
5.1.2 相機模型 148
5.1.3 正交視圖模型 151
5.2 用戶變換 152
5.2.1 矩陣乘法的回顧 153
5.2.2 齊次坐標 155
5.2.3 線性變換與矩陣 157
5.2.4 法線變換 167
5.2.5 OpenGL矩陣 168
5.3 OpenGL變換 170
5.3.1 高級技巧:用戶裁減和剪切 172
5.3.2 OpenGL變換的控制 173
5.4 transform feedback 174
5.4.1 transform feedback對象 175
5.4.2 transform feedback緩存 176
5.4.3 配置transform feedback的變量 179
5.4.4 transform feedback的啟動和停止 185
5.4.5 transform feedback的示例:粒子系統(tǒng) 187
第6章 紋理與幀緩存 192
6.1 紋理綜述 193
6.2 基本紋理類型 194
6.3 創(chuàng)建并初始化紋理 195
6.4 指定紋理數(shù)據(jù) 200
6.4.1 顯式設(shè)置紋理數(shù)據(jù) 200
6.4.2 從緩存中加載紋理 202
6.4.3 從文件加載圖像 203
6.4.4 獲取紋理數(shù)據(jù) 206
6.4.5 紋理數(shù)據(jù)的排列布局 207
6.5 紋理格式 211
6.5.1 內(nèi)部格式 211
6.5.2 外部格式 214
6.6 壓縮紋理 216
6.7 采樣器對象 218
6.8 紋理的使用 220
6.8.1 紋理坐標 222
6.8.2 排列紋理數(shù)據(jù) 225
6.8.3 使用多重紋理 227
6.9 復(fù)雜紋理類型 229
6.9.1 3D紋理 229
6.9.2 紋理數(shù)組 230
6.9.3 立方體映射紋理 231
6.9.4 陰影采樣器 236
6.9.5 深度-模板紋理 237
6.9.6 緩存紋理 238
6.10 紋理視圖 240
6.11 濾波方式 243
6.11.1 線性濾波 243
6.11.2 使用和生成mipmap 245
6.11.3 計算mipmap層次 249
6.11.4 mipmap細節(jié)層次的控制 250
6.12 高級紋理查詢函數(shù) 250
6.12.1 顯式的細節(jié)層次控制 250
6.12.2 顯式的梯度設(shè)置 251
6.12.3 帶有偏移參數(shù)的紋理獲取函數(shù) 251
6.12.4 投影紋理 252
6.12.5 在著色器中執(zhí)行紋理查詢 253
6.12.6 紋素收集 255
6.12.7 組合功能的特殊函數(shù) 255
6.13 無綁定紋理 256
6.13.1 紋理句柄 256
6.13.2 紋理駐留 257
6.13.3 采樣無綁定紋理 258
6.14 稀疏紋理 259
6.14.1 稀疏紋理的數(shù)據(jù)提交 259
.......