zoukankan      html  css  js  c++  java
  • Ogre空间变换,setPosition(),setDerivedPosition()和translate()的正确使用。

    在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,这个参考空间是决定移动方向的。其中有世界空间,父空间,本地空间。最终决定移动方向的是这三个参考空间的当前朝向
     
    在实现第一人称控制角色中,选用的参考空间便是本地空间,因为角色是会跟随鼠标的移动而切换朝向的,即节点的本地坐标空间总是
    在变化的,要想让角色朝着自己的“前后左右”移动,就需要用自身的坐标空间来确定移动方向了。
  • 相关阅读:
    problems_springmvc
    skills_eclipse
    problems_azkaban
    CentOS7与CentOS6的不同
    2021暑期cf加训2
    2021牛客暑期多校训练营4
    2021牛客暑期多校训练营3
    2021暑期cf加训1
    2021牛客暑期多校训练营2
    10.git rm 移除文件
  • 原文地址:https://www.cnblogs.com/zhuofanxu/p/3099262.html
Copyright © 2011-2022 走看看