下面会详细的介绍怎样在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
浏览次数:56856 次