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

Heath's Blog

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

修正D3DXQuaternionSquad不能正確處理反向Quaternions的BUG

微軟DX庫里提供了對Quaternion進行球面四邊形內(nèi)插的接口,能夠在多個Quaternion之間平滑插值。這里涉及到兩個接口:

void D3DXQuaternionSquadSetup(
  __out  D3DXQUATERNION *pAOut,
  __out  D3DXQUATERNION *pBOut,
  __out  D3DXQUATERNION *pCOut,
  __in   const D3DXQUATERNION *pQ0,
  __in   const D3DXQUATERNION *pQ1,
  __in   const D3DXQUATERNION *pQ2,
  __in   const D3DXQUATERNION *pQ3
);
D3DXQUATERNION* D3DXQuaternionSquad(
  __inout  D3DXQUATERNION *pOut,
  __in     const D3DXQUATERNION *pQ1,
  __in     const D3DXQUATERNION *pA,
  __in     const D3DXQUATERNION *pB,
  __in     const D3DXQUATERNION *pC,
  __in     FLOAT t
);
其中,D3DXQuaternionSquadSetup用于返回內(nèi)插的控制點。它們具體的實現(xiàn)公式和用法,有興趣的同學可以參考MSDN。在此需要說明的是,
D3DXQuaternionSquad使用了Slerp作為內(nèi)部實現(xiàn),會導致在兩個夾角為180°左右的Quaternion之間插值會出現(xiàn)斷裂的問題。下面代碼通過
實現(xiàn)一個考慮了上述情況的Slerp版本,在q1和q2夾角在0°或者180°時,使用線性內(nèi)插而非球面,來解決該問題。
  1. Quaternion QuatSlerpNoInvert(const Quaternion& q1 , const Quaternion& q2 , float t)
  2. {
  3. ????float cosAngle = DotProduct(q1, q2);
  4.  
  5. ????float c1, c2;
  6. ????// Linear interpolation for close orientations
  7. ????if ((1.0f - fabs(cosAngle)) < 1e-5f)
  8. ????{
  9. ????????c1 = 1.0f - t;
  10. ????????c2 = t;
  11. ????}
  12. ????else
  13. ????{
  14. ????????// Spherical interpolation
  15. ????????float angle????= acos(fabs(cosAngle));
  16. ????????float sinAngle = sin(angle);
  17. ????????c1 = sin(angle * (1.0f - t)) / sinAngle;
  18. ????????c2 = sin(angle * t) / sinAngle;
  19. ????}
  20.  
  21. ????Quaternion q = q1 * c1 + q2 * c2;
  22. ????q.Normalize();
  23.  
  24. ????return q;
  25. }
  26.  
  27. Quaternion QuatSquad(const Quaternion& p1 , const Quaternion& p2 , const Quaternion& p3 , const Quaternion& p4 , float t)
  28. {
  29. ????static Quaternion a , b , c;
  30.  
  31. ????D3DXQuaternionSquadSetup((D3DXQUATERNION*)&a , (D3DXQUATERNION*)&b , (D3DXQUATERNION*)&c ,
  32. ????????(D3DXQUATERNION*)&p1 , (D3DXQUATERNION*)&p2 , (D3DXQUATERNION*)&p3 , (D3DXQUATERNION*)&p4);
  33.  
  34. ????return QuatSlerpNoInvert(QuatSlerpNoInvert(p2 , c , t) , QuatSlerpNoInvert(a , b , t) , 2 * t * (1-t));
  35. }

 

參考:

[1] http://msdn.microsoft.com/en-us/library/bb205419(v=vs.85).aspx

[2] http://msdn.microsoft.com/en-us/library/bb205420(v=vs.85).aspx

posted on 2011-08-21 22:16 Heath 閱讀(2336) 評論(0)  編輯 收藏 引用 所屬分類: Game Development

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产亚洲一本大道中文在线| 这里是久久伊人| 久久精品亚洲精品| 亚洲欧美久久久| 久久精品国产精品亚洲综合| 中文一区字幕| 亚洲欧美日韩在线不卡| 午夜精品久久久久| 欧美在线播放一区| 麻豆成人在线| 欧美日韩综合网| 国产精品一级| 在线精品视频在线观看高清| 极品尤物av久久免费看| 91久久国产综合久久蜜月精品| 亚洲国产精品va在线看黑人动漫| 亚洲理论在线观看| 欧美人与禽性xxxxx杂性| 久久精品麻豆| 欲色影视综合吧| 麻豆成人综合网| 欧美+亚洲+精品+三区| 欧美一区国产一区| 亚洲一区二区高清视频| 欧美激情一区三区| 免费在线视频一区| 99国产精品99久久久久久粉嫩| 亚洲综合999| 国产精品高清在线| 国产一区视频在线看| 亚洲精品国偷自产在线99热| 亚洲一区二区三区免费在线观看| 久久日韩精品| 国产日韩在线视频| 在线亚洲成人| 欧美风情在线观看| 久久精品女人天堂| 欧美系列精品| 亚洲一区精彩视频| 亚洲精品一区二区三区福利| 久久精品国产视频| 国产欧美一区二区精品忘忧草| 亚洲视频1区| 亚洲美女免费视频| 欧美精选午夜久久久乱码6080| 国产自产精品| 久久婷婷国产综合尤物精品| 性欧美8khd高清极品| 国内伊人久久久久久网站视频| 亚洲影视中文字幕| 亚洲欧美国产一区二区三区| 国产精品日韩在线一区| 性娇小13――14欧美| 亚洲一区二区视频在线观看| 国产精品一区二区三区四区 | 久热爱精品视频线路一| 欧美呦呦网站| 亚洲精品视频啊美女在线直播| 亚洲福利视频三区| 久久久人成影片一区二区三区| 欧美在线国产| 一本不卡影院| 久久夜色精品国产亚洲aⅴ| 亚洲精品乱码久久久久久久久| 亚洲亚洲精品三区日韩精品在线视频 | 欧美剧在线观看| 久久久久久久欧美精品| 欧美日韩午夜视频在线观看| 欧美在线一二三四区| 欧美精品在线极品| 欧美国产在线电影| 韩日精品在线| 欧美专区日韩视频| 欧美在线欧美在线| 欧美三级在线视频| 亚洲精品资源| 亚洲日韩欧美视频一区| 久久日韩精品| 欧美寡妇偷汉性猛交| 国内综合精品午夜久久资源| 一区二区三区四区国产| 亚洲图片欧美一区| 国产精品久久久久久久app| 亚洲精品免费一二三区| 日韩午夜精品| 国产精品一区二区在线| 亚洲一区二区免费看| 欧美一区二区三区视频| 国产毛片精品国产一区二区三区| 亚洲影视九九影院在线观看| 性娇小13――14欧美| 国产亚洲aⅴaaaaaa毛片| 欧美亚洲免费在线| 欧美激情成人在线视频| 欧美aⅴ一区二区三区视频| 久久久青草青青国产亚洲免观| 国产亚洲亚洲| 欧美激情2020午夜免费观看| 一本色道久久加勒比精品| 亚洲综合日韩在线| 永久555www成人免费| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲欧洲一区二区三区在线观看| 亚洲视频在线播放| 一本色道久久综合狠狠躁的推荐| 亚洲一区二区三区高清| 尤物九九久久国产精品的特点 | 亚洲中字黄色| 亚洲一区bb| 久久综合九色九九| 亚洲第一福利社区| 日韩午夜电影av| 欧美一区二区女人| 欧美成人在线网站| 国产伦精品一区二区三区四区免费 | 欧美日韩一区二区国产| 欧美日韩免费观看中文| 国产亚洲精品高潮| 亚洲精品字幕| 久久久水蜜桃| 亚洲婷婷综合久久一本伊一区| 欧美在线亚洲在线| 欧美日韩一区二区三区在线看 | 国产精品一区二区三区成人| 国产一区二区三区久久久| 亚洲精品影院在线观看| 久久久久高清| 午夜精品亚洲| 国产欧美日韩专区发布| 国产精品99久久久久久久久久久久| 麻豆av福利av久久av| 亚洲宅男天堂在线观看无病毒| 欧美激情视频在线免费观看 欧美视频免费一| 国产精品私房写真福利视频| 一区二区三区www| 欧美va天堂va视频va在线| 亚洲欧美中文日韩v在线观看| 欧美另类69精品久久久久9999| 在线观看av不卡| 欧美在线三区| 亚洲男女自偷自拍| 欧美性猛交99久久久久99按摩| 亚洲巨乳在线| 欧美 日韩 国产在线| 欧美一区亚洲二区| 国产精自产拍久久久久久蜜| 亚洲人成啪啪网站| 欧美福利视频在线| 欧美日本中文字幕| 午夜精品福利一区二区蜜股av| 亚洲精品久久久久| 久久亚洲综合色| 亚洲高清免费| 欧美成人精品h版在线观看| 久久成人精品视频| 亚洲美女中出| 欧美一区=区| 亚洲高清免费视频| 国产精品99久久久久久久vr| 亚洲欧美精品在线观看| 亚洲人成在线观看一区二区| 夜夜精品视频| 亚洲欧洲综合另类在线| 在线一区亚洲| 亚洲国产另类精品专区| 一本色道久久综合亚洲精品高清 | 最新日韩在线视频| 欧美精品一区三区| 性做久久久久久免费观看欧美| 欧美亚洲专区| 在线一区二区日韩| 老鸭窝亚洲一区二区三区| 欧美一区日韩一区| 欧美日韩色婷婷| 毛片一区二区三区| 国产精品影视天天线| 亚洲精品乱码久久久久久日本蜜臀| 国产欧美一区二区三区另类精品| 欧美99久久| 狠狠色丁香婷综合久久| 亚洲午夜日本在线观看| 亚洲专区在线视频| 欧美精品 国产精品| 亚洲欧洲精品一区二区三区波多野1战4| 精品av久久久久电影| 免费试看一区| 亚洲自拍偷拍色片视频| 久久久欧美精品sm网站| 一区二区高清视频在线观看| 国产精品永久在线| 蜜乳av另类精品一区二区| 久久永久免费| 夜夜嗨av一区二区三区四区| 国产精品免费小视频| 欧美在线一区二区三区| 欧美v日韩v国产v| 亚洲网友自拍| 亚洲大胆人体视频| 午夜精品免费在线| 亚洲毛片视频|