為什麼計算機圖形不用四面體做基本圖元?

時間 2021-05-07 02:34:05

1樓:W Anonymous

從頭梳理一下

而Physics Mesh是所謂的物理網格/結構,這種是為了進行物理模擬而製作的網格(注:這個物理模擬網格和collision mesh,也就是碰撞網格,不是乙個概念,有時間可以說一下碰撞網格)。想要進行乙個3d物體(solid rigid/soft body)的自變形(deformation)的模擬的話,物理網格就需要考慮3d物體的內部結構了——其實也就是對3d物體內部進行建模而已。

Physics Mesh modeling目前主要也就分為幾種:

一種是目前最常見最普遍也是最早出現的(大約在上世紀80年代),Particle Spring system,這種就是基於胡克定律用質點和阻尼系統構建的體系,內部空間用隨機或者有序分布的質點(particle)填充,particle之間的互動和影響是基於spring完成的,這是乙個比較簡單的ode系統,但是其中的time integration也比較麻煩因為乙個不小心整個system就容易boom(over-elastic)。

Particle Spring System目前主要的應用就是cloth simulation(衣料模擬),還有很多手術模擬的人類組織也是用這個模型,這個模型缺點就是沒法capture 3d物體的空間屬性,因為particle是無限小的,particle和particle之間沒有任何填充,只靠Spring來承擔互動,所以PSS大量應用都是衣料這種沒有厚度只有長寬的偽3d物體(想象一張有3個維度自由的2d紙張)。目前各種遊戲裡大量的衣料模擬基本底層都是particle Spring system,只不過引數和Spring的構建不一樣罷了。

Particle Spring System之後(大概2023年左右,不太記得了)出現了PBD, Position-Based Dynamics。PBD本質上來說和PSS也差不多,也是用particle來填充空間,但是用constraint代替了Spring並且iteration方法也變化了。好處就是直接跳過了解ode和time integration變成了如何satisfy 所有constraint。

PBD對3d物體的空間屬性描述得就比較好了,但本質上還是只模擬了物體的彈性變形(elastic deformation)而對plastic deformation基本沒有太多貢獻(這個觀點我自己持保留意見)。

前面囉嗦了一堆突然感覺沒什麼用(大概只是說明為什麼這些沒有用四面體),那麼下面終於有乙個用到四面體的了,前面我看到有個同學也提到了,那就是有限元分析法,Finite Element Method (FEM)。

FEM其實在工程和結構上已經應用了不知道多少年(憑藉記憶大概起源於上世紀50年代?)但是被應用到計算機圖形裡也是最近十幾年的事情,沒有別的,就是因為運算量太大了。不是ode而是pde了(而且我一見到tensor這個東西就頭大)。

FEM本質上就是物體stress-strain的受力分析,應力和壓力的關係,目前FEM可以說是最精確的方法(不然不會應用在實際工程裡),但是在圖形學裡的應用比較窄,很多可能用在視覺特效上,所謂的offline simulation。這種模擬就是大片裡的視覺特效,大概多台電腦運算幾個小時甚至幾天才畫出一幀的那種效率……對目前以實時渲染(real-time rendering)為主體的訴求貢獻不是很大,但是很多被簡化過的FEM也有曾經被應用在遊戲場景裡的,但都是很小部分的物體(某星球大戰主題的遊戲裡就出現過)。

FEM的建模基礎就是tetrahedron(四面體)了,因為要全面分析stress-strain,所以內部細分的基本元必須在空間上有實際接觸,這也是為什麼要引入tensor(頭大)。

以上是從Solid Object Physics Simulation角度回答了一下這個問題……答案就是FEM是用把乙個完整物體離散成一堆四面體做為基本元的,但是這個方法在實時模擬中暫時還不是大範圍模擬的主流,主要受限於複雜的計算和分析。

以後想起來再補?

2樓:Thomas Hou

為了價效比,gpu技能樹點的是三角形。早期有曲面NURBS,以及Mataball等,都無法很好的硬體加速或很好的價效比實現,無法進入大眾。但建模軟體還是都有這些工具集的,只是到消費層,都轉為gpu優化的tri-mesh了,然後渲染。

3樓:Milo Yip

一般渲染只考慮表面而不是體積,但如果考慮到內部的散射,甚至不均勻密度,就需要體積資訊。事實上是有四面體網格(tetrahedral mesh)這種體積表示方式。

把多邊形(polygon)剖分成三角形網格稱為三角化(triangulation),類似地把多面體(polyhedron)剖分成四面體網格稱為四面體化(tetrahedralization)。

為什麼正四面體頂點在底面的投影在底面三角形的中心呢?

劉醉白 下面我給出兩種方法,注意到正三角形的中心其實是垂心,也是外心,分別證明是這兩個即可。第一種方法 引理1.如果四面體的對稜互相垂直,那麼任一頂點到所對的底面三角形的投影是該三角形的垂心。注 互為對稜的兩條稜沒有公共頂點,如四面體A BCD的三對對稜是AB和CD,AC和BD,AD和BC。證明 過...

為什麼金剛石原子級結構是正四面體,而晶體是正八面體?

因為在金剛石的晶胞中存在4 1螺旋軸吧,然後這些螺旋軸在巨集觀晶體中退化為4重旋轉軸,在Td點群的基礎上增加4重旋轉軸,就會得到Oh點群,然後正八面體是Oh點群的乙個代表性的形狀 不請自來。在固態化學裡乙個材料的基本單位是晶胞而不是分子。因此即便很多材料原子之間以共價鍵相連,我們也不太在意它們的分子...

計算機圖形學為什麼這麼難學?

akkaze 鄭安坤 我覺得這些還好吧 二維圖形的抗鋸齒和快速填充比這更難 三維的遮擋演算法和光照模型比這個難多了 計算機圖形學雖難,但是真的是門好課啊 計算機的圖形學涉及很多的內容,有基礎的原理,包括一些演算法,以及巨集觀上的圖形處理的pipeline,所有的一切匯集到一起就是GPU的體系結構。現...