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