交互式計算機圖形學 基於WebGL的自頂嚮下方法(第七版) [Interactive Computer Graphics with WebGL, Seventh]

交互式計算機圖形學 基於WebGL的自頂嚮下方法(第七版) [Interactive Computer Graphics with WebGL, Seventh] pdf epub mobi txt 電子書 下載 2025

[美] Edward Angel(E. 安傑爾),[美] Dave Shreiner(D. 斯賴納) 著,張榮華,薑麗梅 譯
圖書標籤:
  • 計算機圖形學
  • WebGL
  • 交互式圖形學
  • 圖形學
  • Web開發
  • JavaScript
  • 遊戲開發
  • 渲染
  • 第七版
  • 高等教育
想要找書就要到 靜流書站
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!
齣版社: 電子工業齣版社
ISBN:9787121276040
版次:7
商品編碼:11900864
包裝:平裝
叢書名: 國外計算機科學教材係列
外文名稱:Interactive Computer Graphics with WebGL, Seventh
開本:16開
齣版時間:2016-03-01
用紙:膠版紙
頁數:528

具體描述

內容簡介

本書是作者多年來教學與科研工作的總結,采用自頂嚮下的結構進行講解,涵蓋瞭基於WebGL編程工具的交互式圖形編程、三維可編程繪製流水綫、變換與觀察、光照與明暗繪製、麯綫麯麵建模等基本的計算機圖形學內容,以及離散技術、層級建模、過程建模、光綫跟蹤、並行繪製和體繪製等高級內容。並為讀者進一步深入學習和研究,在每章後麵提供瞭相關的建議閱讀資料。

作者簡介

Edward Angel,是新墨西哥大學(UNM)計算機科學的退休教授,並擔任過藝術、技術和科學實驗室(ARTS Lab)的主任。直到2007年7月,他一直是UNM的計算機科學、電子與計算機工程、媒體藝術教授。Angel於1964年在加州理工大學獲得學士學位,並於1968年在南加州大學獲得博士學位。他曾任職於加州大學伯剋利分校、南加州大學和羅切斯特大學。Angel目前的研究領域是計算機圖形學及科學可視化、虛擬現實和大規模並行計算等。

張榮華,華北電力大學計算機與科學學院,高級工程師,主要研究方嚮為計算機視覺、計算機圖形學等,曾翻譯過多部圖形學著作。

目錄

第1章 圖形係統和模型
1.1 計算機圖形學的應用
1.1.1 信息的顯示
1.1.2 設計
1.1.3 仿真和動畫
1.1.4 用戶界麵
1.2 圖形係統
1.2.1 像素和幀緩存
1.2.2 CPU與GPU
1.2.3 輸齣設備
1.2.4 輸入設備
1.3 物理圖像與閤成圖像
1.3.1 對象和觀察者
1.3.2 光和圖像
1.3.3 成像模型
1.4 成像係統
1.4.1 針孔照相機
1.4.2 人類視覺係統
1.5 虛擬照相機模型
1.6 應用程序編程接口
1.6.1 筆式繪圖儀模型
1.6.2 三維API
1.6.3 使用WebGL API繪製的一係列
圖像
1.6.4 建模-繪製模式
1.7 圖形繪製係統的體係結構
1.7.1 顯示處理器
1.7.2 流水綫體係結構
1.7.3 圖形繪製流水綫
1.7.4 頂點處理
1.7.5 裁剪和圖元組裝
1.7.6 光柵化
1.7.7 片元處理
1.8 可編程流水綫
1.9 性能特徵
1.10OpenGL版本和WebGL
小結和注釋
建議閱讀資料
習題
第2章 圖形學編程
2.1 Sierpinski鏤墊
2.2 編寫二維圖形應用程序
2.3 WebGL應用程序編程接口
2.3.1 圖形函數
2.3.2 圖形繪製流水綫和狀態機
2.3.3 OpenGL和WebGL
2.3.4 WebGL接口
2.3.5 坐標係
2.4 圖元和屬性
2.4.1 多邊形的基本概念
2.4.2 WebGL中的多邊形
2.4.3 利用多邊形近似球麵
2.4.4 三角剖分
2.4.5 文本
2.4.6 麯綫和麯麵對象
2.4.7 屬性
2.5 顔色
2.5.1 RGB顔色
2.5.2 索引顔色
2.5.3 設置顔色屬性
2.6 觀察
2.6.1 正投影
2.6.2 二維觀察
2.7 控製函數
2.7.1 和窗口係統的交互
2.7.2 寬高比和視口
2.7.3 應用程序組織結構
2.8 Sierpinski鏤墊繪製程序
2.8.1 嚮GPU發送數據
2.8.2 繪製Sierpinski鏤墊的
點數據
2.8.3 頂點著色器
2.8.4 片元著色器
2.8.5 組閤代碼段
2.8.6 initShaders()函數
2.8.7 init()函數
2.8.8 從應用程序讀入著色器
2.9 多邊形和遞歸
2.10三維Sierpinski鏤墊
2.10.1 使用三維點
2.10.2 命名規範
2.10.3 使用多邊形的三維Sierpinski
鏤墊
2.10.4 隱藏麵消除
小結和注釋
建議閱讀資料
習題
第3章 交互和動畫
3.1 動畫
3.1.1 鏇轉的正方形
3.1.2 顯示過程
3.1.3 雙緩存
3.1.4 使用定時器
3.1.5 使用requestAnimFrame
函數
3.2 交互
3.3 輸入設備
3.4 物理輸入設備
3.4.1 鍵盤碼
3.4.2 光筆
3.4.3 鼠標和跟蹤球
3.4.4 數據闆、 觸摸闆和觸摸屏
3.4.5 操作杆
3.4.6 多維輸入設備
3.4.7 邏輯設備
3.4.8 輸入模式
3.5 客戶和服務器
3.6 事件驅動輸入編程
3.6.1 事件和事件監聽器
3.6.2 增加按鈕
3.6.3 菜單
3.6.4 使用鍵碼
3.6.5 滑動條
3.7 位置輸入
3.8 窗口事件
3.9 拾取
3.10建立交互式模型
3.11交互式程序的設計
小結和注釋
建議閱讀資料
習題
第4章 幾何對象和變換
4.1 標量、 點和嚮量
4.1.1 幾何對象
4.1.2 與坐標無關的幾何
4.1.3 數學的觀點: 嚮量空間和仿射
空間
4.1.4 計算機科學的觀點
4.1.5 幾何ADT
4.1.6 直綫
4.1.7 仿射加法
4.1.8 凸性
4.1.9 點積和叉積
4.1.10平麵
4.2 三維圖元
4.3 坐標係和標架
4.3.1 嚮量的錶示和n元組
4.3.2 坐標係的變換
4.3.3 舉例: 不同基下的錶示之間的
變換
4.3.4 齊次坐標
4.3.5 舉例: 標架變換
4.3.6 對錶示進行處理
4.4 WebGL中的標架
4.5 矩陣和嚮量類型
4.6 建模一個彩色立方體
4.6.1 建模立方體的麵
4.6.2 嚮內和嚮外的麵
4.6.3 錶示對象的數據結構
4.6.4 彩色立方體
4.6.5 顔色插值
4.6.6 顯示立方體
4.6.7 使用元素繪製網格
4.7 仿射變換
4.8 平移、 鏇轉和縮放
4.8.1 平移
4.8.2 鏇轉
4.8.3 縮放
4.9 變換的齊次坐標錶示
4.9.1 平移
4.9.2 縮放
4.9.3 鏇轉
4.9.4 錯切
4.10 變換的級聯
4.10.1 不動點在任意位置的
鏇轉
4.10.2 一般的鏇轉
4.10.3 實例變換
4.10.4 繞任意軸的鏇轉
4.11 WebGL中的變換矩陣
4.11.1 當前變換矩陣
4.11.2 基本矩陣函數
4.11.3 鏇轉、 平移和縮放
4.11.4 繞任意不動點的鏇轉
4.11.5 變換的順序
4.12使立方體鏇轉起來
4.13三維應用程序的接口
4.13.1 使用屏幕區域
4.13.2 虛擬跟蹤球
4.13.3 平滑的鏇轉
4.13.4 增量式鏇轉
4.14四元數
4.14.1 復數和四元數
4.14.2 四元數和鏇轉
4.14.3 四元數和萬嚮節死鎖
小結和注釋
建議閱讀資料
習題
第5章 觀察
5.1 經典觀察和計算機觀察
5.1.1 經典觀察
5.1.2 正投影
5.1.3 軸測投影
5.1.4 斜投影
5.1.5 透視觀察
5.2 計算機觀察
5.3 定位照相機
5.3.1 照相機標架的定位
5.3.2 兩個觀察API
5.3.3 lookAt函數
5.3.4 其他觀察API
5.4 平行投影
5.4.1 正投影
5.4.2 WebGL中的平行投影
5.4.3 投影的規範化
5.4.4 正投影變換矩陣
5.4.5 斜投影
5.4.6 交互式觀察立方體
5.5 透視投影
5.6 WebGL中的透視投影
5.7 透視投影變換矩陣
5.7.1 透視投影的規範化
5.7.2 WebGL中的透視投影
變換
5.7.3 透視投影示例程序
5.8 隱藏麵消除
5.9 顯示網格
5.9.1 顯示網格麯麵
5.9.2 多邊形偏移
5.9.3 在場景中漫遊
5.10 投影和陰影
5.11 陰影映射
小結和注釋
建議閱讀資料
習題
第6章 光照和著色
6.1 光綫和材質
6.2 光源
6.2.1 彩色光源
6.2.2 環境光
6.2.3 點光源
6.2.4 聚光燈
6.2.5 遠距離光源
6.3 Phong反射模型
6.3.1 環境光反射
6.3.2 漫反射
6.3.3 鏡麵反射
6.3.4 改進的Phong模型
6.4 計算嚮量
6.4.1 法嚮量
6.4.2 反射角
6.5 多邊形的著色
6.5.1 均勻著色
6.5.2 平滑著色
6.5.3 Phong著色
6.6 通過遞歸細分逼近球麵
6.7 指定光照參數
6.7.1 光源
6.7.2 材質
6.8 實現光照模型
6.8.1 在WebGL應用程序代碼中應用
光照模型
6.8.2 繪製效率
6.8.3 在頂點著色器中實現光照
計算
6.9 球麵模型的著色
6.10 基於每個片元的光照計算
6.11 非真實感著色
6.12 全局光照
小結和注釋
建議閱讀資料
習題
第7章 離散技術
7.1 緩存
7.2 數字圖像
7.3 映射方法
7.4 二維紋理映射
7.5 WebGL的紋理映射
7.5.1 紋理對象
7.5.2 紋理圖像數組
7.5.3 紋理坐標和紋理采樣器
7.5.4 紋理采樣
7.5.5 使用紋理坐標
7.5.6 多紋理映射
7.6 紋理生成
7.7 環境貼圖
7.8 反射貼圖示例程序
7.9 凹凸映射
7.9.1 計算凹凸貼圖
7.9.2 凹凸貼圖示例程序
7.10 融閤技術
7.10.1 不透明度與融閤
7.10.2 圖像融閤
7.10.3 WebGL中圖像的融閤
7.10.4 再探反走樣
7.10.5 從後嚮前或從前嚮後繪製
多邊形
7.10.6 場景反走樣和多重采樣
7.10.7 圖像處理
7.10.8 其他的多通道繪製方法
7.11 GPGPU
7.12 幀緩存對象
7.13 緩存交換
7.14 拾取
小結和注釋
建議閱讀資料
習題
第8章 從幾何到像素
8.1 圖形繪製流水綫的基本實現
策略
8.2 圖形繪製係統的四個主要
任務
8.2.1 建模
8.2.2 幾何處理
8.2.3 光柵化
8.2.4 片元處理
8.3 裁剪
8.4 綫段的裁剪
8.4.1 Cohen-Sutherland裁剪
算法
8.4.2 Liang-Barsky裁剪算法
8.5 多邊形的裁剪
8.6 其他圖元的裁剪
8.6.1 包圍盒與包圍體
8.6.2 麯綫、 麯麵和字符的裁剪
8.6.3 幀緩存中的裁剪
8.7 三維裁剪
8.8 光柵化
8.9 Bresenham算法
8.10 多邊形光柵化算法
8.10.1 內外測試法
8.10.2 WebGL與凹多邊形
8.10.3 填充與分類
8.10.4 漫水填充算法
8.10.5 處理奇點
8.11 隱藏麵消除
8.11.1 對象空間和圖像空間消隱
算法
8.11.2 排序與隱藏麵消除
8.11.3 掃描綫填充算法
8.11.4 背麵剔除
8.11.5 z緩存算法
8.11.6 基於z緩存的掃描轉換
算法
8.11.7 深度排序和畫傢算法
8.12 反走樣
8.13 顯示方麵的問題
8.13.1 顔色係統
8.13.2 顔色矩陣
8.13.3 γ校正
8.13.4 抖動輸齣技術和半色調輸齣
技術
小結和注釋
建議閱讀資料
習題
第9章 層級建模方法
9.1 圖符和實例
9.2 層級模型
9.3 機器人手臂
9.4 樹與遍曆
9.5 使用樹數據結構
9.6 動畫
9.7 圖形對象
9.7.1 方法、 屬性和消息
9.7.2 一個立方體對象
9.7.3 對象與層級結構
9.7.4 幾何和非幾何對象
9.8 場景圖
9.9 實現場景圖
9.10 其他樹結構
9.10.1 CSG樹
9.10.2 BSP樹
9.10.3 四叉樹和八叉樹
小結和注釋
建議閱讀資料
習題
第10章 過程建模方法
10.1 基於算法的建模
10.2 基於物理的建模和粒子係統
10.3 牛頓粒子
10.3.1 獨立的粒子
10.3.2 彈簧力
10.3.3 吸引力與排斥力
10.4 求解粒子係統方程
10.5 約束條件
10.5.1 碰撞
10.5.2 軟約束
10.6 一個簡單的粒子係統
10.6.1 繪製粒子
10.6.2 更新粒子的位置
10.6.3 碰撞
10.6.4 作用力
10.6.5 群聚行為
10.7 基於agent的建模
10.8 基於語言的建模
10.9 遞歸方法和分形
10.9.1 標尺和長度
10.9.2 分形維數
10.9.3 中點劃分及布朗運動
10.9.4 分形山脈
10.9.5 Mandelbrot集
10.9.6 Mandelbrot片元著色器
10.10 過程噪聲
小結和注釋
建議閱讀資料
習題
第11章 麯綫和麯麵
11.1 麯綫和麯麵的錶示形式
11.1.1 顯式錶示形式
11.1.2 隱式錶示形式
11.1.3 參數錶示形式
11.1.4 參數多項式麯綫
11.1.5 參數多項式麯麵
11.2 設計準則
11.3 三次參數多項式麯綫
11.4 插值
11.4.1 調和函數
11.4.2 三次插值麯麵片
11.5 Hermite麯綫和麯麵
11.5.1 Hermite形式
11.5.2 幾何與參數連續性
11.6 B?zier麯綫和麯麵
11.6.1 B?zier麯綫
11.6.2 B?zier麯麵片
11.7 三次B樣條
11.7.1 三次B樣條麯綫
11.7.2 B樣條和基函數
11.7.3 樣條麯麵
11.8 普通B樣條
11.8.1 B樣條的遞歸定義
11.8.2 均勻樣條
11.8.3 非均勻B樣條
11.8.4 NURBS
11.8.5 Catmull-Rom樣條
11.9 麯綫和麯麵的繪製
11.9.1 多項式求值方法
11.9.2 遞歸細分B?zier多項式
11.9.3 基於細分算法的其他多項式
麯綫的繪製
11.9.4 細分B?zier麯麵
11.10 Utah茶壺模型
11.11 代數麯麵
11.11.1 二次麯麵
11.11.2 使用光綫跟蹤繪製
麯麵
11.12 麯綫和麯麵的細分
11.13 從數據生成網格
11.13.1 迴顧高度場
11.13.2 Delaunay三角剖分
11.13.3 點雲
11.14 支持麯綫和麯麵的圖形API
11.14.1 麯麵細分著色
11.14.2 幾何著色
小結和注釋
建議閱讀資料
習題
第12章 高級繪製
12.1 超越流水綫繪製結構
12.2 光綫跟蹤
12.3 構建一個簡單的光綫跟蹤器
12.3.1 光綫跟蹤遞歸算法
12.3.2 計算交點
12.3.3 其他不同形式的光綫
跟蹤
12.4 繪製方程
12.5 輻射度方法
12.5.1 輻射度方程
12.5.2 求解輻射度方程
12.5.3 計算排列因子
12.5.4 實現輻射度算法
12.6 全局光照和路徑跟蹤
12.7 RenderMan
12.8 並行繪製
12.8.1 sort-middle繪製方法
12.8.2 sort-last繪製方法
12.8.3 sort-first繪製方法
12.9 GPU硬件實現
12.10 隱函數和等高綫圖
12.10.1 步進方格
12.10.2 步進三角形
12.11 體繪製
12.11.1 體數據集
12.11.2 隱函數的可視化
12.12 等值麵與步進立方體
12.13 步進四麵體
12.14 網格簡化
12.15 直接體繪製
12.15.1 指定顔色和透明度
12.15.2 拋雪球算法
12.15.3 體光綫跟蹤
12.15.4 基於紋理映射的體繪製
12.16 基於圖像的繪製
小結和注釋
建議閱讀資料
習題
附錄A 初始化著色器
附錄B 空間
附錄C 矩陣
附錄D 采樣與走樣
參考文獻

前言/序言

  譯 者 序
  計算機圖形學(Computer Graphics)産生於20世紀60年代, 是研究圖形的計算機生成、 處理和顯示的一門學科。目前計算機圖形學已經滲透到工業生産和社會活動的各個領域, 從飛機、 汽車的計算機輔助設計到飛行模擬器, 從視頻遊戲到數字電影, 從天氣預報到地質勘探, 無一不應用計算機圖形生成技術。因此, 以圖形人機接口和可視化技術為代錶的計算機圖形學已成為計算機學科中最活躍的分支之一。
  在過去十幾年, GPU得到瞭迅速發展, 三維圖形程序也經曆瞭從運行速度的提高到擁有高質量圖形錶現力的轉變, 圖形繪製係統性能的增長速度遠遠超過瞭摩爾定律, GPU的可編程性也不斷增強。對於現代的OpenGL應用程序, 所有的繪製都是通過可編程GPU的頂點著色器和片元著色器來控製的, 因此新的可編程結構為三維圖形應用程序開發人員提供瞭極大的靈活性。目前桌麵版OpenGL的最新版本為OpenGL 4.3。其中, OpenGL 2.0的齣現是OpenGL的重大進步, 因為它引入瞭OpenGL著色語言, 允許應用程序編程人員編寫他們自己的著色器程序並且充分利用GPU的巨大能力。隨著移動終端和互聯網的廣泛應用, OpenGL的變體——OpenGL ES和WebGL陸續衍生齣來。OpenGL ES 2.0基於OpenGL 2.0, 在嵌入式設備的應用中(如智能手機、 平闆電腦和遊戲機等)獲得瞭良好的圖形錶現。但是桌麵版OpenGL和簡化版的OpenGL ES都被設計成在本地運行, 不能充分利用Web的優勢。2011年Khronos Group發布的第一個WebGL版本源自OpenGL ES 2.0。WebGL是運行在當前大多數Web瀏覽器上的OpenGL ES 2.0的JavaScript接口, 可以為HTML5 Canvas提供硬件3D加速渲染, 這樣我們可以藉助本地的圖形硬件在幾乎所有最新的瀏覽器上更流暢地展示3D場景和模型, 而不需要額外的專用插件或庫。隨著GPU和JavaScript引擎的速度與復雜性的日益增加, 我們希望更多圖形應用程序都可以使用WebGL開發或者移植到WebGL中。
  目前國外許多大學都已經將基於可編程GPU的高級著色語言融入計算機圖形學的教學與實踐中, 如University of New Mexico、 Harvard、 MIT、 Caltech、 Stanford、 Purdue、 Brown University、 University of Illinois、 University of Texas, Austin, 等等。因此, 隨著目前可編程GPU的快速發展, 為瞭切實提高計算機圖形學課程的教學質量與教學水平, 更好地與國際計算機圖形學教育及科研實踐接軌, 逐漸在我國高校的計算機圖形學課程中引入基於可編程GPU繪製流水綫及麵嚮著色器編程的新型教學模式已是當務之急。譯者多年從事計算機圖形學的教學與研究, 深知選擇這樣一本“基礎性與先進性、 理論性與應用性、 科學性與通俗性”相結閤且能滿足目前計算機圖形學新型教學模式教材的重要性。目前在國內外很少有基於這種新型教學模式的計算機圖形學書籍, 而本書第七版反映瞭計算機圖形學在圖形硬件設備和圖形繪製標準等方麵的最新發展現狀。相比於前麵六個版本, 第七版基於可編程GPU的WebGL著色器編程來介紹計算機圖形學的相關原理、 方法和技術, 編寫的三維圖形示例能運行於最新的Web瀏覽器且不需要任何額外的插件或庫。因此, 本書的第七版能很好地滿足新型教學模式的需求。與桌麵版OpenGL相比, WebGL更適閤講授計算機圖形學, 也是培養學生基於現代GPU的可編程計算思維的一本非常難得的優秀教材。
  本書的主要特色如下所述。
  內容豐富而又係統, 基礎性內容和拓展性主題相結閤。本書涉及瞭現代計算機圖形學課程幾乎所有的主要內容, 涵蓋瞭交互式圖形編程、 三維可編程繪製流水綫、 變換與觀察、 光照與明暗繪製、 麯綫麯麵建模等基本的計算機圖形學內容以及離散技術、 層級建模、 過程建模、 光綫跟蹤、 並行繪製和體繪製等高級內容。
  內容編排和組織獨具特色, 綜閤瞭知識性和實用性。本書采用瞭“自頂嚮下”和麵嚮著色器編程的方法, 使學生能既使用WebGL和JavaScript迅速地編寫自己的交互式三維Web圖形應用程序, 又能係統地掌握計算機圖形學的基本原理、 方法和技術。
  本書作者結閤自己在計算機圖形學領域多年的教學和科研成果, 為本書提供瞭大量的經典示例程序、 豐富的插圖、 彩圖和習題, 並在每章後麵提供瞭最新的建議閱讀資料, 為進一步加深和擴展讀者對有關內容的理解提供瞭有力支持。
  本書既不乏經典理論, 又側重近幾年計算機圖形學發展的最新成果。本書第七版中新增的某些技術是最近的文獻中齣現的新技術。為瞭及時反映計算機圖形學的發展現狀, 本書對第六版中的某些章節進行瞭調整, 並增刪瞭相關內容:
  將第六版中有關輸入和交互的內容集中起來作為獨立的章節, 即本書的第3章; 增加瞭有關離屏繪製、 繪製到紋理、 基於Agent建模等內容。
  所有的應用程序采用WebGL技術標準, WebGL應用程序包含三種語言: HTML5、 JavaScript和OpenGL著色器語言, 雖然第七版中的許多示例程序的輸齣結果與以前的版本相同, 但代碼完全不同。
  包含瞭一個高效的矩陣-嚮量工具包。
  本書原版是國外諸多大學采用的一本經典的計算機圖形學教材, 譯者甚感榮幸再次承接瞭本書最新版本的翻譯工作。為瞭確保譯文的質量, 譯者和校對人員花費瞭大量時間對譯文進行認真的校對和統稿。對於原文中顯而易見的錯誤, 譯者在譯文中直接進行瞭更正, 而對於原文中可能有誤的地方, 譯文中均以“譯者注”的形式做瞭標注, 以供讀者參照。
  本書的翻譯得到瞭很多人的幫助與參與, 在此衷心感謝為本書翻譯付齣努力的每一個人!參加本書翻譯的人員主要有: 張榮華、 薑麗梅、 邵緒強、 馬玉梅、 李繼榮、 王藍婧, 王新穎也參與瞭本書的翻譯和校對工作, 張榮華和李繼榮參與瞭全書的統稿與審校。在此感謝本書第七版的所有譯者!
  譯者在翻譯過程中雖然力求準確地反映原著內容, 但由於自身的知識局限性, 譯文中難免有不妥之處, 謹嚮原書作者和讀者錶示歉意, 並敬請讀者批評指正。
  華北電力大學計算機係  張榮華  2016年3月於保定
  前  言
  本書是計算機圖形學入門教材, 重點介紹應用程序的編寫。本書於1997年首次齣版, 第一版在使用OpenGL和自頂嚮下的方法上多多少少是一場革命。在接下來的16年中, 發行瞭六個版本, 大多數計算機圖形學概論課以及幾乎所有的教科書都采用瞭本書的方法。
  本書的第六版反映瞭主要的圖形硬件升級引起的重大圖形軟件變化。特彆地, 第六版是完全基於著色器的, 可以使讀者創建完全利用現代GPU性能的應用程序。我們注意到這些改變也被包括在OpenGL ES 2.0中, 可以用來為嵌入式係統和便攜式設備開發應用程序, 例如手機和平闆電腦, 以及WebGL的JavaScript實現。當初, 通過HTML5支持WebGL的Web瀏覽器齣現的時候, 我們並沒有預料到會對WebGL産生如此大的興趣。
  當我們繼續編寫書籍, 講授SIGGRAPH課程以及從事其他圖形學相關活動的時候, 我們開始意識到對WebGL逐漸産生的興趣。WebGL的應用如今非常普遍, 包括最近智能手機上的一些程序。雖然WebGL缺少瞭一些最新版OpenGL的高級功能, 但是其與HTML5的整閤開闢瞭大量新的應用領域。作為一個額外的好處, 我們發現WebGL比桌麵版OpenGL更適閤講授計算機圖形學。因此, 我們決定使用WebGL作為編程語言編寫本書的第七版。我們相信第七版也會像其他版本一樣帶來巨大變革。
  第七版新增內容
  ● 全書使用瞭WebGL
  ● 所有的代碼使用JavaScript編寫
  ● 所有的代碼在近期的Web瀏覽器上運行
  ● 增加瞭一章關於交互的內容
  ● 增加瞭關於繪製到紋理的內容
  ● 增加瞭關於顯示網格的內容
  ● 包含瞭一個高效的矩陣-嚮量工具包
  ● 增加瞭基於Agent建模的介紹
  自頂嚮下的方法
  圖形學的新進展以及本書前六個版本的成功一直鞭策著我們堅持采用自頂嚮下的、 麵嚮程序設計的方法來介紹計算機圖形學。雖然許多計算機科學與工程係現在開設瞭多門計算機圖形學課程, 但是大多數學生隻選修一門。在學生們學習瞭程序設計、 數據結構、 算法、 軟件工程和基礎數學以後給他們安排一門圖形學課程, 應允許教師以內容充實並且有趣的方式按上述已學課程來組織計算機圖形學課程, 我們希望這些學生學習這門課程時盡可能早地編寫齣三維應用程序。底層的算法, 例如繪製綫段或者填充多邊形, 可以在學生們編寫瞭圖形程序之後再考慮。
  當被問到“為什麼講授編程”這個問題時, 計算機教育的先驅John Kemeny曾經把自頂嚮下的編程方法與我們熟悉的汽車來類比: 你沒必要知道汽車發動機罩下麵是什麼, 但是如果知道內部的工作原理, 就會去駕駛汽車而不是坐在汽車後座上。同樣的類比適用於講授計算機圖形學的方法。第一種方法(算法的方法)是把汽車工作原理的方方麵麵都交代清楚: 發動機、 傳動裝置、 燃燒過程等。第二種方法(概覽的方法)是雇一名司機, 自己坐在後麵觀光。第三種方法(本書采用的編程方法)是教會你如何駕駛並把汽車開到你想要去的地方, 正如一句過時的租賃廣告詞說的那樣: “讓我們把你放在駕駛員的位子上去。”
  使用WebGL和JavaScript編程
  當本書的第一作者Edward Angel在30年前開始講授計算機圖形學的時候, 當時以麵嚮編程的方式講授這門課程並編寫相應教材的最大障礙是缺乏一個廣泛接受的圖形庫或者應用程序編程接口(API)。遇到的睏難包括: 高成本、 可用性受限、 缺乏通用性以及高復雜性

《WebGL 交互式計算機圖形學》 本書是一本麵嚮計算機圖形學入門者的權威指南,深入淺齣地介紹瞭構建和渲染交互式三維場景的核心概念和技術。通過融閤理論知識與實踐應用,本書為讀者提供瞭一個堅實的學習平颱,使其能夠掌握創建引人入勝的圖形體驗的必備技能。 核心內容與學習路徑: 本書從基礎的數學原理和嚮量操作開始,逐步引導讀者進入計算機圖形的複雜世界。核心內容涵蓋瞭以下幾個關鍵領域: 幾何學與數學基礎: 深入探討瞭三維空間中的嚮量、矩陣、變換(平移、鏇轉、縮放)、投影以及光線追蹤等基礎概念,這些是理解和操作三維模型的基石。 渲染管線與著色器: 全麵解析瞭現代實時渲染管線的每一個階段,從幾何體的處理到像素的最終輸齣。重點講解瞭可編程管線,尤其是可編程著色器(GLSL)在實現複雜視覺效果中的關鍵作用。 模型與場景構建: 介紹瞭如何創建、載入和組織三維模型,包括多邊形網格、材質、紋理映射等。同時,探討瞭場景圖的結構和管理,以構建複雜的虛擬環境。 光照與陰影: 闡述瞭各種經典的光照模型,如朗伯模型、馮氏模型、布林模型等,以及如何利用這些模型模擬真實世界中的光線效果。進一步,深入探討瞭陰影的生成技術,從簡單的投影陰影到更複雜的陰影貼圖。 紋理與材質: 詳細講解瞭紋理映射的原理和應用,包括不同類型的紋理(顏色、法線、高光等)以及它們如何賦予模型豐富的細節和真實感。同時,討論瞭材質屬性的設定,以控製物體的錶麵特性。 交互式技術: 著重於如何為用戶提供動態和響應式的體驗。涵蓋瞭相機控製、用戶輸入處理、動畫技術、碰撞檢測以及基本的物理模擬等,這些都是構建沉浸式應用所必需的。 WebGL 實踐: 本書以 WebGL 為主要實現框架,通過大量的代碼示例,演示瞭如何將理論知識應用於實際的 Web 環境。讀者將學習如何使用 WebGL API 來創建和管理渲染上下文、緩衝區、著色器程序,以及如何高效地將數據發送到 GPU。 進階主題: 根據讀者的掌握情況,本書還會觸及一些進階主題,例如後處理效果(如景深、運動模糊)、粒子係統、計算著色器(若篇幅允許)等,為讀者打開更廣闊的探索空間。 本書的獨特優勢: 自頂嚮下的教學方法: 本書採用自頂嚮下的教學策略,首先介紹高層次的總體概念和目標,然後逐步深入到具體的技術細節。這種方法有助於讀者建立整體性的理解,避免在細枝末節中迷失方嚮。 豐富的實例與程式碼: 書中包含瞭大量經過精心設計和驗證的 WebGL 程式碼範例,這些範例不僅清晰地展示瞭各項技術的實現,而且可以直接用於讀者自己的項目中,大大縮短瞭學習麯線。 理論與實踐的完美結閤: 本書嚴謹地闡述瞭背後的數學原理和算法,同時通過實際的 WebGL 應用,將抽象的概念具體化。這種結閤確保瞭讀者不僅知其然,更知其所以然。 麵嚮 Web 的現代方法: WebGL 是當前 Web 上實現三維圖形最主流的技術。本書基於 WebGL,讓讀者能夠掌握在現代 Web 應用中創建高性能、交互式圖形的能力。 循序漸進的難度設計: 從最基礎的概念開始,逐步引入更複雜的技術,確保瞭不同背景的讀者都能夠順利學習。書中的練習和挑戰也旨在鞏固理解並鼓勵進一步探索。 適閤的讀者群體: 本書適閤以下人群: 計算機科學專業的學生: 為學生提供紮實的計算機圖形學理論基礎和 WebGL 實踐經驗,是完成課程作業和畢業設計的理想參考。 軟件開發者: 希望將三維圖形技術集成到 Web 應用、遊戲開發、數據可視化、虛擬現實(VR)/增強現實(AR)等領域的開發者。 對計算機圖形學感興趣的初學者: 即使沒有深厚的圖形學背景,隻要具備一定的編程基礎,也能通過本書逐步掌握相關知識。 希望學習 WebGL 的人士: 本書提供瞭一個全麵且實踐導嚮的學習路徑,幫助您精通 WebGL 的方方麵麵。 通過學習《WebGL 交互式計算機圖形學》,您將不僅理解計算機圖形學的核心原理,更能掌握利用 WebGL 在 Web 瀏覽器中構建令人驚嘆的交互式三維世界的強大能力。

用戶評價

評分

這本書的封麵設計就足夠吸引人——深邃的藍色背景,輔以閃爍著三維幾何圖形的霓虹光芒,立刻勾勒齣計算機圖形學的神秘與活力。我迫不及待地翻開它,書的紙張質感也相當不錯,印刷清晰,即使是復雜的圖示也能一覽無餘。我一直對視覺藝術和技術如何結閤充滿好奇,而計算機圖形學無疑是其中的核心。我一直夢想著能夠親手創造齣那些令人驚嘆的3D模型和逼真的動畫,但入門的技術門檻似乎總是高不可攀。在瀏覽瞭市麵上眾多的書籍後,這本書的名字——《交互式計算機圖形學:基於WebGL的自頂嚮下方法》(第七版)——引起瞭我的極大興趣。WebGL這個詞組讓我眼前一亮,它意味著我可以拋開那些龐大復雜的原生圖形庫,直接在瀏覽器中進行實踐,這對於我這樣喜歡快速迭代和即時反饋的學習者來說,簡直是福音。

評分

在學習過程中,我常常會思考,為什麼有些圖形看起來如此真實,而有些則顯得僵硬呆闆。這本書通過對光照模型、材質屬性、紋理映射等概念的深入講解,為我揭示瞭其中的奧秘。特彆是關於PBR(基於物理的渲染)的介紹,讓我對如何創建逼真的視覺效果有瞭全新的認識。它不再是簡單的顔色和明暗的疊加,而是模擬瞭光綫與物體錶麵真實交互的物理過程。雖然初次接觸時會覺得信息量很大,但書中提供的代碼示例和步驟化的講解,讓我能夠一步步地去實踐和理解。我嘗試著調整不同的光照參數,觀察場景的變化,這種親身實踐的體驗,讓書本上的知識變得鮮活起來。

評分

在閱讀本書的過程中,我常常會發現自己能夠將書本上的理論知識與實際的Web開發經驗相結閤。例如,如何將WebGL渲染的圖像嵌入到HTML頁麵中,如何利用JavaScript與WebGL進行交互,以及如何優化Web應用的性能等等。本書的“自頂嚮下”方法,也恰好呼應瞭Web開發的整體思路——從用戶界麵到後端邏輯,再到中間層的技術實現。我開始將WebGL視為Web開發工具箱中一個強大而有趣的補充,它能夠為我的Web應用帶來前所未有的視覺錶現力。

評分

本書的另一個亮點在於其對“交互性”的強調。計算機圖形學並非隻是靜態的圖像生成,更多時候是需要用戶能夠與圖形進行實時互動,例如鏇轉模型、縮放視角、改變參數等等。本書在講解過程中,始終圍繞著如何實現這些交互功能展開。從鼠標事件的處理,到鍵盤輸入的響應,再到復雜的相機控製,都有詳盡的介紹和代碼示例。這讓我明白,一個優秀的圖形應用程序,不僅僅是視覺上的震撼,更重要的是用戶體驗的流暢和直觀。我也開始嘗試著將自己學習到的知識,應用到一些簡單的交互式應用中,比如一個可以隨意拖拽和縮放的3D模型展示器。

評分

WebGL作為核心技術,在本書中的地位舉足輕重。它不像傳統的圖形API那樣需要安裝龐大的開發環境,而是直接運行在瀏覽器中,這極大地降低瞭學習和實驗的門檻。我可以在任何一颱連接瞭網絡的電腦上,打開瀏覽器,就能開始我的圖形學之旅。本書對WebGL的講解,從最基礎的Canvas API到更高級的著裝器(shaders)編程,都進行瞭細緻的闡述。特彆是關於GLSL(OpenGL Shading Language)的介紹,讓我能夠開始編寫自己的著色器程序,從而對圖形的渲染過程有瞭更深層次的控製。這種能夠直接操作GPU的體驗,是前所未有的。

評分

第七版相較於之前的版本,一定在技術和內容上有所更新,這對於我這樣的讀者來說至關重要。計算機圖形學領域技術發展迅猛,如果不及時更新,很多內容可能就會過時。我非常期待本書能涵蓋最新的WebGL標準,以及相關的圖形學技術和最佳實踐。畢竟,一個好的技術教程,應該能夠引領我走嚮未來,而不是停留在過去。我對書中可能新增的關於性能優化、跨平颱兼容性、或者與最新Web技術(如WebGPU)的結閤等內容充滿瞭期待,這些都是在實際開發中非常重要的考量因素。

評分

這本書的“自頂嚮下”方法論,在我看來,是其最核心的價值所在。這意味著它不會一開始就陷入晦澀的數學公式和底層實現細節,而是先從宏觀的概念入手,比如我們最終想要實現的效果——一個動態的三維場景,或者一段流暢的動畫。然後,再逐步深入到實現這些效果所需的具體技術和原理。這種循序漸進的學習路徑,對於初學者來說,無疑大大降低瞭學習的難度,也更容易建立起對整個計算機圖形學領域的整體認知。我喜歡這種“先看到結果,再理解過程”的學習方式,它能讓我保持學習的動力,並不斷驗證自己的理解。當我看到書中通過幾行簡單的代碼就能渲染齣一個基本的三維立方體時,那種成就感是難以言喻的。

評分

本書的語言風格也令人印象深刻。它不像一些技術書籍那樣枯燥乏味,而是充滿瞭啓發性和引導性。作者在解釋每一個概念時,都會盡量用貼近生活的例子或者生動的比喻來幫助讀者理解,即使是那些抽象的數學原理,也能被化繁為簡。我尤其欣賞作者在闡述一些關鍵算法或技術時,會穿插一些曆史背景或者發展脈絡的介紹,這不僅能讓我瞭解到這些技術是如何演進至今的,更能幫助我理解它們的設計哲學和優缺點。書中的插圖和圖解也做得非常精美,很多時候,一張精心繪製的圖示比長篇大論的文字更能直觀地解釋一個復雜的概念,這一點在計算機圖形學領域尤為重要。

評分

雖然書中內容龐雜,但我從未感到不知所措。這得益於作者精心的組織和編排。每一個章節都像一個獨立的模塊,既可以獨立學習,又與其他章節緊密相連,形成一個完整的知識體係。當我遇到某個難以理解的概念時,可以追溯到之前的章節迴顧,或者跳到後麵的章節預習,這種靈活的學習方式,讓我能夠根據自己的節奏來掌握內容。而且,書中提供的源代碼示例,更是學習過程中不可或缺的寶貴資源,它們讓我能夠直接運行、修改和調試,從而深入理解每一個代碼片段的含義和作用。

評分

總而言之,這本書在我心中不僅僅是一本技術手冊,更像是一位循循善誘的老師,一位充滿智慧的夥伴。它點燃瞭我對計算機圖形學的熱情,也為我打開瞭一扇通往三維世界的大門。我相信,通過這本書的學習,我不僅能夠掌握紮實的WebGL和計算機圖形學知識,更重要的是,我能夠培養齣獨立解決問題、創新應用的能力。我迫不及待地想繼續深入下去,去探索更多圖形學的奧秘,去創造屬於自己的精彩三維世界。這本書,無疑是我這段學習旅程中最寶貴的財富。

評分

挺好的

評分

挺好的

評分

評分

不錯,講得很詳細

評分

很不錯的,推薦使用的

評分

0.0

評分

不錯。

評分

感覺很不錯,打算學習學習

評分

圖形學的一本好書,值得參考

相關圖書

本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 windowsfront.com All Rights Reserved. 靜流書站 版權所有