OpenGL編程指南(原書第8版) (OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3, 8/e) 华章程序员书库:OpenGL编程指南(原书第8版)

施萊爾 (Dave Shreiner), Graham Sellers, John Kessenich, Bill Licea-Kane

  • 出版商: 機械工業
  • 出版日期: 2014-10-01
  • 定價: $774
  • 售價: 8.5$658
  • 語言: 簡體中文
  • 頁數: 651
  • 裝訂: 平裝
  • ISBN: 7111481135
  • ISBN-13: 9787111481133
  • 相關分類: OpenGL
  • 無法訂購

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

商品描述

 

<內容簡介>

施萊爾編著的《OpenGL編程指南》是由Khronos小組編寫的官方指南,是OpenGL領域的權威著作,素有「OpenGL紅寶書」的美譽。第8版針對OpenGL4.3版本全方位闡釋OpenGL的各種技術細節、方法和最佳實踐,幫助程序員走上OpenGL專家之路。
    本書共12章:第1章概述OpenGL主要特性和功能;第2章討論OpenGL中最主要的特性——可編程著色器;第3章介紹使用OpenGL進行幾何體繪製的各種方法,以及一些可以讓渲染更為高效的優化手段;第4章闡釋OpenGL對於顏色的處理過程,包括像素的處理、緩存的管理以及像素處理相關的渲染技術;第5章介紹在一個二維電腦屏幕上表現三維場景的操作細節;第6章討論將幾何模型與圖像結合來創建真實的、高質量的三維模型的方法;第7章介紹電腦圖形的光照效果模擬方法;第8章介紹使用可編程著色器生成紋理和其他錶面效果的方法細節;第9章解釋OpenGL管理和細分幾何錶面的著色器功能;第10章介紹在OpenGL渲染管線中使用著色器進行幾何體圖元修改的特別技術;第1l章介紹使用OpenGL幀緩存和緩存內存實現高級渲染技術和非圖形學應用的相關方法;第12章介紹了最新的著色器階段,將通用計算的方法融合到OpenGL的渲染管線當中。

<章節目錄>

推薦語
譯者序
前言
第1章  OpenGL概述
  1.1  什麼是
  1.2  初識OpenGL程序
  1.3  OpenGL語法
  1.4  OpenGL渲染管線
    1.4.1  準備向OpenGL傳輸數據
    1.4.2  將數據傳輸
1.4.3  頂點著色
    1.4.4  細分著色
    1.4.5  幾何著色
    1.4.6   圖元裝配
    1.4.7  剪切
    1.4.8  光柵化
    1.4.9  片元著色
    1.4.10  逐片元的操作
  1.5第一個程序:深入分析
    1.5.1  進入main()函數
    1.5.2  OpenGL的初始化過程
    1.5.3第一次使用OpenGL進行渲染
第2章  著色器基礎
  2.1  著色器與O
  2.2  OpenGL的可編程管線
  2.3  OpenGL著色語言概述
    2.3.1  使用glsl構建著色器
    2.3.2  存儲限制符
    2.3.3  語句
    2.3.4  計算的不變性
    2.3.5  著色器的預處理器
    2.3.6  編譯器的控制
    2.3.7  全局著色器編譯選項
  2.4  數據塊接口
    2.4.1  uniform塊
    2.4.2  指定著色器中的uniform塊
    2.4.3  從應用程序中訪問uniform塊
    2.4.4  buffer塊
    2.4.5  in/out塊
  2.5  著色器的編譯
    2.5.1  我們的loadshaders()函數
  2.6  著色器子程序
    2.6.1  glsl的子程序設置
    2.6.2  選擇著色器子程序
  2.7  獨立的著色器對象
第3章  OpenGL繪製方式
  3.1  OpenGL圖元
    3.1.1  點
    3.1.2  線、條帶與循環線
    3.1.3  三角形、條帶與扇面

  3.2  OpenGL緩存數據
    3.2.1  創建與分配緩存
    3.2.2  向緩存輸入和輸出數據
    3.2.3  訪問緩存的內容
    3.2.4  丟棄緩存數據
  3.3  頂點規範
    3.3.1  深入討論vertexattrib-p
    3.3.2   靜態頂點屬性的規範
  3.4  OpenGL的繪製命令
    3.4.1  圖元的重啟動
  3.5  多實例渲染
    3.5.1  多實例的頂點屬性
    3.5.2  在著色器中使用實例計數器
    3.5.3  多實例方法的回顧
第4章  顏色、像素和幀緩存
  4.1  基本顏色理論
  4.2  緩存及其用途
    4.2.1  緩存的清除
    4.2.2  緩存的掩碼
  4.3  顏色與Op
    4.3.1  顏色的表達與O
    4.3.2  頂點顏色
    4.3.3  光柵化
  4.4  多重採樣
    4.4.1  採樣著色
  4.5  片元的測試與操作
    4.5.1  剪切測試
    4.5.2  多重採樣的片元操作
    4.5.3  模板測試
    4.5.4  模板的例子
    4.5.5  深度測試
    4.5.6  融混
    4.5.7  融混參數
    4.5.8  控制融混的參數
    4.5.9  融混方程
    4.5.10  抖動
    4.5.11  邏輯操作
    4.5.12  遮擋查詢
    4.5.13  條件渲染
  4.6  逐圖元的反走樣
    4.6.1  線段的反走樣
    4.6.2  多邊形的反走樣
  4.7  幀緩存對象
    4.7.1  渲染緩存
    4.7.2  創建渲染緩存的存儲空間
    4.7.3  幀緩存附件
    4.7.4  幀緩存的完整性
    4.7.5  幀緩存的無效化
  4.8  多重渲染緩存的同步寫入
    4.8.1  選擇顏色緩存來進行讀寫操作

    4.8.2  雙源融混
  4.9  像素數據的讀取和拷貝
  4.10  拷貝像素矩形
第5章  視口變換、剪切與反饋
  5.1  觀察視圖
    5.1.1  視圖模型
    5.1.2  相機模型
    5.1.3  正交視圖模型
  5.2  用戶變換
    5.2.1  矩陣乘法的回顧
    5.2.2  齊次坐標
    5.2.3  線性變換與矩陣
    5.2.4   法線變換
    5.2.5  OpenGL矩陣
  5.3  OpenGL變換
    5.3.1  高級技巧:用戶剪切
  5.4  transform fee
    5.4.1  transform feedback對象
    5.4.2  transform feedback緩存
    5.4.3  配置transform feedback的變量
    5.4.4  transform feedback的啟動和停止
    5.4.5  transform feedback的示例:粒子系統
第6章  紋理
  6.1  紋理映射
  6.2  基本紋理類型
  6.3  創建和初始化紋理
    6.3.1  紋理格式
  6.4  代理紋理
  6.5  設置紋理數據
    6.5.1  顯式設置紋理數據
    6.5.2  使用pixel unpack緩存
    6.5.3  從幀緩存拷貝數據
    6.5.4  從文件加載圖像
    6.5.5  查詢紋理數據
    6.5.6  紋理數據佈局
  6.6  採樣器對象
    6.6.1  採樣器參數
  6.7  使用紋理
    6.7.1  紋理坐標
    6.7.2  組織紋理數據
    6.7.3  使用多重紋理
  6.8  複雜紋理類型
    6.8.1  3維紋理
    6.8.2  數組紋理
    6.8.3  立方體映射紋理
    6.8.4  陰影採樣器
    6.8.5  深度模板紋理
    6.8.6  緩存紋理
  6.9  紋理視圖
  6.10  壓縮紋理

  6.11  濾波
    6.11.1  線性濾波
    6.11.2  使用和生成m
    6.11.3  計算mipmap級別
    6.11.4  mipmap細節層次控制
  6.12  高級紋理查詢函數
    6.12.1  顯式細節層次
    6.12.2  顯式梯度設置
    6.12.3  偏移後的紋理獲取
    6.12.4  投影紋理
    6.12.5  著色器中的紋理查詢
    6.12.6  收集紋素
    6.12.7  合併特殊函數
  6.13  點精靈
    6.13.1  帶紋理的點精靈
    6.13.2  控制點的外觀
  6.14  渲染到紋理貼圖
    6.14.1  丟棄已渲染數據
  6.15  本章總結
    6.15.1  紋理回顧
    6.15.2  紋理的最好實踐
第7章  光照與陰影
  7.1  光照介紹
  7.2  經典光照模型
    7.2.1  不同光源類型的片元著色器
    7.2.2  將計算移到頂點著色器
    7.2.3  多個光源和材質
    7.2.4  光照坐標系統
    7.2.5  經典光照模型的局限
  7.3  光照模型進階
    7.3.1  半球光照
    7.3.2  基於圖像的光照
    7.3.3  球面光照
  7.4  陰影映射
    7.4.1  創建一張陰影貼圖
    7.4.2  使用陰影貼圖
第8章  程序式紋理
  8.1  程序式紋理
    8.1.1  規則的花紋
    8.1.2  玩具球
    8.1.3  晶格
    8.1.4  程序式著色方法的總結
  8.2  凹凸貼圖映射
    8.2.1  應用程序設置
    8.2.2  頂點著色器
    8.2.3  片元著色器
    8.2.4  法線貼圖
  8.3  程序式紋理的反走樣
    8.3.1  走樣的來源
    8.3.2  避免走樣問題

    8.3.3  提高分辨率
    8.3.4  高頻率的反走樣
    8.3.5  頻率截斷
    8.3.6  程序式反走樣的總結
  8.4  噪聲
    8.4.1  噪聲的定義
    8.4.2  噪聲紋理
    8.4.3  權衡
    8.4.4  一個簡單的噪聲著色器
    8.4.5  湍流
    8.4.6  大理石
    8.4.7  花崗岩
    8.4.8  木紋
    8.4.9  噪聲的總結
  8.5  更多信息
第9章  細分著色器
  9.1  細分著色器
  9.2  細分面片
  9.3  細分控制著色器
    9.3.1  生成輸出面片的頂點
    9.3.2  細分控制著色器的變量
    9.3.3  細分的控制
  9.4  細分計算著色器
    9.4.1  設置圖元生成域
    9.4.2  設置生成圖元的面朝向
    9.4.3  設置細分坐標的間隔
    9.4.4  更多的細分計算著色器layout選項
    9.4.5  設置頂點的位置
    9.4.6  細分計算著色器的變量
  9.5  細分實例:茶壺
    9.5.1  處理面片輸入頂點
    9.5.2  計算茶壺的細分坐標
  9.6  更多的細分技術
    9.6.1  視口相關的細分
    9.6.2  細分的共享邊與裂縫
    9.6.3  置換貼圖映射
第10章  幾何著色器
    10.1  創建幾何著色器
    10.2  幾何著色器的輸入和輸出
    10.2.1  幾何著色器的輸入
    10.2.2  特殊的幾何著色器圖元
    10.2.3  幾何著色器的輸出
    10.3  產生圖元
    10.3.1  幾何體的裁減
    10.3.2  幾何體的擴充
  10.4  transform feedback高級篇
    10.4.1  多重輸出流
    10.4.2  圖元查詢
    10.4.3  使用transform feedback的結果
  10.5  幾何著色器的多實例化

  10.6  多視口與分層渲染
    10.6.1  視口索引
    10.6.2  分層渲染
  10.7  本章小結
    10.7.1  幾何著色器回顧
    10.7.2  幾何著色器的經驗談
第11章  內存
  11.1  使用紋理存儲通用數據
    11.1.1  將紋理綁定到圖像單元
    11.1.2  圖像數據的讀取和寫入
  11.2  著色器存儲緩存對象
    11.2.1  寫入結構化數據
  11.3  原子操作和同步
    11.3.1  圖像的原子操作
    11.3.2  緩存的原子操作
    11.3.3  同步對象
    11.3.4  圖像限定符和屏障
    11.3.5  高性能的原子計數器
  11.4  示例
    11.4.1  順序無關的透明
第12章  計算著色器
  12.1  概述
  12.2  工作組及其執行
    12.2.1  知道工作組的位置
  12.3  通信與同步
    12.3.1  通信
    12.3.2  同步
  12.4  示例
    12.4.1  物理模擬
    12.4.2  圖像處理
  12.5  本章總結
    12.5.1  計算著色器回顧
    12.5.2  計算著色器的最佳實踐
附錄a  glut基礎知識
附錄b  OpenGL es與
附錄c  內置glsl變量與函數
附錄d  狀態變量
附錄e  齊次坐標與變換矩陣
附錄f  OpenGL與窗口系統
附錄g  紋理、幀緩存與渲染緩存的浮點格式
附錄h  OpenGL程序的調試與優化
附錄i  緩存對象的佈局
術語表