OSG支持市面上常见的立体方式,比如互补色立体(红蓝、红灰等),quad buffer立体(被动立体,使用快门眼睛与显卡相连,左右眼图片频闪)以及水平和竖直分离窗口立体。所有的OSG程序都可以通过简单的设置来实现立体效果或者通过环境变量等。总之是一件简单的事情。
启用红蓝立体,可以直接使用如下命令:
osgviewer --stereo cow.osg
注意:如果通过外设完全实现了立体就要把OSG的立体效果关闭掉。
环境变量参数:
OSG_STEREO | ON | 打开立体 |
OFF | 关闭立体(默认) | |
OSG_STEREO_MODE | ANAGLYPHIC | 使用互补色立体 (默认) |
QUAD_BUFFER | 使用quad buffered立体(被动立体) | |
HORIZONTAL_SPLIT | 使用水平分离立体 | |
VERTICAL_SPLIT | 使用垂直分离立体 | |
OSG_SCREEN_DISTANCE | 0.50 | 设置观察者和屏幕距离(米) |
OSG_SCREEN_HEIGHT | 0.26 | 设置屏幕图像高(米) |
OSG_SCREEN_WIDTH | 0.325 | 设置屏幕图像宽(米) |
OSG_EYE_SEPARATION | 0.06 | 设置双眼距离 |
OSG_SPLIT_STEREO_HORIZONTAL_SEPARATION | 42 | 设置左右vieport的距离(像素) |
OSG_SPLIT_STEREO_HORIZONTAL_EYE_MAPPING | LEFT_EYE_LEFT_VIEWPORT | 设置左眼观察左viewport,右眼观察右viewport(默认) |
LEFT_EYE_RIGHT_VIEWPORT | 设置左眼观察右viewport,右眼观察左viewport | |
OSG_SPLIT_STEREO_VERTICAL_SEPARATION | 42 | 设置上下viewport的距离(像素) |
OSG_SPLIT_STEREO_VERTICAL_EYE_MAPPING | LEFT_EYE_TOP_VIEWPORT | 设置左眼观察上viewport,右眼观察下viewport(默认) |
LEFT_EYE_BOTTOM_VIEWPORT | 设置左眼观察下viewport,右眼观察上viewport |
命令行参数:
--stereo | Switch on stereo. | |
--stereo | ON | Switch on stereo. |
OFF | Switch off stereo. | |
ANAGLYPHIC | Switch on ANAGLYPHIC stereo. | |
QUAD_BUFFER | Switch on QUAD_BUFFER stereo. | |
VERTICAL_SPLIT | Switch on VERTICAL_SPLIT stereo. | |
HORIZONTAL_SPLIT | Switch on HORIZONTAL_SPLIT stereo. |
示例:
打开立体:
osgviewer --stereo cow.osg
打开qbuffer立体:
osgviewer -stereo QUAD_BUFFER cow.osg
在环境变量中设置
export OSG_STEREO=ON export OSG_STEREO_MODE=QUAD_BUFFER osgviewer cow.osg
环境变量设置为OFF,命令行设置为ON,以命令行为主
export OSG_STEREO=OFF export OSG_STEREO_MODE=QUAD_BUFFER osgviewer -stereo cow.osg
SIZE MATTERS:
立体都是通过分离左右眼的视觉画面来形成的。因此那些个与距离相关的参数的设置就相当关键,给出的默认值都是认为的一般应该的值,但是用户在调试立体的时候要跟据自己的具体情况进行修改,比如OSG_SCREEN_HEIGHT可能比较大等。要想让立体感强,操作器也是相当关键的,尽量选择操作方式缓一点的连续性强一点的操作器,比如FlightManipulator,而Trackball就不可取。等等。大家自己多多实验吧。
注意使用QBuffer的立体模式(被动立体)可能需要英伟达Q系列的显卡支持,外设有快门眼镜等,关于立体的更多知识可以百度。
浏览次数:56119 次