定 價(jià):¥139.00
作 者: | (美)約翰·M·克賽尼希,格雷厄姆·塞勒斯,戴夫·施萊爾 |
出版社: | 機(jī)械工業(yè)出版社 |
叢編項(xiàng): | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787111575115 | 出版時(shí)間: | 2017-08-01 | 包裝: | |
開(kāi)本: | 16開(kāi) | 頁(yè)數(shù): | 664 | 字?jǐn)?shù): |
推薦語(yǔ)
譯者序
前 言
致 謝
第1章 OpenGL概述 1
1.1 什么是OpenGL 1
1.2 初識(shí)OpenGL程序 2
1.3 OpenGL語(yǔ)法 6
1.4 OpenGL渲染管線 7
1.4.1 準(zhǔn)備向OpenGL傳輸數(shù)據(jù) 8
1.4.2 將數(shù)據(jù)傳輸?shù)絆penGL 8
1.4.3 頂點(diǎn)著色 9
1.4.4 細(xì)分著色 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 第一個(gè)程序:深入分析 11
1.5.1 進(jìn)入main()函數(shù) 11
1.5.2 OpenGL的初始化過(guò)程 12
1.5.3 第一次使用OpenGL進(jìn)行渲染 21
第2章 著色器基礎(chǔ) 24
2.1 著色器與OpenGL 25
2.2 OpenGL的可編程管線 25
2.3 OpenGL著色語(yǔ)言概述 27
2.3.1 使用GLSL構(gòu)建著色器 27
2.3.2 存儲(chǔ)限制符 33
2.3.3 語(yǔ)句 36
2.3.4 計(jì)算的不變性 40
2.3.5 著色器的預(yù)處理器 42
2.3.6 編譯器的控制 44
2.3.7 全局著色器編譯選項(xiàng) 44
2.4 數(shù)據(jù)塊接口 45
2.4.1 uniform塊 45
2.4.2 指定著色器中的uniform塊 46
2.4.3 從應(yīng)用程序中訪問(wèn)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 獨(dú)立的著色器對(duì)象 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 點(diǎn) 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 訪問(wèn)緩存的內(nèi)容 81
3.2.4 丟棄緩存數(shù)據(jù) 86
3.3 頂點(diǎn)規(guī)范 86
3.3.1 深入討論VertexAttribPointer 87
3.3.2 靜態(tài)頂點(diǎn)屬性的規(guī)范 90
3.4 OpenGL的繪制命令 92
3.4.1 圖元的重啟動(dòng) 99
3.4.2 多實(shí)例渲染 102
第4章 顏色、像素和片元 112
4.1 基本顏色理論 113
4.2 緩存及其用途 114
4.2.1 緩存的清除 116
4.2.2 緩存的掩碼 117
4.3 顏色與OpenGL 118
4.3.1 顏色的表達(dá)與OpenGL 118
4.3.2 平滑數(shù)據(jù)插值 119
4.4 片元的測(cè)試與操作 121
4.4.1 剪切測(cè)試 122
4.4.2 多重采樣的片元操作 123
4.4.3 模板測(cè)試 124
4.4.4 模板的例子 125
4.4.5 深度測(cè)試 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 像素?cái)?shù)據(jù)的讀取和拷貝 143
4.8 拷貝像素矩形 145
第5章 視口變換、裁減、剪切與反饋 147
5.1 觀察視圖 148
5.1.1 視圖模型 148
5.1.2 相機(jī)模型 148
5.1.3 正交視圖模型 151
5.2 用戶變換 152
5.2.1 矩陣乘法的回顧 153
5.2.2 齊次坐標(biāo) 155
5.2.3 線性變換與矩陣 157
5.2.4 法線變換 167
5.2.5 OpenGL矩陣 168
5.3 OpenGL變換 170
5.3.1 高級(jí)技巧:用戶裁減和剪切 172
5.3.2 OpenGL變換的控制 173
5.4 transform feedback 174
5.4.1 transform feedback對(duì)象 175
5.4.2 transform feedback緩存 176
5.4.3 配置transform feedback的變量 179
5.4.4 transform feedback的啟動(dòng)和停止 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 采樣器對(duì)象 218
6.8 紋理的使用 220
6.8.1 紋理坐標(biāo) 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 計(jì)算mipmap層次 249
6.11.4 mipmap細(xì)節(jié)層次的控制 250
6.12 高級(jí)紋理查詢函數(shù) 250
6.12.1 顯式的細(xì)節(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 無(wú)綁定紋理 256
6.13.1 紋理句柄 256
6.13.2 紋理駐留 257
6.13.3 采樣無(wú)綁定紋理 258
6.14 稀疏紋理 259
6.14.1 稀疏紋理的數(shù)據(jù)提交 259
.......