寧方美 于艷紅 傅愛武
摘? 要: 針對虛擬場景中角色漫游的實際需求,實現了幾種漫游軌跡的生成算法,并深入探討各算法的性能優劣。在分析了玫瑰線,圓內旋輪線、圓外旋輪線、利薩茹曲線幾個曲線生成算法后,最終經對比發現使用三體混沌原理生成的曲線路徑最佳,符合實際虛擬場景中角色的隨機漫游的效果。
關鍵詞: 三體; 非線性函數; 玫瑰線; 圓內旋輪線; 圓外旋輪線; 利薩茹曲線
中圖分類號:TP312? ? ? ? ? 文獻標志碼:A? ? ?文章編號:1006-8228(2019)08-97-03
Abstract: In this paper, according to the actual demand of character roaming in virtual scene, several algorithms for generating roaming trajectory are realized, and the performance of each algorithm is discussed in depth. After analyzing the curve generation algorithms of Rose line, Hypocycloid, Epicycloid and Lissajous curve, the final comparison found that the curve path generated by the ideas of three-body problem and chaos is the best, which is in line with the effect of random roaming of characters in the actual virtual scene.
Key words: three body; nonlinear function; Rose line; Hypocycloid; Epicycloid;? Lissajous curve
0 引言
目前虛擬現實技術正在滲透到國民生活的各個領域,如城市規劃、工程設計、環境藝術、文化傳播、旅游、教育等。一些應用了虛擬現實技術的視景仿真和多媒體產品正越來越多地應用于生產和生活中[1]。
在三維虛擬場景中,角色物體漫游是一個重要的表現手法。在現實需求中,經常要使物體模型在一個固定空間中自由隨機地運動。如游戲中,非玩家角色(NPC)在一個場景區域中自由漫游。這種漫游的方法是由美工人員在建模工具中編輯好運動軌跡,然后在虛擬場景使物體沿著固定的軌跡循環移動。這種方法有兩個缺點,一是需要將軌跡數據保存到文件中,增加了數據量,二是運動軌跡是固定的,缺乏靈活度。
漫游路徑設計的優劣直接影響虛擬漫游的真實性和沉浸感。漫游路徑生成時需要注意:設計規劃的合理性、漫游方向改變時彎道平滑優化性、物體運動速度等,合理調整這些關鍵因素將有效地提高虛擬場景顯示畫面的穩定性、降低畫面抖動和搖擺[2]。本文將從數學中尋找能夠應用于物體漫游的幾種曲線。
1 線性數學曲線
所謂線性,指兩個變量之間可用某個公式表示的一種關系。角色物體漫游時,物體的坐標位置與時間可以作為兩個變量。如果有某個公式能夠表示在某一時刻該物體的位置,即是其線性方程。在線性數學中,有幾種在某一區域內游蕩的方程,下面我們一一進行討論。
1.1 玫瑰線
玫瑰線是極坐標系中的正弦曲線,可以用如下的方程來表示:
1.2 圓內旋輪線與圓外旋輪線
圓旋輪線被定義為:一個圓沿另外一個圓滾動時,圓上一定點所形成的軌跡。介于圓內外的區別,于是有了兩種旋輪線:
1.3 利薩茹曲線
利薩茹(Lissajous)曲線,又稱利薩茹圖形或鮑迪奇(Bowditch)曲線,是兩個沿著互相垂直方向的正弦振動的合成的軌跡。其參數方程如下:
2 三體混沌曲線
2.1 非線性數學
前面所列舉的幾種線性數學曲線,都是有一定規律可循的,無法實現隨機性。用戶總能夠通過之前的運動路線推測出下一步的位置。若要實現真正的隨機性,需要采用非線性數學的混沌。
所謂非線性是指兩個變量間的關系,不成簡單比例。與線性方程不同,非線性方程的解不滿足線性疊加原理。線性意味著系統的簡單性,但自然現象就其本質來說,都是復雜的,非線性的。所幸的是,自然界中的許多現象都可以在一定程度上近似為線性。傳統的物理學和自然科學就是為各種現象建立線性模型,并取得了巨大的成功。但隨著人類對自然界中各種復雜現象的深入研究,越來越多的非線性現象開始進入人類的視野。
2.2 三體問題
最經典的非線性問題就是三體問題了,它是研究三個質點在萬有引力作用下的運動觀律。三個天體質量、初始位置和初始速度都是任意的。迄今為止,此類問題仍沒有普遍的解析解,在特殊情況下可得到比較滿意的結果。若這三個天體中有一個天體的質量與其他兩個天體的質量相比,小到可以忽略時,三體問題即變為限制性三體問題。質量很小的天體一般稱為小天體,另兩天體稱為大天體。小天體的質量很小,可以不考慮它對另兩個天體的引力[3]。
在虛擬場景中,假設有兩個固定的天體,將可移動的物體作為第三個小天體。計算可移動物體在兩個固定天體引力作用下的運動軌跡。
2.3 物理公式
需要使用如下幾個物理公式:
⑴ 萬有引力定律
F =[G] [m1m2r2]
用于計算物體的受力,運動天體中受另外兩個天體的萬有引力。
(2) 勢能與動能守恒定律
對物體軌跡的運算中,為了提高計算效率,沒有使用微積分的精確求解,這會導致物體速度出現較大誤差,采用勢能與動能守恒定律可以校正這一誤差。
2.4 三體的程序模擬
假設兩個固定天體的質量用m1和m2來表示,運動天體的質量用w表示;R1、R2 分別表示運動天體距兩個固定天體的距離;Ep1, Ep2分別表示運動天體在兩個固定天體上的引力勢能;F1, F2分別表示兩個固定天體上的的引力;A表示運動物體的當前加速度;V表示運動天體的當前速度;P表示運動天體的當前位置;t表示時間間隔;g 表示萬有引力系數;Ek表示運動天體的當前動能;E表示運動物體的動能與勢能的加和。其偽代碼如下:
2.5 對限制性三體的擴展
假設將運動物體在多個固定天體的引力下運動則可以得到如圖5、圖6所示軌跡圖像。
3 總結
本文首先討論了幾種基于線性數學曲線的運動軌跡生成算法,玫瑰線的特點是有一個中心點會被多次經過,圓內旋輪線與圓外旋輪線適合物體在圓形區域內運動,利薩茹曲線適合物體在矩形區域內運動,這四種曲線都是有一定規律可循的,無法實現隨機性。本文基于經典的非線性問題-三體來實現物體的運動軌跡算法,最終發現移動物體在N個固定物體引力的作用下生成的運動軌跡最為理想。在實際應用中該方法可控性高、設置簡單、漫游平穩,且無視覺抖動。
參考文獻(References):
[1] 羅立宏,張群英.基于Cardinal的虛擬場景自動漫游算法桂林工學院學報,2007.3:278-281
[2] 孫紅巖,李翠芳,孫曉鵬.基于二次有理Bezier方法的虛擬漫游路徑優化計算機工程與設計, 2013.11:3912-3915
[3] 陳坤,王妍. 一種平面圓形限制性三體問題的數值模擬 實驗研究, 2014. 9.
[4] 李銀山. 三體問題綜述[J]. 中國科技信息, 2007. 23.
[5] 徐衛青,陳朋,連磊等.三體問題初探[J].中國高新技術企業, 2007. 5.