課程回顧
這是課程7、8、9的上課內容:
本節課內容:
- 幾何基礎
- 幾何實例
- 幾何的表示法
幾何應用舉例
通過幾個例子開啟本節課的總結,下面主要列舉4個例子:
- 下圖中是一些不同幾何形狀的杯子,會涉及如何設計出這些形狀;
- 下圖中的汽車引擎蓋是非常光滑的曲面,會涉及如何用計算機模擬出如此光滑的面;
- 下圖中形狀各異的齒輪,對於這些復雜的幾何構造如何表示;
- 下圖中是一個藍衣女子,會涉及如何表示薄紗不同厚度攤開與重疊時,不同的透明度表示問題;
下面將介紹幾何表示方法:
主要分為implicit(隱式)
和Explicit(顯式)
兩大類方法,以下是方法概覽:
一、Implicit(隱式)表示法
通過告訴點關系,對點進行歸類,從而判斷幾何關系(是否在幾何表面等關系)。
- 優點:很容易判斷幾何關系(帶入隱式即可算出。)
- 缺點:但是很難從隱式關系式看出幾何形狀。
下面將介紹 5 種隱式表示方法:
隱式表示方法概覽:
( 一 )代數曲面法(Algebraic Surfaces)
這種方法,主要是很難從數學式子看出形狀,並且很難表示復雜的形狀。
( 二 )構造實體幾何法(Constructive Solid Geometry )
這種方法通過使用簡單額幾何體進行Bool運算,就可構造出復雜的形狀。
( 三 )距離函數法(Distance Functions)
通過定義一個距離函數,表示兩個物體的距離關系。(不直接描述表面,而是描述一個點到表面的最近距離。),由此通過最小距離判斷出在幾何體的表面上、外、內關系(加入對應數值0、+、-)。
舉例:
想通過A、B得到移動融合運動邊界(假設划線為黑色,空白為白色),但是直接做出的結果\(blend(A,B)\)得出的顏色將會是黑、灰、白(AB重合區域、B-A區域、空白區域)。這並不是我們想要得到的黑白融合結果。
於是,使用有向距離函數(Signed-distance Function,簡稱SDF),通過\(-,0,+\)表示關系,再將\(SDF(A)\)與\(SDF(B)\)做融合,最后將其還原,即可得到\(blend(SDF(A),SDF(B))\)中0為分割線,左邊偉黑色,右邊為白色的理想結果。
融合距離函數有很多應用,比如下圖,這種方法的表示能力極強,可清楚看見瓢蟲、蘑菇草相互融合的畫面。
( 四 )水平集法(Level Set Methods)
這種方法與距離函數方法類似,找臨界面等於0處(類似等高線),在二維、三維空間中均可使用,找出\(f(x)\)值相等的所有點即可找出一個平面。
應用舉例:模擬水圈形成
( 五 )分型法(Fractals)
“分型”是指一個大物體由一些形狀相同的小物體組成,小物體又由一些形狀相同的更小物體組成,即“自相似”(類似遞歸思想)。
二、Explicit(顯式)表示法
顯式表示法主要有兩種:
- 將表面上的點表示出來(例如之前的用像素點表示三角形的面)
- 用
參數映射
方法(上圖中,本文主要介紹這種方法)。
其中參數映射方法從式子\(f : \Bbb{R^2} \rightarrow \Bbb{R^3} ; \left(u,v\right) \mapsto \left(x,y,z\right)\),即可將一個二維平面\(\left(u,v\right)\)映射到三維平面\(\left(x,y,z\right)\)中。
它的優缺點和隱式表示法大體可看做相反
- 優點:很容易看出幾何形狀,通過映射關系即可知道。
- 缺點:但是很難從顯式關系式判斷幾何關系
( 一 )點雲表示法(Point Cloud)
不考慮物體是一個表面,用點表示物體。
( 二 )多邊形網格(Polygon Mesh)
( 三 )波前對象文件(The Wavefront Object File)
一個文本文件將構件分塊組織,再構成一個模型。其中對於第二張圖中的下半部分輸出 f 中 5/1/1
中的 '5'指頂點序號,第一個‘1’ 指紋理坐標,第二個‘1’ 指法線。
三、小結
關於顯式和隱式表示法,他們各有不同的優缺點,可根據實際應用場景選擇不同的表示方法。