1. 程式人生 > >Flocks, Herds, and Schools: A Distributed Behavioral Model筆記

Flocks, Herds, and Schools: A Distributed Behavioral Model筆記

Flocks, Herds, and Schools: A Distributed Behavioral Model筆記  

看了Craig Reynolds的論文 Flocks, Herds, and Schools: A Distributed Behavioral Model 作了點筆記。

 

先前其他的群聚行為模擬。

著重講了一個在 SIGGRAPH '85 上的 Eurythmy 。具體實現好像用的是力場。。好像是基本所有物體會釋放力場然後越近越大。每隻鳥相互還有rejecting force。力場好像還有boundingbox。。

 

粒子系統。

說原理相似但不再是粒子而是幾何物體。說了下不同。

 

使用面向物件的思想。

用了分散式系統做例子。。應該是和後面使每個鳥與一臺計算機一個CPU對應讓演算法降成O(N)的一個。。。

 

動畫領域

領域的未來:behavioral model

舉了個例子說未來每個動畫個體。都有了自己的模型。。動畫者的角色會變得像導演。。因為不能百分之百確定他們的行為。。講了個笑話。。。

 

Geometric Flight & Banking

{ tangential - thrusting; lateral - steering;

感覺大概就是講了一下。。資料結構和一些規則。。。boid在Z軸方向前進後退。。XY軸會旋轉。利用XY軸變化來控制方向。。差不多是這樣。。。我沒仔細想數學

 

Turtle

提了個教育類的程式設計的東西。。控制小烏龜前進。放筆。轉向。。好像是想給一個簡單的印象。。來說一下上面的Geometric Flight & Banking的大概簡單意思?。。turtle就相當於boid的超級簡化版。。

 

終於進正題。

與整體無關。

演算法複雜度O(N^2)

三原則:

  • avoid collision躲避附近隊友的力
  • stay in the flock
    向著群落中心移動的力
  • velocity matching向著群落平均速度合併的力

避開障礙。加難度。中心力模型和領導者模型碰到障礙物都沒有好表現。

決策優先順序加速allocation。。提了一種好像是更復雜的更專業的expert system(AI)

 

boid感官 local反而更加顯得逼真。

sensitivity與距離應該成指數反比。

 直接反比效果不好。很bouncy。。(立方)平方反比更好。

提了一個領域。Artificial vision

 

利用此模型躲避障礙物的方法。

{ force field法; 

{ steer_to_avoid法;

第二種好。

 

其他應用。

電影模擬人群。(生物學研究)