首页 文章

OpenSceneGraph - 实际大小的对象

提问于
浏览
0

我试图在OSG中创建一个逼真的场景,我的尺寸问题 .

让我们假设我将始终在同一个屏幕上玩我的小游戏,因此我确切地知道它的分辨率和像素密度 .

现在,在现实生活中,距离你10米的1x1x1米的盒子的apparnet尺寸为10cmx10cmx10cm . 我想创造相同的效果 .

我有一个在Sketchup上制作的一盒1x1x1米的模型,我把它放在距离相机10米的场景中(我已经体验过,我可以告诉OSG使用正确的单位) . 问题是,在800x800像素的窗口中,盒子是100x100像素(比如说),在80x80像素的窗口中,盒子是10x10像素 . 我想要的是盒子总是10厘米 . 好的是我知道我想要用于这个确切项目的屏幕的大小,分辨率和dpi,所以我可以使用“常量” .

不过,我不知道该怎么做 . 我的第一个猜测是缩放世界以匹配正确的大小 . 但我不确定比例因素是什么 .

我还没有找到任何直接的方法在OSG中这样做...

你有什么建议吗?谢谢!

1 回答

  • 1

    我的前两个想法是:

    • 您可以覆盖重塑(这就是GLUT中的内容,搜索在特定窗口系统的OSG事件队列中推送resizeWindow事件的调用) - 始终将其传递给屏幕的整个宽度/高度你的窗口,并告诉它使用0,0作为原点,或者如果你总是以全屏窗口开始,只需用空函数覆盖它 .

    • 如果这不起作用,您可以根据窗口的尺寸和您之前对全屏尺寸的了解重置相机的视锥 . 在更改投影矩阵时应该有很多信息 - 如果找不到特定于OSG的信息,任何关于投影矩阵的OpenGL信息也适用于OSG .

相关问题