本書的內容安排如下:
第一章分析計算機硬件和在不同計算機平臺上交互圖形應用程序的設計實現。其中說明了計算機是如何顯示圖像的,以及計算機同用戶的交互。在本章也討論了幾種計算機架構(操作系統(tǒng)),包括MS-DOS, MS-Windows, X-Windows, NeXTStep 和 MacOS。本章同時也討論了軟件移植的問題。
變換,包括投影變換,在第二章中討論。本章說明了計算機在空間中如何處理點集的方法。同時也分析了旋轉、平移和投影等基本變換及其計算機實現方法。
在第三章中,我們討論如何在計算機屏幕上繪制圖元(點、線段和多邊形)。我們將要看到由光柵圖形固有的離散性帶來的問題以及其解決方案。
由于計算機屏幕的大小是有限的,在第四章中,我們分析在屏幕范圍內裁剪圖元的技術。只有虛擬場景中的點才能顯示在屏幕上。同時也考慮了體裁剪技術。
變換、圖元繪制和裁剪都是視處理的基本技術。在第五章,我們考慮兩種不同的視處理方法:從世界到屏幕和從屏幕到世界。
我們要在虛擬世界中顯示的對象通常是非常復雜的,包含了大量圖元。在第六章,我們要討論可能的使用多邊形、簡單曲線或曲面的建模方式。
由于不同圖元組成的對象可能出現遮擋現象,觀察綜合對象的過程變得復雜了起來。在第七章中,我們討論隱面消除算法,該算法使得對象在屏幕上能夠正確地被顯示出來,同時也減輕了計算上的壓力。
為了真實地繪制場景,對觀察者來說,只有幾何結構可見性是不夠的。顏色和照明是真實性的基本原則。在第八章中,我們分析如何在虛擬場景中導入照明。虛擬世界中多個對象的存在對諸如陰影和環(huán)境反射這樣的照明效果帶來了很大的麻煩。我們將要在本章中討論如何在世界到屏幕以及屏幕到世界這兩種視處理過程中對此進行計算。
最后,所有的算法必須以精確的方式在計算機程序中結合起來。在最后一章,我們討論這一步是如何依據模擬虛擬場景的類型而完成的。同時我們也考慮編程范例,其中最引人注目的是面向對象編程,這種方法對3D圖形應用的結構非常適宜。
縱覽全文,我們會看到許多實現特殊運算的算法。由于計算機資源的約束,使得我們要在多個因素中權衡輕重,尤其是圖像的品質和圖像渲染速度。我們經常要強行借助逼近甚至其他完全屬于探索式的解決方案以便在合理的時間中完成計算。
認識到計算機圖形是一項實踐性很強的課題是非常重要的,它的主要目的是能夠使用計算機硬件產生可辨識的圖像。其中涉及了許多領域,從幾何學到線性代數,以及光學和心理學,需要把這些領域中的技術加以改進以適應當前可用的計算機硬件。最后,要提醒大家的是,計算機硬件設備發(fā)展非常迅速,基于此,軟件技術通常也會相應地變化。
總目錄
第一章 硬件接口
1.1 3D應用程序與硬件的交互作用
1.1.1 在計算機屏幕上顯示圖像
1.1.2 事件反應
1.2 使用不同的體系結構
1.2.1 MS-DOS.
1.2.2 MS-Windows.
1.2.3 X11.
1.2.4 NeXTStep.
1.2.5 MacOS.
第二章 3D變換
2.1 歐幾里得空間,自由度和基本變換
2.2 平移
2.3 縮放
2.4 在平面內旋轉
2.5 3D旋轉
2.5.1 坐標系
2.5.2 變換次序
2.6 以矩陣形式表達變換
2.7 投影變換
2.7.1 平行投影
2.7.2 透視投影
2.8 通過定點算法實現變換
2.8.1 整型數表示
2.8.2 定點數運算
2.8.3 定點算法的實現
第三章 2D圖元光柵處理
3.1 光柵化點
3.2 光柵化線段
3.3 光柵化多邊形
3.3.1 光柵化凸多邊形
3.3.2 光柵化凹多邊形
3.4 內插渲染明暗處理的多邊形
3.5 渲染紋理多邊形
3.6 反走樣
第四章 2D和3D裁剪
4.1 2D裁剪策略
4.1.1 點的裁剪
4.1.2 裁剪線段
4.1.3 裁剪多邊形
4.2 3D裁剪策略
第五章 視處理
5.1 從世界到屏幕的方法
5.1.1 視系統(tǒng)參數
5.1.2 多邊形管道
5.1.3 紋理多邊形
5.2 從屏幕到世界的方法
5.2.1 直線方程
5.2.2 平面方程
5.2.3 直線和平面的交叉點
5.2.4 直線和多邊形的交叉點
5.2.5 直線和球的交叉點
5.2.6 尋找合適的交叉點
5.2.7 優(yōu)化光線追蹤
第六章 建模
6.1 線框模型
6.2 多邊形模型
6.3 三次曲線和雙三次曲面
6.4 地形
6.5 體素模型
第七章 隱面消除
7.1 背面剔除算法
7.2 從后到前排序
7.3 順序列表和八叉樹
7.4 入口
7.5 二叉空間分割樹
7.6 Beam樹
7.7 掃描線算法
7.8 Z-buffer算法
第八章 光線
8.1 光線的物理特性與人的感覺
8.2 顏色模擬
8.2.1 非彩色光
8.2.2 顏色模型的三個成分
8.3 照明模擬
8.3.1 環(huán)境照明
8.3.2 漫反射
8.3.3 鏡面反射
8.4 在屏幕到世界中觀察照明
8.5 輻射度
8.6 在世界到屏幕中觀察照明
第九章 構建3-D應用程序的實踐方面
9.1 常規(guī)設計方法
9.1.1 面向對象編程
9.1.2 腳本
9.2 構建工具
9.2.1 OpenGL
9.2.2 Direct3D
9.3 應用程序的構建策略
9.3.1 實體視處理
9.3.2 室內場景視處理
9.3.3 室外場景視處理
附錄
10.1 參考文獻
10.2 常用公式