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

Heath's Blog

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

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

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

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

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

一、位置插值

1.1 樣條類型選擇

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

Image(18)

     簡化為:

Image(19)

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

Image(20)

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

Image(21)

1.2 實現

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

二、朝向(旋轉)插值  

2.1 Euler Angles VS Quaternion        

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

2.2 LERP VS SLERP

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

Image(1)

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

Image(2)

Image(3)

     其中,θ為兩個四元數的夾角。

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

Image(4)

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

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

Image(5)

     然后通過下式得到最終插值結果:

Image(6)

2.3 實現

Image(7)

     上面代碼沒有考慮兩個四元數之間夾角大于180°的情況。例如,考慮q1->q2的插值角度θ>180°,我們可以讓q1->q2反向旋轉2π-θ,即旋轉-(2π-θ),根據四元數的定義[v*sin(θ/2) , cos(θ/2)],那么對q2進行處理變為[-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 閱讀(2873) 評論(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>
            日韩视频一区二区在线观看| 亚洲欧美在线一区| 一区二区三区欧美日韩| 欧美精品一区二区高清在线观看| 亚洲国产免费看| 亚洲精品在线免费观看视频| 欧美日韩免费观看一区三区| 一本在线高清不卡dvd| 午夜天堂精品久久久久| 国产精品私人影院| 久久精品中文字幕一区| 欧美国产精品中文字幕| 一个色综合导航| 国产精品一区二区在线| 久久久精品久久久久| 亚洲电影免费观看高清完整版在线| 99精品欧美一区二区三区| 国产精品jizz在线观看美国| 欧美一区三区三区高中清蜜桃| 欧美a级大片| 亚洲一本视频| 伊人伊人伊人久久| 欧美日本二区| 欧美在线资源| 日韩亚洲欧美成人| 久久精品网址| 日韩一二三在线视频播| 国产日韩欧美在线播放| 欧美岛国激情| 欧美影片第一页| 亚洲精品影院在线观看| 久久国产精品网站| 夜夜嗨av一区二区三区四季av | 久久久久久尹人网香蕉| 亚洲美女视频在线观看| 国产在线国偷精品产拍免费yy| 欧美精品一区二区精品网| 欧美一区二区三区免费看| 亚洲美女视频| 欧美国产一区二区在线观看| 久久国产精品99久久久久久老狼| 日韩亚洲综合在线| 在线看成人片| 国产在线高清精品| 国产精品一区毛片| 欧美日韩在线精品| 欧美成人首页| 久久久蜜桃一区二区人| 亚洲午夜成aⅴ人片| 美日韩在线观看| 久久精品导航| 亚洲一区免费观看| 亚洲国产精品传媒在线观看| 国产精品嫩草影院av蜜臀| 免费看的黄色欧美网站| 性欧美大战久久久久久久免费观看| 欧美激情二区三区| 欧美在线观看视频一区二区三区| 日韩视频永久免费| 极品日韩久久| 国产日韩欧美a| 欧美v日韩v国产v| 亚洲欧美日韩综合| 亚洲精品免费在线观看| 女同性一区二区三区人了人一| 欧美亚洲色图校园春色| 亚洲激情在线观看| 在线观看国产欧美| 国产偷久久久精品专区| 国产精品久线观看视频| 欧美日韩国产一区二区三区地区 | 亚洲精品一级| 欧美国产日本高清在线| 久久夜色撩人精品| 欧美影院在线播放| 亚洲欧美视频一区| 亚洲自拍另类| 亚洲在线第一页| 亚洲欧美另类中文字幕| 亚洲少妇一区| 亚洲一区区二区| 中文久久精品| 亚洲一级片在线观看| 夜夜精品视频一区二区| 亚洲精品中文字幕女同| 亚洲日本中文字幕| 91久久国产精品91久久性色| 影音先锋日韩资源| 亚洲国产成人不卡| 亚洲国产专区校园欧美| 亚洲国产福利在线| 91久久精品一区二区三区| 亚洲人成在线观看网站高清| 亚洲精品黄色| 一本色道久久综合亚洲精品婷婷| 夜夜嗨av一区二区三区网页| 99re6热在线精品视频播放速度| 91久久精品美女高潮| 亚洲精品久久久久久一区二区| 亚洲日本精品国产第一区| 亚洲欧洲一区二区天堂久久| 在线综合视频| 西西裸体人体做爰大胆久久久| 香蕉av福利精品导航| 久久精品国产亚洲一区二区三区 | 亚洲影院免费| 欧美一区二区三区在| 久久久综合香蕉尹人综合网| 久久久久久国产精品mv| 欧美日韩播放| 国产欧美视频一区二区| 一区二区三区在线视频免费观看| 在线观看亚洲精品视频| 亚洲人成在线免费观看| 亚洲午夜国产成人av电影男同| 亚洲尤物在线视频观看| 久久久久久久欧美精品| 欧美激情免费在线| 99国产精品| 久久视频免费观看| 欧美日韩另类丝袜其他| 国产毛片精品视频| 亚洲第一成人在线| 中国日韩欧美久久久久久久久| 欧美在线观看视频| 欧美国产日韩一区| 亚洲午夜激情免费视频| 久久精品成人一区二区三区蜜臀| 欧美大片va欧美在线播放| 欧美日韩日本视频| 亚洲春色另类小说| 午夜综合激情| 亚洲国产另类久久久精品极度| 亚洲在线观看免费| 欧美a级理论片| 国产区日韩欧美| 日韩天堂在线观看| 久久久久久亚洲精品中文字幕 | 亚洲麻豆一区| 久久国产精品72免费观看| 亚洲乱码视频| 久久综合九色综合网站| 国产精品久久久91| 91久久一区二区| 久久久久国色av免费看影院| 亚洲精选成人| 久久理论片午夜琪琪电影网| 国产精品欧美经典| 99国产精品久久久| 两个人的视频www国产精品| 亚洲午夜伦理| 欧美人交a欧美精品| 亚洲国产成人久久综合| 久久xxxx精品视频| 亚洲欧美精品伊人久久| 欧美色中文字幕| 亚洲精品午夜| 欧美大尺度在线观看| 欧美亚洲一级片| 国产精品萝li| 亚洲性夜色噜噜噜7777| 欧美成人国产| 久久精品国产99国产精品| 国产欧美日韩免费| 一区二区激情| 亚洲精品日韩综合观看成人91| 久久免费精品视频| 久久精品导航| 欧美大胆成人| 亚洲国产精品综合| 久久五月婷婷丁香社区| 午夜视频一区二区| 国产欧美精品日韩| 午夜精品亚洲| 亚洲天堂男人| 国产精品久久久久久久久久妞妞 | 国产亚洲精品自拍| 欧美一区二区三区在线看| 一区二区三区四区精品| 欧美日韩伦理在线| 99热免费精品| 亚洲精品一二三区| 欧美日韩一区二| 亚洲午夜激情免费视频| 一区二区三区久久网| 国产精品久久久久久福利一牛影视| 亚洲视频在线一区| 在线一区二区三区四区五区| 国产精品色在线| 欧美在线视频播放| 欧美一区二区三区视频| 激情五月综合色婷婷一区二区| 乱中年女人伦av一区二区| 久久综合久久综合这里只有精品| 亚洲高清一区二区三区| 亚洲电影在线看| 欧美日韩福利| 亚洲午夜av| 香蕉久久夜色精品| 在线免费观看欧美|