
V.斯科特·戈登 約翰·克萊維吉
本書以OpenGL和C++作爲工具,介紹計算機圖形學編程的相關內容。全書從圖形編程的基礎和準備工作講起,介紹了OpenGL圖像管線、3D模型、紋理貼圖、光照、陰影、天空和背景、增強表面細節、曲面細分、幾何着色器、水面模擬、光線追蹤等計算機圖形學編程技術。本書各章配備了不同形式的習題,供讀者鞏固所學知識。 本書適合作爲高等院校計算機科學專業的計算機圖形編程課程的教材或輔導書,也適合對計算機圖形編程感興趣的讀者自學。
3D空間中的點可以通過使用形如(2, 8, −3)的符號列出x、y、z的值來表示。不過,如果用齊次座標—— 一種在19世紀初首次描述的表示法來表示點會更有用。在每個點的齊次座標有4個值,前3個值表示x、y和z,第四個值w總是非零值,通常爲1。因此,我們會將之前的點表示爲(2, 8, −3, 1)。正如我們稍後將要看到的,齊次座標將會使我們的圖形計算更高效。 4×4矩陣與4×4矩陣相乘如下: [插圖] [插圖] 矩陣相乘也經常叫作合併。稍後我們會看到,它可以用於將一系列矩陣變換合併成一個矩陣。這種合併矩陣變換的能力來自矩陣乘法的結合律。 考慮如下運算序列: [插圖] 我們將點Point與Matrix3相乘,之後將結果與Matrix2相乘,最後將結果與Matrix1相乘,其結果是一個新的點NewPoint。結合律確保了該計算與如下計算結果相同: [插圖] 我們先將3個矩陣相乘,建立Matrix1、Matrix2、Matrix3的連接。如果我們稱其爲MatrixC,我們就可以將之前的運算寫作: [插圖] 我們在第4章會看到這麼做的好處。我們需要經常將相同的一系列矩陣變換應用到場景中的每個點上。通過預先一次計算好這些矩陣的合併,就可以成倍減少總的矩陣運算量。
買了實體書看完了,跟着書上的案例敲了一遍以後入門還是挺容易的,知道了着色器,模型,紋理,光照材質,以及一些視覺效果的原理。感覺要進一步學習還需要配合其他書一起看
隨實例學習,不過書中存在一些印刷代碼錯誤、但是隨書附贈代碼正確的問題,建議配合原書附贈代碼使用。