osg(osg中文社区)-osgEarth-osgViewer-基于OpenGL-开源三维渲染引擎-图形引擎-虚拟仿真工具-osg教程-osg仿真

Linux立体配置

当前位置:首页 > 学习支持 > 平台介绍 > Linux


下面会详细的介绍怎样在Linux下使用英伟达的显卡如何配置OSG的立体效果。具体其它厂商的显卡(比如坑爹的ATI)则需要其它熟悉该显卡且有编程经验的人提供帮助。


背景

本文介绍的是被动式立体,被动式立体是指通过一张显卡间隔的输出两个图片,这一帧是左眼的,下一帧是右眼的,然后通过一个眼镜与显卡相连,这样显卡就能控制该设备,当显示器显示的是左眼图片时,显卡就控制眼镜左眼能看到图片,右眼关闭,以此类推。当前支持这种被动式立体的只有英伟达的Quadro系列显卡。应该也有许多其它的途径通过其它的显卡实现该效果。下面是详细的介绍。


设置XF86Config配置文件

通过读取英伟达Linux驱动的说明,需要特别关注TwinView和Xinerama扩展相关。可以使用在Shuttle XPC+Geforce 6800GT+Suse 9.1下的 XF86配置文件做为参考。

该配置文件的一个关键部分就是Device代码段,示例如下:

Section "Device"
  Identifier   "TwinView"
  BoardName    "0x0322"
  BusID        "2:0:0"
  Driver       "nvidia"

  VendorName   "NVidia"
    Option "TwinView"
    Option "SecondMonitorHorizSync"   "15-100"
    Option "SecondMonitorVertRefresh" "50-120"
    Option "TwinViewOrientation"      "LeftOf"
    Option "MetaModes"                "1024x768,1024x768"
    Option "NoTwinViewXineramaInfo" "true"
EndSection

修改这些字段时,最重要的是做好备份,以免搞错,还能回退。一定要提醒的是second output的 Horizontal frequencies和 Vertical frequencies设置要适当,如果设置错误,可能会毁坏显示卡。


运行OSG程序进行测试

通过如下参数打开立体设置:

osgviewer --stereo HORIZONTAL_SPLIT cow.osg

如果测试正常,也可以通过增加环境变量,使得所有的OSG程序默认都有立体效果,注意其中的参数。

export OSG_STEREO_MODE=HORIZONTAL_SPLIT
export OSG_SCREEN_DISTANCE=3.0
export OSG_SCREEN_WIDTH=2.0
export OSG_SCREEN_HEIGHT=1.5
export OSG_STEREO=ON

osgviewer cow.osg