• <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>

            芳草春暉

            偶爾記錄自己思緒的地方...

             

            游戲中的曲線插值簡單介紹

            我看了不少插值的方法,有的方法講得莫名其妙,一個程序,一些系數,為什么這個系數是1,而不是0.5從來不講,讓人很懷疑其可用性。

            后來做刀光的時候,采集的刀光的點不夠圓滑,需要用到插值——想想自己的高數還沒有完全忘光,干脆自己推導一個得了。

            首先我們要明白什么叫做光滑的曲線,可以這么認為,這個曲線是一個運動物體,在時間[0,1]內運動的軌跡。而要求的光滑的曲線,就是要求物體運動 過程中沒有速度的突變。且要求不同的曲線段之間,速度也不能有突變。據此,我們可以大約知道插值一段曲線,需要指導曲線其實點的位置和速度,結束點的位置 和速度。由于有四個已知變量,顯然,用一個四次方程來描述這個曲線是再合適不過了。

            方程如下:

            f(t) = a * t ^ 3 + b * t ^ 2 + c * t + d               [0 <= t <= 1]

            對f(t)求導,得到速度方程:

            f'(t) = 3 * a * t ^ 2 + 2 * b * t + c              [0 <= t <= 1]

            所以
            f(0) = d = x0(起始點位置)
            f(1) = a + b + c + d = x1(結束點位置)
            f'(0) = c = y0(起始點速度)
            f'(1) = 3 * a + 2 * b + c = y1(結束點速度)

            聯合上面四個式子可解得

            a = 2 * x0 - 2 * x1 + y0 + y1
            b = 3 * x1 - 3 * x0 - y1 - 2 * y0
            c = y0
            d = x0

            再利用

            f(t) = a * t ^ 3 + b * t ^ 2 + c * t + d               [0 <= t <= 1]

            就可以插值這斷曲線了

            當然,事情還沒有完,通常情況下,我們得到的數據只有各個采樣點的位置,沒有速度。這個時候,速度怎么辦?我的解決辦法是,在有3個采樣點的時候(p0,p1,p2),計算出p1采樣點的速度,另外,再假設采樣時間間隔是均勻的,因此:

            v1 = (p2 - p0) * 0.5

            在有N個采樣的時候,特殊處理起始點和結束點的速度

            v0 = p1 - p0;

            vn = pn - p(n-1)

            這樣得到的曲線完全滿足平滑的要求,缺點是,曲線開始插值的時候要延遲一個采樣點的時間,有的時候,v0 速度很快,因此,會出現一條有縫隙刀光。針對當前項目,我在第一次采樣的時候,將時間稍微往后加了0.001秒,按照當前的運動趨勢多采樣了一次,從而消 除了這個縫隙。因為預測的運動時間很短,即使預測錯誤,也不影響刀光的外觀。

            posted on 2010-04-27 20:45 CrazyDev 閱讀(824) 評論(0)  編輯 收藏 引用 所屬分類: 圖形技術

            導航

            統計

            常用鏈接

            留言簿(1)

            隨筆檔案

            文章分類

            文章檔案

            C/C++

            CEGUI

            Friend Bog

            Game Industry

            Lua

            OGRE

            Other

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            99久久精品影院老鸭窝| 亚洲国产精品久久电影欧美| 97久久精品人人澡人人爽| 亚洲午夜精品久久久久久人妖| 久久精品国产一区二区电影| 成人午夜精品无码区久久| 亚洲国产精品成人久久| 久久精品夜色噜噜亚洲A∨| 性欧美大战久久久久久久久 | 久久99国产精品99久久| 免费一级欧美大片久久网 | 人妻精品久久久久中文字幕一冢本 | 久久国产精品77777| 香蕉aa三级久久毛片| 久久精品国产一区二区三区日韩| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国产福利电影一区二区三区,免费久久久久久久精 | 99精品久久精品一区二区| 久久夜色精品国产www| 国产情侣久久久久aⅴ免费| 武侠古典久久婷婷狼人伊人| 国产激情久久久久影院| 精品久久久久久无码专区| 国产精品亚洲综合久久| 久久精品成人免费国产片小草| 久久99亚洲网美利坚合众国| 久久人人爽人人爽人人片AV东京热 | 久久超碰97人人做人人爱| 99久久精品免费看国产一区二区三区 | 国产综合久久久久久鬼色| 亚洲中文字幕无码一久久区| 色综合久久天天综线观看| 精品久久久久久久久久中文字幕| 一级做a爱片久久毛片| 久久精品国产亚洲综合色| 婷婷综合久久中文字幕| 国产午夜精品理论片久久影视| 久久精品国产亚洲麻豆| 国内精品久久久久久麻豆| 日韩十八禁一区二区久久| 亚洲综合久久夜AV |