切入正題以前,先胡說八道幾句.
聽說愛因斯坦講過:關於這個世界最難以理解的就是它是能夠被理解的。人類在很長的時間裏,都沒法認知周圍變幻莫測的世界,只能編造出無數的神祗來掌控世上萬物的運行。到了近代,才逐漸出現了突破。伽利略發現了主宰物體下墜的拋物線定律。牛頓被譽爲人類歷史上最偉大的科學家之一。他發明了微積分,用萬有引力定律在人類歷史上第一次把天上的運動和地上的運動統一了起來。麥克斯韋創建了描述電場與磁場的四個方程,系統而完整地歸納了電磁場的基本規律,並預言了電磁波的存在......因而科學家認爲數學是用來解釋天然世界的工具。工具
物理世界與數學如此的吻合,激發了進一步的聯想。宇宙學家馬克斯·塔馬克在《Our Mathematical Universe》一書中認爲宇宙中的一切事物,固然也包括人類在內都是一種數學結構。物理世界可能只是數學世界的映射。數學結構也是一種獨立存在的實體。想象一下,若是記載勾股定理的所有文獻都消失了,勾股定理其實仍是存在的,她等着下一次被發現。生命估計是一種能感知本身存在的一種數學結構,只是咱們目前還不知道具體形式。近二十年來計算機圖形學的蓬勃發展,進一步讓人以爲眼睛感覺到的一切都是數學的投影。
-------------------------------學習
平滑粒子流體力學(Smoothed Particle Hydrodynamics)起源於二十世紀七十年代末,當時一些宇宙學家用這類方法研究天體造成。我曾看到過一篇文章介紹了一個使用SPH模擬技術的玩具程序,在萬有引力的牽引下,將散落在各處的宇宙塵埃匯聚成一個球體。圖形學中大量使用SPH技術是以2003年的「Particle-Based Fluid Simulation for Interactive Applications」爲開端。該文標誌性的視頻內容是:實時模擬繪製了一股水流從上慢慢倒入到底下透明的杯子中。SPH技術容易實現,但要求時間步長很是小。步長稍大,效果就會比較粗糙甚至發生「爆炸」現象。若是親手調試過SPH程序,就會明白「爆炸」的含義(瞬時全部的粒子都消失了)。另外,常規SPH的參數比較多,調整相對比較困難。ui
流體是否逼真,與流體模擬技術中不可壓縮的實現密切相關。傳統的SPH基於粒子技術,只能依靠小步長、大壓強來實現流體的不可壓縮性,很是慢沒法作到真實感流體的實時模擬。2009年「Predictive-corrective incompressible SPH」使用迭代技術有效地加大了時間步長,同時保證了流體不可壓縮的性質。在接下來幾年,此文啓發了不少人。特別是SIGGRAPH 2013中的"position based fluids",文章很短,可是實現了使人感到驚豔的實時效果。調試
學習了該論文後,目前僅實現了半篇內容。使用了"position based fluids"的SPH模擬技術,可是渲染使用的是離線方式(用mitsuba,剛剛用了幾天,水質不是太好)。下面的視頻(http://pan.baidu.com/s/1c0kXzaw)(http://pan.baidu.com/s/1jG67KeM)和圖片模擬的是:經典場景double dam,看看有沒有點"驚濤怪浪"的感覺?視頻