【转】Ogitor中Gizmo的绘制技巧 - 战魂小筑 - C++博客 - Go语言中文社区

【转】Ogitor中Gizmo的绘制技巧 - 战魂小筑 - C++博客


 

Ogitor中Gizmo的绘制技巧

   Gizmo可以理解为坐标轴,就是3D软件里3个轴并可以调整对象的各种变换属性的东西.

    绘制Gizmo其实很简单,这里只说箭头的绘制中的一些技巧.一开始我的做法是MAX里建模,如图

image

然后创建3个模型对象,以Z为父级(我的坐标系是Z朝上), X,Y分别挂接Z节点

按照Ogitor中的介绍,需要将Z关闭绘制,结果,绘制顺序有错误

image

正确的效果应该是蓝色(Z轴,朝上)盖住绿色的Y轴.

这就涉及到X,Y,Z轴模型在Z关闭后的绘制顺序,需要通过检查对象的位置,按照从远到近的顺序进行绘制.

但是一开始每个轴的单位坐标都是在箭头的下部,因此,怎么旋转摄像机,都只能出1个绘制顺序.这就是问题所在. 因此,决定重新修改箭头的本地坐标系,调整为下图所示

image

MAX中,将箭头作为本地坐标原点, 并修改排序算法,对Z关闭后的对象按照画家算法排序,如图:

image

绘制效果正确.

解决这个问题时,我查阅了Ogitor代码,并在Ogitor编辑器资源里找到了箭头资源,但是代码中并没有用到这个资源,而是改用

AxisGizmo::createMesh(Ogre::SceneManager *manager, Ogre::String name)

函数用代码方式创建Gizmo,估计也是和我碰到一样的问题吧

Ogitor中Gizmo的绘制技巧 - 战魂小筑 - C++博客

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/haiyyang/article/details/6287632
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-08 11:05:35
  • 阅读 ( 1500 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢