Ogre空間變換,setPosition(),setDerivedPosition()和translate()的正確使用。

來源:互聯網
上載者:User

在Ogre裡,節點的位置移動可以使用Node::setPosition(p)和Node::translate(p1,p2)來個空間變換函數,其中設定位置函數setPosition() 只有一個參數—一個三維座標點,它是相對

要移動節點的父節點而言的。 相對父節點位置位移的例子(以父節點的位置為座標原點):ParentNode   WorldPosition(0,10,0)ChildNode      setPosition(0,10,-10)—>WorldPosition(0,20,-10)然而setDeriverdPosition()是設定該節點的世界絕對座標的, 相對全局座標原點位置位移的例子(設定在全局座標的位置):ParentNode   WorldPosition(0,10,0)ChildNode      setDeriverdPosition(0,10,-10)—>WorldPosition(0,10,-10)與其他任何節點都沒有關係! 最後說說 tanslate(p1,p2),它是相對父節點移動的,兩個參數,其中一個是移動量(三維向量),另一個是參考空間TransfromSpace,這個參考空間是決定移動方向的。其中有世界空間,父空間,本地空間。 最終決定移動方向的是這三個參考空間的當前朝向 在實現第一人稱控制角色中,選用的參考空間便是本地空間,因為角色是會跟隨滑鼠的移動而切換朝向的,即節點的本地座標空間總是在變化的,要想讓角色朝著自己的“前後左右”移動,就需要用自身的座標空間來確定移動方向了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.