Ogitor中Gizmo的绘制技巧

本文详细介绍了在3D软件中遇到的Gizmo绘制顺序问题,并提供了通过修改轴箭头的本地坐标系来解决此问题的方法,确保了Z轴正确覆盖Y轴,实现更准确的3D对象变换属性调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,估计也是和我碰到一样的问题吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值