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

立体设置

当前位置:首页 > 关于osg > 使用指南 > 用户指南

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系列的显卡支持,外设有快门眼镜等,关于立体的更多知识可以百度。