青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Heath's Blog

There is no end, it is just the beginning! - A Game Developer's Notes

Real-time Cutscene中的攝像機插值研究

     很多DCC工具都提供了Curves Editor,通過控制點來構(gòu)造插值曲線,這樣可以精確地插值軌跡。在我們游戲的過場編輯器中,我們并沒有開發(fā)這類工具,一方面由于時間人力有限,另一方面希望能夠提供一種直觀簡便的方式達到想要的效果。因此我們支持兩種攝像機路徑創(chuàng)建方法:1)以攝像機視角直接將攝像機擺到想要位置,保存此時攝像機的位置與旋轉(zhuǎn);2)將3DS Max中的路徑導出為游戲的過場格式。前者可以滿足90%的過場編輯需求,后者滿足了10%的復雜路徑編輯需求。

     不管使用那種方式,都需要將離散點進行插值(interpolation)以便得到平滑路徑。這里就牽涉到位置插值和朝向插值。

     從插值函數(shù)上可分為三類:1)線性;2)多項式;3)樣條。顧名思義,線性插值采用線性函數(shù),多項式插值采用多項式,而樣條插值則采用了一組多項式組成的分段函數(shù)。由于攝像機的關鍵路徑點通常都會大于2個,所以插值方法上就必須選取樣條方法。

一、位置插值

1.1 樣條類型選擇

     在這里我們僅考慮三次樣條插值,因為它們可達到C2連續(xù)。三次樣條中主要以Bezier、Catmull-Rom、均勻B樣條為考查對象,它們都具有計算開銷小的優(yōu)點。可以通過下面公式來定義它們:

Image(18)

     簡化為:

Image(19)

     下面表格列出了三種插值曲線對應的G和M:

Image(20)

     如下圖所示,對4個點進行Bezier插值得到的曲線只會有兩個點被曲線穿過,而B-Spline插值得到的曲線不會經(jīng)過控制點,只有Catmull-Rom Spline可以得到穿過除起點和終點之間的所有控制點。正因為Catmull-Rom具有這個特性,使得它被廣泛地應用在關鍵幀平滑插值上,因此我們選擇了Catmull-Rom樣條作為攝像機位置點的插值算法。

Image(21)

1.2 實現(xiàn)

Image

參考:

[1] Mathematics for 3D Game Programming and Computer Graphics 3e by Eric Lengyel

[2] http://en.wikipedia.org/wiki/Catmull-Rom_spline#Catmull.E2.80.93Rom_spline

[3] http://www.codeproject.com/Articles/30838/Overhauser-Catmull-Rom-Splines-for-Camera-Animatio

二、朝向(旋轉(zhuǎn))插值  

2.1 Euler Angles VS Quaternion        

     三維空間中描述旋轉(zhuǎn)的主要方法有Euler Angles和Quaternion。Euler Angles有三個明顯的問題:1)三軸上的旋轉(zhuǎn)順序敏感;2)Gimbal Lock現(xiàn)象導致旋轉(zhuǎn)自由度丟失;3)獨立地對三個旋轉(zhuǎn)分量進行插值,忽略了三軸之間的依賴關系,導致插值結(jié)果不理想。與Euler Angles不同的是,Quaternion沒有將旋轉(zhuǎn)分解到三個軸向上,而是用一個旋轉(zhuǎn)軸和繞該軸的旋轉(zhuǎn)角度來描述,所以從根本上消除了Euler Angles的三大問題。有關Quaternion的詳細描述可參考[1],在此不再累述。

2.2 LERP VS SLERP

     四元數(shù)線性插值(Linear Quaternion interpolation)的計算公式為:

Image(1)

     四元數(shù)球面線性插值(Spherical Linear Quaternion interpolation)的計算公式為:

Image(2)

Image(3)

     其中,θ為兩個四元數(shù)的夾角。

     為了方便展示,我們考慮在2D情況對角度V進行兩次插值,兩種算法在插值效果上存在的差異,如下圖(b為LERP、c為SLERP):

Image(4)

     從圖中可以看出LERP其實是對兩四元數(shù)在圓上的弦進行了等分,而SLERP則是對圓弧進行等分。由此得出的結(jié)論是,SLERP得到了比LERP更平滑的插值結(jié)果。

     為了保證插值曲線的C2連續(xù)性,需要使用球面四邊形插值(Spherical Quadrangle interpolation)方法。例如,對q1和q2插值,首先要用q0、q1、q2、q3計算出兩個控制點(Inner Quadrangle Point),公式如下:

Image(5)

     然后通過下式得到最終插值結(jié)果:

Image(6)

2.3 實現(xiàn)

Image(7)

     上面代碼沒有考慮兩個四元數(shù)之間夾角大于180°的情況。例如,考慮q1->q2的插值角度θ>180°,我們可以讓q1->q2反向旋轉(zhuǎn)2π-θ,即旋轉(zhuǎn)-(2π-θ),根據(jù)四元數(shù)的定義[v*sin(θ/2) , cos(θ/2)],那么對q2進行處理變?yōu)閇-v*sin(θ/2) , -cos(θ/2)]。這個處理可以放在AddSplinePoint中來做:

Image(8)

參考:

[1] Quaternions, Interpolation and Animation by EB Dam - 1998

[2] Game Engine Architecture by Jason Gregory - 2009

[3] https://theory.org/software/qfa/writeup/node12.html

posted on 2013-10-26 09:07 Heath 閱讀(2867) 評論(1)  編輯 收藏 引用 所屬分類: Game Development

Feedback

# re: Real-time Cutscene中的攝像機插值研究[未登錄] 2013-10-27 14:53 煙圈

博主用的什么編程字體,看著好酷。  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品亚洲一区二区三区在线| 国产精品久久| 最新成人在线| 国产精品久久久久91| 欧美国产在线视频| 亚洲综合精品四区| 欧美99久久| 一区二区三区欧美视频| 狠狠色伊人亚洲综合成人| 欧美日韩一区二区三区免费| 久久久福利视频| 亚洲午夜伦理| 亚洲精选91| 免费久久99精品国产自| 亚洲欧美日韩国产综合在线| 在线免费观看一区二区三区| 国产日产高清欧美一区二区三区| 欧美激情在线观看| 久久久久国内| 欧美在线国产| 亚洲高清网站| 亚洲精品久久久久久下一站 | 亚洲福利在线视频| 午夜亚洲激情| 亚洲一级在线| 亚洲国产天堂网精品网站| 国产亚洲欧美在线| 国产精品久久久久久户外露出 | 久久精品电影| 羞羞漫画18久久大片| 老色批av在线精品| 久久精品国产久精国产爱| 亚洲欧美激情四射在线日 | 欧美日韩网址| 在线观看欧美黄色| 亚洲激情六月丁香| 欧美在线免费播放| 久久久久久久激情视频| 欧美一区2区视频在线观看| 欧美亚洲综合网| 久久不射网站| 亚洲精品一线二线三线无人区| 久久久7777| 国产欧美在线看| 亚洲午夜电影在线观看| 欧美激情中文字幕乱码免费| 亚洲国产三级在线| 一区二区动漫| 亚洲视频精选在线| 欧美在线看片| 国产精品美女视频网站| 一区在线播放视频| 亚洲精品免费观看| 中文在线不卡视频| 久久久久久尹人网香蕉| 美女脱光内衣内裤视频久久影院 | 午夜亚洲一区| 国产精品丝袜白浆摸在线| 亚洲性线免费观看视频成熟| 亚洲电影免费观看高清完整版| 欧美高清视频在线观看| 国产九九视频一区二区三区| 亚洲第一精品影视| 这里只有视频精品| 国产视频一区二区三区在线观看| 欧美福利电影在线观看| 黄色工厂这里只有精品| 欧美亚洲一区二区在线| 亚洲一区国产视频| 香蕉视频成人在线观看 | 欧美成ee人免费视频| 欧美精品激情| 99re亚洲国产精品| 久久久久网站| 久久久一区二区三区| 亚洲国产va精品久久久不卡综合| 欧美h视频在线| 欧美日韩国产丝袜另类| 揄拍成人国产精品视频| 欧美福利电影在线观看| 午夜精品久久久久久久99水蜜桃| 欧美精品一区二区三区在线播放| 狠狠噜噜久久| 欧美国产日本韩| 国产精品久久久久久av福利软件 | 久久综合九色99| 亚洲一区久久久| 精品不卡视频| 99精品热视频只有精品10| 久久影院亚洲| 韩国av一区二区三区四区| 亚洲第一精品电影| 欧美日韩一区国产| 老司机免费视频一区二区三区 | 久久久久久亚洲精品杨幂换脸| 日韩午夜中文字幕| 性欧美videos另类喷潮| 亚洲精品婷婷| 欧美自拍偷拍| 亚洲综合色自拍一区| 日韩一级成人av| 欧美日韩在线不卡| 久久精品中文| 欧美性猛交xxxx乱大交退制版| 亚洲人屁股眼子交8| 亚洲图片欧洲图片av| 在线播放豆国产99亚洲| 亚洲精品乱码久久久久久| 一二三区精品福利视频| 亚洲国产精品黑人久久久| 亚洲欧美色婷婷| 亚洲一区二区三区影院| 欧美极品影院| 欧美大片在线观看一区二区| 国产午夜精品全部视频播放 | 亚洲精选在线| 91久久国产综合久久| 欧美久久久久久久| 久久中文欧美| 国产日韩精品电影| 亚洲婷婷国产精品电影人久久| 99国产精品99久久久久久| 裸体素人女欧美日韩| 日韩午夜精品| 免费精品视频| 亚洲一区欧美| 欧美日韩精品免费观看| 亚洲激精日韩激精欧美精品| 亚洲电影在线观看| 久久视频在线视频| 亚洲午夜精品久久久久久浪潮| 欧美不卡福利| 亚洲国产精品成人久久综合一区 | 久久久999精品视频| 国产精品一区毛片| 亚洲视频欧美视频| 欧美亚洲自偷自偷| 国产欧美一区二区三区国产幕精品| 亚洲色图自拍| 久久av免费一区| 国产自产精品| 一区二区三区国产| 亚洲综合首页| 国产精品亚洲综合| 午夜激情综合网| 久久人人爽国产| 在线观看视频免费一区二区三区| 久久久.com| 亚洲国产欧美一区二区三区久久| 亚洲美女av黄| 国产精品久久久久永久免费观看| 亚洲一区二区在线免费观看| 久久精品99| 亚洲欧洲日韩女同| 欧美性大战久久久久久久蜜臀| 亚洲午夜精品久久久久久浪潮 | 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美成人a视频| 艳女tv在线观看国产一区| 久久国产视频网| 欧美成人精品在线视频| 99re6这里只有精品| 国产精品久久国产精麻豆99网站| 欧美一区二区精品在线| 欧美国产先锋| 亚洲欧美卡通另类91av| 韩日在线一区| 欧美日韩精品综合在线| 亚洲中午字幕| 亚洲激情影院| 女仆av观看一区| 亚洲精品社区| 午夜在线观看免费一区| 狠狠色丁香久久婷婷综合丁香| 欧美成人免费在线| 亚洲女性裸体视频| 欧美激情第五页| 午夜国产不卡在线观看视频| 亚洲第一毛片| 国产精品免费福利| 欧美freesex8一10精品| 午夜免费久久久久| 91久久久久久| 久久这里有精品15一区二区三区| 亚洲一区精品电影| 亚洲精品视频在线观看网站| 韩日欧美一区二区| 国产精品美女xx| 欧美精品三级日韩久久| 久久蜜桃资源一区二区老牛| 亚洲尤物在线视频观看| 亚洲人午夜精品免费| 免费高清在线一区| 久久成人精品一区二区三区| 一区二区欧美在线观看| 亚洲黄色一区| 在线播放日韩专区| 国产亚洲一级高清| 国产日韩精品电影| 国产精品专区h在线观看|