基於物理的建模與動畫
內容描述
本書覆蓋基於物理的建模和動畫的核心內容,旨在成為這一領域研究、從業者及相關專業師生必備參考書。
本書內容紮實,可幫助讀者直接用代碼實現動畫項目,
或使用現成物理模擬套件編寫代碼,抑或是掌握流行動畫軟件中的物理引擎等專業工具。
本書知識豐富,深入剖析各種相關軟件背後背後的運行機理,也不依賴任何編程語言或圖形API。
目錄大綱
目錄
第1部分基礎
第1章導論
1.1什麼是基於物理的動畫
1.2動態模擬與離散事件模擬
1.3數學記法約定
1.4工具包及商用軟件
1.5本書結構
第2章模擬的基礎
2.1模型及模擬
2.2牛頓運動定律
2.3在一維中落下一個球
2.4運動的微分方程
2.5基本的模擬循環
2.6數值近似方法
2.7空氣中的三維運動
2.7.1跟踪三個維度
2.7.2空氣阻力
2.7.3風
2.8總結
第3章追踪彈跳球
3.1與平面碰撞
3.1.1碰撞檢測
3.1.2碰撞測定
3.1.3更改模擬循環
3.2碰撞響應
3.2.1彈性
3.2.2摩擦力
3.2.3把所有結合起來
3.3實現彈跳球
3.3.1數值精度
3.3.2靜止條件
3.4多邊形的幾何學
3.5點與多邊形的碰撞
3.6特例:三角形相交
3.7總結
第2部分基於粒子的模型
第4章粒子系統
4.1什麼是粒子系統
4.2隨機數、隨機矢量及隨機點
4.3粒子生成器
4.4粒子模擬
4.4.1運算的編排
4.4.2撤銷粒子
4.4.3碰撞
4.4. 4幾何
4.4.5高效的隨機數
4.5粒子渲染
4.5.1點及划痕
4.5.2精靈
4.5.3幾何圖形
4.5.4體積渲染
4.6總結
第5章粒子編排
5.1加速度操作
5.1.1引力吸引器
5.1 .2隨機加速度
5.1.3拖拽與反拖拽
5.1.4速度限制器
5.2速度操作
5.2.1仿射速度操作
5.2.2旋渦
5.3避障
5.3.1勢場
5.3.2操控
5.4總結
第6章交互粒子系統
6.1狀態向量
6.1.1單一粒子的狀態向量
6.1.2交互粒子的狀態向量
6.1.3實現
6.2擴展狀態的概念
6.3空間數據結構
6.3.1均勻空間網格
6.3.2八叉樹
6.3.3 kd樹
6.4天文模擬
6.4.1聚簇
6.4.2一個採用均勻空間網格的簡單算法
6.4.3一個採用八叉樹的自適應算法
6.5群集系統
6.5.1核心算法
6.5.2距離與視域
6.5.3加速度的優先級
6.5.4繞過障礙
6.5.5轉向與側飛
6.6總結
第7章數值積分
7.1級數展開與積分
7.2韋爾萊積分與蛙跳積分
7.2.1基礎韋爾萊積分
7.2.2速度韋爾萊積分
7.2.3蛙跳積分
7.3龍格–庫塔積分
7.3.1一階和二階龍格–庫塔法
7.3.2四階龍格–庫塔法
7.4高階數值積分的實現
7.4.1狀態向量算法
7.4.2用更高階積分做碰撞檢測
7.5積分的精度和穩定性
7.5.1指數衰減和正弦振盪
7.5.2指數衰減的積分
7.5.3正弦振蕩的積分
7.5.4 RK方法的性能
7.5.5阻尼與穩定性
7.6自適應時步
7.7隱式積分
7.7.1直接求解隱式積分
7.7.2雅克比和線性化函數
7.7.3求根法求解隱式積分
7.7.4隱式公式的精度和穩定性
7.8總結
第8章可形變彈性網格
8.1阻尼彈性連接件
8.1.1阻尼彈簧的數學原理
8.2彈性網格
8.2.1支撐桿——一種彈性網格的三維結構元素
8.2.2用支撐桿構造一個彈性網格
8.2.3空氣阻力與風
8.2.4彈性網格的模擬
8.2.5結構剛度
8.3扭轉彈簧
8.3.1力矩
8.3.2根據扭轉彈簧計算力矩
8.3.3根據扭轉彈簧計算頂點受力
8.3.4帶有扭轉彈簧的網格的模擬
8.4選擇好的參數
8.5碰撞
8.5.1碰撞的類型
8.5.2碰撞確定
8.5.3彈性物體的碰撞響應
8.6晶格形變器
8.7布料建模
8.8總結
第3部分剛體動力學與約束動力學
第9章剛體動力學
9.1剛體狀態
9.2剛體屬性
9.2.1質心
9.2.2慣性張量
9.3剛體運動
9.3.1力矩
9.3.2更新剛體狀態
9.3.3四元數表示法
9.4實現
9.5總結
第10章剛體的碰撞與接觸
10.1剛體碰撞
10.1 .1與靜態物體的無摩擦碰撞
10.1.2兩個運動物體間的無摩擦碰撞
10.2碰撞檢測
10.2.1包圍體
10.2.2粗略碰撞檢測
10.2.3精確碰撞檢測
10.3線性互補問題
10.3.1處理多個接觸剛體
10.3.2作為LCP的多個碰撞與靜止接觸
10.3.3摩擦力轉為LCP
10.4總結
第11章約束
11.1罰函數
11.1.1 P(比例)控制器
11.1.2 PD(比例微分)控制器
11.1.3 PID(比例積分微分)控制器
11.2約束動力學
11.2.1單約束
11.2.2多約束
11.3約化坐標
11.3.1廣義坐標和廣義速度
11.3.2動能、功和勢能
11.3.3拉格朗日量與拉格朗日方程
11.3.4落球的例子
11.3.5鐘擺的例子
11.3.6線上運動的珠子的例子
11.4總結
第12章鉸接體
12.1鉸接體的結構
12.2鉸接體的動態狀態
12.3空間代數
12.3.1空間速度與加速度
12.3.2空間變換
12.3.3空間力
12.3.4空間轉置
12.3.5空間內積
12.3.6空間叉積
12.4空間代數記號下速度和加速度的傳遞
12.5空間孤立量
12.6第一次循環
12.7計算空間鉸接量
12.8計算構件加速度
12.9推廣到樹狀鉸接體
12.10總結
第4部分流體動力學
第13章流體動力學基礎
13.1拉格朗日模擬與歐拉模擬
13.2流體模擬的數學背景知識
13.2.1標量場和矢量場
13.2.2梯度
13.2.3散度
13.2.4旋度
13.2.5拉普拉斯算符
13.3納維–斯托克斯方程
13.4勢流場
13.5總結
第14章光滑粒子流體動力學
14.1空間採樣和重構
14.2粒子加速度計算
14.2.1壓強梯度
14.2.2擴散
14.2.3外部加速度和碰撞
14.3核函數
14.4流體表面和表面張力
14.5模擬算法
14.6總結
第15章有限差分算法
15.1有限差分
15.1.1數值微分
15.1.2微分算符
15.1.3採樣和插值
15.1.4 CFL條件
15.2半拉格朗日法
15.2.1 w1增加外部加速度
15.2.2 w2用回溯法實現拉格朗日對流
15.2.3 w3速度擴散的隱式積分
15.2.4 w4得到一個無散速度場
15.2.5煙模擬計算的結構
15.2.6水模擬計算的結構
15.3 FLIP
15.4總結
附錄A矢量
附錄B矩陣代數
附錄C仿射變換
附錄D坐標系統
附錄E四元數
附錄F重心坐標
索引
作者介紹
Donald H. House
是美國南卡羅來納州克萊姆森大學計算機學院視覺計算系的教授和主席。
他在馬薩諸塞大學阿姆赫斯特分校獲得計算機和信息科學博士學位,
在倫斯勒大學獲得電氣工程碩士學位,以及他在聯合大學的數學學士學位。
他早期的研究領域是布料模擬和基於物理的動畫。
最近,他的重點是在不確定性下視覺化的認知和知覺優化。
John C.Keyser
是美國德克薩斯州A&M大學計算機科學與工程系的教授和副系主任,
他在北卡羅萊納大學獲得計算機科學博士學位,在阿比林獲得應用數學、
工程物理和計算機科學學士學位基督教大學。
他的研究跨越了計算機圖形學的一系列主題,特別強調基於物理的模擬和實體建模。
葉勁峰(Milo Yip)
從小自習編程,並愛好計算機圖形學。
上中學時兼職開發策略RPG《王子傳奇》,該遊戲在1995年於台灣發行。
其後他獲取了香港大學認知科學學士、香港中文大學系統工程及工程管理哲學碩士。
畢業後在香港理工大學設計學院從事遊戲引擎及相關技術的研發,職至項目主任。
除發表學術文章外,也曾合著《DirectX9遊戲編程實務》。
2008年往上海育碧擔任引擎工程師開發《美食從天而降(Cloudy with a Chance of Meatballs)》Xbox360/PS3/Wii/PC,
2009年起於麻辣馬開發《愛麗絲:瘋狂回歸(Alice: Madness Returns)》 Xbox360/PS3/PC,2011年加入騰訊互動娛樂引擎技術中心擔任專家工程師,
所研發的技術已用於《鬥戰神》、《天涯明月刀》、《眾神爭霸》等項目中。