你說你的家,在地圖上看不到的地方;
我卻愿陪你,去尋找故鄉的月亮。
你說你的夢,或許只能夠隨便想一想;
我卻要和你一起,把彩虹掛在夢上。
我希望,每一顆心靈的窗外,都有溪流在歌唱;
我希望,每一雙眼睛的景象,都有鮮花的芳香;
我希望,每一秒走過的時光,都有幸福在流淌;
我希望,每一次我們的牽手,都穿著春天衣裳。
摘要: 三角網格是頂點和三角形的列表。三角網格的一系列基本操作都是逐點和逐三角形應用基本操作的結果。最明顯的,渲染和轉換都屬于這種操作。為渲染三角網格,我們逐個三角形渲染,如要向三角網格應用轉換,如旋轉和縮放等,應逐頂點進行。
當兩個或更多頂點(也許有誤差)時,將它們焊接在一起是有益處的。更加準確地說,刪除其余的,只剩一個。例如,我們要焊接圖14.9中的A和B,有兩個步驟:
(1)步驟1,掃描三角形列表,將對B的引用全部替換成對A的引用。
(2)步驟2,現在B是孤立點,將它從頂點列表中刪除。
閱讀全文
摘要: 三角網可在三角形或頂點級保存額外信息。
紋理映射是將位圖(稱作"紋理圖"或簡稱"紋理")貼到多邊形表面的過程。這里只給出一個高度簡化的解釋:我們希望將2D紋理貼到多邊形表面上,同時考慮多邊形在攝像機空間的方向。對多邊形中每個需要渲染的像素都要計算2D紋理映射坐標,這些坐標用以索引紋理圖,從而為相應像素著色。
通常,在頂點保存紋理映射坐標,三角形面中其余各點的坐標通過插值進行計算。
閱讀全文
摘要: 三角帶是一個三角形列表,其中每個三角形都與前一個三角形共享一邊,圖14.2顯示了一個三角帶的例子。
注意頂點列出的順序使得每三個連續的點都能構成一個三角形。例如:
(1)頂點1、2、3構成第一個三角形。
(2)頂點2、3、4構成第二個三角形。
(3)頂點3、4、5構成第三個三角形。
閱讀全文
摘要: 最簡單的情形,多邊形網格不過是一個多邊形列表;三角網格就是全部由三角形組成的多邊形網格。多邊形和三角網格在圖形學和建模中廣泛使用,用來模擬復雜物體的表面,如建筑、車輛、人體,當然還有茶壺等。
當然,任意多邊形網格都能轉換成三角網格,三角網格以其簡單性而吸引人,相對于一般多邊形網格,許多操作對三角網格更容易。
閱讀全文
摘要: 考慮2D中的直線L,L由所有滿足p . n = d的點p組成。
其中n是單位向量,我們的目標是對任意點q,找出直線L上距q距離最短的點q',它是q投影到L上的結果。讓我們畫一條經過q平行于L的輔助線 M,如圖13.1所示。設nM和dM分別為直線方程的法向量和d值。因為L和M平行,所以它們的法向量相等:nM=n。又因為q在M上,所以dM為 q.n。
閱讀全文
摘要: 前面都提到了cAABB3類,它代表的是3D中的軸對齊矩形邊界框(AABB),這里給出類的完整定義和實現。
閱讀全文
摘要: 檢測兩個靜止AABB的相交性是很簡單的,只需要在每一維上單獨檢查它們的重合程度即可。如果在所有維上都沒有重合,那么這兩個AABB就不會相交。intersectAABBs()就是用這項技術來實現的。
AABB間的動態測試稍微復雜一些。考慮一個由極值點smin和smax定義的靜止AABB和一個由mmin和mmax定義的運動AABB。運動AABB的運動由向量d給出,t從0變換到1。
閱讀全文
摘要: 球和平面的靜態檢測相對容易一些,可以用公式12.14來計算球心到平面的距離。如果距離小于球半徑,那么它們相交。實際上還能作一種更靈活的檢測,這種檢測把相交分為球完全在平面正面,完全在背面,跨平面等三種情況。仔細分析程序清單13.2:
閱讀全文
摘要: 考慮3D中由極值點pmin和pmax定義的AABB和以標準方式定義的平面:p . n = d,其中n為單位向量,平面與AABB必須處于相同的坐標系中。
一種簡單的靜態測試方法是,計算矩形邊界框頂點和n的點積,通過比較點積和d,來檢測邊界框的頂點是否完全在平面的一邊,或是在另外一邊。如果所有點積都大于d,那么整個邊界框就在平面的正面所指的一側;如果所有的點積都小于d,那么整個邊界框就在平面的反面所指的一側。
閱讀全文