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