查看: 890|回复: 13

HUD与屏幕分辨率的一些问题

[复制链接]

该用户从未签到

发表于 2016-4-29 09:42:12 | 显示全部楼层 |阅读模式
一开始我在1280X1024的分辨率上使用hud绘制了几个标志,但是当程序换到1366X768的屏幕上时位置就不对了,请问下这是什么情况?有什么好的解决方法么?

正确

正确

错误

错误

该用户从未签到

 楼主| 发表于 2016-4-29 10:17:41 | 显示全部楼层
本帖最后由 JJLee 于 2016-4-29 10:31 编辑

补充一下,我这些标志是动态创建的,就相当于qq截图时候可以在图上进行标志一样。绘制时是根据鼠标的getX和getY得到的坐标生成节点然后添加到场景中。
目前主要的问题是在什么分辨率的屏幕上绘制就只能在其分辨率下显示正确,换了一个分辨率后显示的位置就不对了。

QQ截图20160429102826.png

该用户从未签到

发表于 2016-4-30 20:46:36 | 显示全部楼层
直接画在物体上,不要在hud窗口中画。

该用户从未签到

 楼主| 发表于 2016-5-3 16:32:27 | 显示全部楼层
smash 发表于 2016-4-30 20:46
直接画在物体上,不要在hud窗口中画。

直接画在空间中的话不是有可能会被其他物体挡住么?

该用户从未签到

发表于 2016-5-4 00:04:37 | 显示全部楼层
JJLee 发表于 2016-5-3 16:32
直接画在空间中的话不是有可能会被其他物体挡住么?

关掉深度检测,后渲染。

该用户从未签到

 楼主| 发表于 2016-5-4 10:27:36 | 显示全部楼层
smash 发表于 2016-5-4 00:04
关掉深度检测,后渲染。

喔喔,还有个问题,如何在空间中这样画标志,现在我在HUD中绘制的话比较容易,因为HUD就相当于一个2D的平面,我只需要在这个平面上绘制,但是如果要把它们绘制在空间中的话,我怎么找到一个像HUD这样的平面。
本人新手,不知道描述清楚没?

该用户从未签到

发表于 2016-5-4 23:15:49 | 显示全部楼层
可以空间坐标转换为屏幕坐标,然后绘制标志。

该用户从未签到

 楼主| 发表于 2016-5-5 10:09:17 | 显示全部楼层
本帖最后由 JJLee 于 2016-5-5 16:18 编辑
jevonsea 发表于 2016-5-4 23:15
可以空间坐标转换为屏幕坐标,然后绘制标志。


嗯,我在尝试这个方向看能否可行,不过我是反过来,把屏幕坐标转换为空间坐标。谢谢!

该用户从未签到

 楼主| 发表于 2016-5-5 10:10:06 | 显示全部楼层
不知道还有没有人有其他的方案?谢谢!

该用户从未签到

 楼主| 发表于 2016-5-5 16:17:25 | 显示全部楼层
我解决问题了,谢谢各位的指导!解决的方案就按照上面说的就可以了。

该用户从未签到

发表于 2016-5-5 21:23:53 | 显示全部楼层
JJLee 发表于 2016-5-5 16:17
我解决问题了,谢谢各位的指导!解决的方案就按照上面说的就可以了。

没那么麻烦,有个东西叫autotransform,设置成自动对着屏幕就行了。

该用户从未签到

 楼主| 发表于 2016-5-6 16:31:18 | 显示全部楼层
smash 发表于 2016-5-5 21:23
没那么麻烦,有个东西叫autotransform,设置成自动对着屏幕就行了。

喔喔,原来还有个这样的东西,我之前都是自己实现一直对着屏幕。感谢指导,这个赞!

该用户从未签到

发表于 2016-5-12 23:41:04 | 显示全部楼层
怎么解决的啊 我用高分辨率跑DEMO位置都在右下角。求教

该用户从未签到

 楼主| 发表于 2016-5-23 10:31:13 | 显示全部楼层
striver 发表于 2016-5-12 23:41
怎么解决的啊 我用高分辨率跑DEMO位置都在右下角。求教

我的解决方法就是把屏幕坐标转换为空间坐标,没有使用HUD,使用HUD的话就会有分辨率的问题,所以我把它转换为空间中的,比如我绘制一个矩形,就把矩形的四个顶点转换为空间坐标即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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