translate_of_ogre
node->yew(x);
node->tranlate(..., local);
和
node->tranlate(..., local);
node->yew(x);
结果不一样。观察了下是这样:
ogre单个scenenode的变换是从先到后顺序的(代码上看就是从上到下)。但是scenenode之间确实先进行自己的变换再进行父辈的变换的,逻辑上说是从下到上。opengl看着和逻辑上都是从下到上的。D3D好象也是都是同一个顺序的但是是从上到下的,我记不太清楚了。
ogre的
平移默认参照是父代的坐标。
旋转默认参照是局部坐标。而且相对于父代节点,旋转的中心总是自己,参考坐标系的东西只是方向。(这样的话不在坐标轴上的物体肯定是需要先旋转后平移这个过程)
真是坑爹。对于我个人的感受就是没节操,不统一。
不太习惯。OO包的层次多了,很多时候要去关注一些别人规定的规则,好不舒服。这是我不喜欢OO的一点。