主要内容

有Matlab®GUI的机械手在积极立体视觉模式

VRManipul_stereo3D示例在主动立体视觉模式下显示了一个机械手。它说明了立体声渲染属性的影响以及如何使用立体视觉VRFIGURE属性的方式。

仅当显卡支持Quad-Buepered OpenGL渲染时,操作器才会以有源立体视觉视觉模式显示,并且由图形卡驱动程序启用。万博1manbetx请注意,只有使用带有主动快门眼镜,自动立体3D监视器或类似的主动立体视觉技术的3D能力的显示器(或3D电视机),立体视觉效果才能看到立体视觉效果。

启动示例后,您将看到一个带有三个滑块的控制面板。使用前两个滑块来设置立体视觉VRFIGURE属性,即用于设置Stereo3DCameraOffset和Stereo3Dhit(Hit代表水平图像翻译)。使用第三个滑块来缩放相机。

我们创建的每个虚拟场景都有最大数量的可用深度,可以创建有效的3D效果。通过调整下面的2个属性,我们可以调整给定场景的最佳3D感知,具有给定摄像机缩放(视点视图)设置。

Stereo3DCameraOffset属性定义了左右摄像机(视点)之间的横向距离的一半。通过调整相机之间的距离,我们能够动态地增加或减少场景的深度。

Stereo3Dhit属性定义左眼图像的水平移位,以改变对应点视差的值。通过更改其值,您可以更改场景的屏幕深度位置。

有关立体视觉VRFIGURE属性的更多信息,请参阅产品文档。

创建一个世界对象

我们首先创建代表虚拟世界的Vrworld类的对象。

wh = vrworld('vrmanipul.x3d');

打开虚拟世界

必须在使用之前打开世界。这是通过开放命令完成的。

打开(wh);

访问VRML节点

要访问VRML节点,必须创建适当的vrnode对象。该节点由其名称和它所属的世界标识。

H.View1 = VRNODE(WH,'查看1');H.View1.FieldOfview = 0.4;

使用立体视觉和导航属性面板创建对话框

该对话框用于交互式更改刚刚创建的VRNode对象引用的VRML节点的字段值。

figh =对话框('位置',[360 350 530 185],'名称''万博1manbetxSimulink 3D动画示例'......'windowstyle''普通的'......'closerequestfcn'......'w = vrworld('vrmanipul.x3d'');关闭(w);尝试;删除(w);结尾;塞子里德);%创建立体视觉属性面板立体声= UIPanel(FIGH,......'标题''立体视觉属性'......'单位''像素'......'位置',[0 72 530 103]);%创建立体视觉相机偏移控制H.CameraOffset = UICONTROL('父母',立体声,'风格''滑块'......'位置'[164 62 352 20],'价值',0,......'min',0,'最大限度',100,......'打回来''set(h.vrfig,'stereo3dcamaoffset'',get(h.cameraoffset,''值')/ 10);');UICONTROL('父母',立体声,'位置',[0 65 154 14],'细绳'“相机偏移”......'风格''文本''水平对齐''对');%创建立体视觉水平图像转换控制H.HIT = UICONTROL('父母',立体声,'风格''滑块'......'位置'[164 21 352 20],'价值',0,......'min',0,'最大限度',0.35,......'打回来''set(h.vrfig,''stereo3dhit'',get(h.hit,'''''));');UICONTROL('父母',立体声,'位置',[024,154 14],'细绳''水平图像翻译'......'风格''文本''水平对齐''对');%创建导航属性面板NavigationPanel = Uipanel(FIGH,......'标题''导航'......'单位''像素'......'位置',[0 0 530 62]);%创建相机视图控件H.Zoom = UICONTROL('父母',NavigationPanel,'风格''滑块'......'位置'[164 21 352 20],'价值',1,......'打回来',['ViewPointdesc = get(h.vrfig,'''''''');'......'H.(ViewPointDESC).FieldOfview = 0.4 + 0.4 *(1-Get(H.zoom,'值'));']);UICONTROL('父母',NavigationPanel,'位置',[024 154 14],'细绳''相机缩放'......'风格''文本''水平对齐''对');

尝试在活动立体视觉模式下创建虚拟图形

如果在活动立体视觉模式下创建虚拟图,则应该可以修改立体视觉性质,并通过快门眼镜查看立体视觉3D效果。

%抑制有关有源立体视觉模式失败的可能警告,并创建VRFigure[lwm,lwi] = lastwarn;ws =警告('离开''SL3D:界面:工程机关);H.VRFIG = VRFIGURE(WH,'stereo3d''积极的');%设置句柄setappdata(figh,'处理', H);%set默认值defco = 22;defhit = 0.014;SET(H.VRFIG,'stereo3dcameraoffset',defco / 10,'stereo3dhit',defhit);SET(H.CameraOffset,'价值',办法;设置(H.Hit,'价值',defhit);%绘制vrfigureVrdrawnow;%重新启用有关有源立体视觉模式故障的可能警告警告(WS);Lastwarn(LWM,LWI);

检查虚拟图是否处于活动立体视觉模式

如果无法在活动立体视觉模式下创建虚拟图,则显示消息和灰色立体视觉属性控件。

如果Strcmp(get(h.vrfig,'stereo3d'),'离开')套(立体声,'标题',[get(立体塞,'标题''(不适用于当前显示)']);套(get(立体声el,'孩子们'),'使能够''离开');SET(H.VRFIG,'名称''VR操纵器(立体显示器未检测到)');结尾

该示例通过关闭控制面板完成。