查看: 1366|回复: 8

osgText显示

[复制链接]

该用户从未签到

发表于 2013-5-14 10:48:33 | 显示全部楼层 |阅读模式
如何使文字显示在屏幕最前,不被模型遮挡?

该用户从未签到

发表于 2013-5-14 11:25:23 | 显示全部楼层
HUD中显示可以做到

该用户从未签到

 楼主| 发表于 2013-5-14 16:48:05 | 显示全部楼层
本帖最后由 wulingxia 于 2013-5-14 16:49 编辑

文字直接使用 text->getOrCreateStateSet()->setMode(GL_DEPTH_TEST,osg::StateAttribute::OFF); 就可以。

三维空间里绘制的线段,如何使其不被遮挡,总可见?不用设置Camera,还有别的简易方法吗?

该用户从未签到

发表于 2013-5-15 08:09:04 | 显示全部楼层
wulingxia 发表于 2013-5-14 16:48
文字直接使用 text->getOrCreateStateSet()->setMode(GL_DEPTH_TEST,osg::StateAttribute::OFF); 就可以。
...

text->getOrCreateStateSet()->setMode(GL_DEPTH_TEST,osg::StateAttribute::OFF); 设置这个需要一个条件 就是保证text永远是最后一个进行渲染的,否则还是可能被遮住  

该用户从未签到

发表于 2013-5-15 08:10:22 | 显示全部楼层
而且如果depthtest 一直关闭 会影响其他的模型的渲染结果

该用户从未签到

 楼主| 发表于 2013-5-15 09:32:51 | 显示全部楼层
设置了HUDCamera,并将text和绘制的线添加为其子节点后,text和三维线段都不在原来的位置了,如何解决?

该用户从未签到

发表于 2013-5-15 09:49:39 | 显示全部楼层
text和三维线段都不在原来的位置了,如何解决?   
这句又是什么意思?好像已经不是您帖子中的问题,又开始猜谜语么

该用户从未签到

 楼主| 发表于 2013-5-15 10:24:11 | 显示全部楼层
本帖最后由 wulingxia 于 2013-5-15 10:46 编辑
liuzhiyu123 发表于 2013-5-15 09:49
text和三维线段都不在原来的位置了,如何解决?   
这句又是什么意思?好像已经不是您帖子中的问题,又开始 ...


做的是一导航图标的功能,图标指向(空间线段表示)模型零部件,图标文字显示模型零部件名称。

未使用HUDCamera时,A零件的导航图标是在A位置(正确位置),但模型的其他零件会遮挡部分文字与线段;使用HUDCamera后,图标被移动到了B位置(B位置无模型,所以无法检测是否发生遮挡),同时图标的指示线也变形了!(足够详细了吧!)

该用户从未签到

发表于 2013-5-15 10:43:55 | 显示全部楼层
这已经是两个问题了,您的HUDcamera的相关viewmatrix和projection 的设置是否跟主相机相同,您所说的A、B 位置 又是什么,不同的camera设置 即使是相同的 vertex 变换到屏幕上 也是不同的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表