/GAMES103

拿來放成果的repository

Primary LanguageC#MIT LicenseMIT

GAMES103:基于物理的计算机动画入门

拿來放成果的repository

真的好快樂喔哈哈哈哈

剛體**

使用Rigid_Bunny.cs腳本在unity中運行的結果。

實現基礎的碰撞檢測與旋轉角速度計算。

_2022_04_19_08_14_45_672.mp4

使用Rigid_Bunny_by_Shape_Matching.cs腳本在unity中運行的結果。

從影片中可以明顯看出來這樣實現的兔子看起來會比較軟一點,陷進牆內的部分越多,獲得的反方向加速度越高,缺點是體積較小的部分容易有明顯的下陷,像是影片中就能夠明顯的看到兔子尾巴和耳朵陷入地板的部分。

_2022_04_19_08_13_34_371.mp4

布料模擬

實時布料模擬目前主流方法有兩種,一種是基於隱式積分法進行模擬,一種是基於PBD,隱式積分法我還沒有念到很懂,可能之後實現。

Position Based Dynamics (PBD)

程式碼主體在PBD_model.cs

成果展示

image

_2022_04_19_10_56_07_330.mp4

彈性體模擬

彈性體我覺得是很難的領域,這部分就跟材料力學比較有關係,程式碼寫起來就在計算 Ic 和 IIc,主流的幾種彈性體模擬方法可以看以下的影片展示。

1.online-video-cutter.com.mp4

Descent Methods for Elastic Body Simulation on the GPU (SIGGRAPH Asia 2016)

實現我採用最簡單的StVK方法,打算等流體寫完之後再來挑戰看看 Neo-Hookean,畢竟 StVK 雖然方便,但缺點真的太大了,可從下圖看到 StVK 的抵抗力在過了閥值之後,反而會減小,甚至會變成負的導致模型崩潰,實際跑的過程中不能夠給模型施加太大的力,有點麻煩。

主要程式碼在FVM.cs,採用的方法是有限體積的做法進行模擬。

image Irving et al. 2004. Invertible Finite Elements For Robust Simulation of Large Deformation. SCA

image

(後續補充:其實按照這個做,把程式碼內的StVK方法替換掉就好了,其他部分都不用管)

成果展示

_2022_04_21_09_29_15_944_Trim.mp4

流體模擬

過程中有點像下雨的部分是加水的過程(讓水位增高),程式碼主體在wave_motion.cs

成果展示

_2022_04_23_13_45_56_470.mp4

參考資料與模型來源

  • Games103 : 基於物理的計算機動畫入門,王華民(俄亥俄州立大學)
  • Games202 : 高質量實時渲染,閆令琪(加州大學聖塔芭芭拉分校)
  • 剛體模擬相關論文 :
  1. Muller et al. 2005. Meshless Deformations Based on Shape Matching. TOG (SIGGRAPH).
  • 布料模擬相關論文 :
  1. Baraff and Witkin. 1998. Large Step in Cloth Simulation. SIGGRAPH.
  2. Bridson et al. 2003. Simulation of Clothing with Folds and Wrinkles. SCA.
  3. Bergou et al. 2006. A Quadratic Bending Model for Inextensible Surfaces. SCA.
  4. English and Bridson. 2008. Animating Developable Surfaces Using Nonconforming Elements. SIGGRAPH. (optional)
  • 彈性體模擬相關論文 :
  1. Irving et al. 2004. Invertible Finite Elements For Robust Simulation of Large Deformation. SCA
  2. Wang. 2016. Descent Methods for Elastic Body Simulation on the GPU. TOG (SIGGRAPH Asia).
  3. Xu et al. 2015. Nonlinear Material Design Using Principal Stretches. TOG (SIGGRAPH).
  • 流體模擬相關論文 :
  1. Kass and Miller. 1990. Rapid, Stable Fluid Dynamics for Computer Graphics. Computer Graphics.
  2. Jos Stam. 1999. Stable Fluids. TOG (SIGGRAPH).

正在實現的SPH

念完SPH了,好像還行,先把筆記丟上來好了,之後實作出來再撤掉。

image image

實作計算上對粒子位置進行迭代的計算順序:

image

不過粒子最終還要把他轉換成三角形,才能透過顯卡進行渲染,這部分可能就不做了,知識盲區 image