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节点,必须创建适当的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操纵器(立体显示器未检测到)');结尾
该示例通过关闭控制面板完成。