動畫片中把動物做得毛絨絨的,是不是難度很大?

近期頗受好評的《瘋狂動物城》《愛寵大機密》,把動物的毛做得非常逼真生動。
而國產動畫的動物至今還沒有毛。這種技術難度如何?請專業人士簡單介紹一下吧。


很難,尤其是長毛帶卷。

一根很好做。

電影和遊戲還不一樣。很多遊戲里毛髮實際模擬只有幾根,剩下的直接從這幾根做插值。

電影里一般場景,比如一個人,頭上大概有十萬根頭髮。每根頭髮要想看不出瑕疵起碼得離散化成100個點。使用彈性棒模型,每個點有xyz三個自由度以外,還有一個扭角,也就是順著頭髮方向扭轉了多少。如果硬算的話,這一下就是四千萬的自由度。這還只是一個角色,你想想要是角色多了得多慢。

而且頭髮很細、對於拉伸的硬度卻很高,意味著一甩起來受到的加速度很大。要穩定模擬,需要用隱式歐拉積分器。每一步都要解尺度等同於頭髮自由度數目的非線性優化。而這意味著需要解巨大的線性方程組。

這還不是最難的。最難的是頭髮之間的碰撞和摩擦。

先不說摩擦。對於碰撞來說,一種最簡單的方法是在頭髮之間加彈簧,這種方法稱為Penalty Method。一旦碰到一起就讓他們彈開,然而彈簧的剛度設置並沒有參考標準,並且不可能太高,太高了會很難解,隱式歐拉積分器會不收斂,而太低了就很容易穿透,一旦發生穿透彈簧就會反向,於是再也解決不了了。

另一種是用約束,就是一旦毛髮發生碰撞,就讓他們在相互運動方向的速度為零。然而當多根頭髮疊壓在一起時候,他們之間的約束也需要迭代多次並同時求解才能有對稱、無穿透的結果。每次迭代需要解一個尺度等同於碰撞數量的線性約束二階優化問題,迭代完一次還要檢測新的碰撞,如果有的話加進來再迭代,直到檢測不到新的碰撞。這種做法可以做到解完無穿透,但是極慢,無法用到大規模的模擬上。並且可能有些約束是線性相關的,於是就會有數值上解不出來的情況。

比如一個二維的例子是這樣的,每根頭髮用一條折線來表示,最下面的紅色曲線是一個實體圓柱的一部分。

一個選擇是放棄同時求解,用Gauss-Seidel或者Jacobi方法對約束近似求解,速度上能快很多,而且比較容易把摩擦也加進來。但是這樣做有可能根本不收斂,像上面那個例子,解完圓柱和最下面一根,那麼最下面的就會和下面第二根碰撞;而當解完最下面第一根和最下面第二根的碰撞,可能會造成第二根和第三根產生新的碰撞,再解完還可能有新的碰撞,如果幾萬根頭髮疊在一起,難度可想而知。這時候就只能限制迭代次數,忽略一些穿透,假定這些小錯誤不影響最終結果了。

以上這些問題都是學術界老大難問題。最新的paper是大概解32000根、生成20秒模擬就要跑幾周,而且實現起來也非常複雜,目前只有很少幾家weta、disney等等在用。

學界目前做的比較好的大概是這樣:

自適應非線性複雜毛髮模擬【SIGGRAPH 2014】

可以看到因為能正確模擬毛髮之間的碰撞與摩擦,在高速旋轉、甩動之後,很多毛髮會擰到一起打成結。其他大部分毛髮的模擬是做不到這一點的。

--------實時的分割線--------

遊戲里和一些對質量要求不那麼高的電影里的做法,就是做插值,或者叫skinning,或者叫subspace,或者叫reduced。一般是模擬幾百根頭髮,然後剩下幾十萬根從這幾百根的運動加權出來。為了獲得合適的權重或者模擬的頭髮和插值的頭髮之間的對應關係,通常需要根據已有的模擬結果進行預計算(因此也叫Data-driven或者Example-based,或者也可以叫machine learning(誤)),比如下面這樣:

在預計算階段會進行一些training,來得到如何將模擬的頭髮與插值的頭髮的一些對應關係,用於之後的實時運算。下面這個圖左邊是真正模擬的頭髮,右邊是插值出來的,顏色表示不同的分組(模擬的頭髮與一組插值的頭髮的對應):

視頻可以在這裡看到:

大量實時頭髮模擬【TVCG 2016】

以及他們之前的實時頭髮模擬也是蠻有趣的:

ACM SIGGRAPH 2014: 實時頭髮動畫

關於毛髮模擬要展開講還可以講很多,有興趣可以參見Disney高級研究員Rasmus Tamstorf的博士論文:https://graphics.ethz.ch/Downloads/Publications/Dissertations/Tam16.pdf

參考資料

http://gaps-zju.org/reducedhair/

http://www.cs.columbia.edu/~cxz/publications/hair_collision.pdf

Adaptive Nonlinearity for Collisions in Complex Rod Assemblies


技術問題 對於圖形渲染來說 毛髮細節是最費功夫也是最難處理好的 舉個不恰當例子 NBA2K16你開了毛髮特效後幀率會將低一半多 事實上 現在很多遊戲大作對於頭髮鬍鬚的渲染都是很不自然的
至於國產動畫沒有毛髮的問題 這個就不想黑了 有多少國產動畫是永遠做作品的 能做出來圈錢為什麼還要多花一倍多的功夫去刻畫毛髮


More影像據說要開生物特效(CFX)的部門了,不久的將來我們就會在國產動畫里看到毛


得看從什麼方面來將了。

其實技術上來看要做出毛髮難度並不大。

但要控制成本。

渲染毛髮是需要很長的時間的,以及毛髮的動力學解算也需要時間。那麼,時間就是錢。那麼,你懂吧。能不做基本就懶得做了。


推薦閱讀:

愛情公寓3中決戰紫禁之巔那一段怎麼拍。?
看視頻偶然發現一個轉場特效覺得很常見卻又不知道叫什麼?
從事後期節目包裝工作是一種怎麼的體驗?
作為一名特效師需要具備哪些條件?特效師前景如何?

TAG:動畫片 | 視覺特效 | 後期特效 | 電影特效 | 瘋狂動物城電影 |