1 VRML编辑工具
VRML文件使用标准的文本格式,可以用任何文本编辑器进行阅读。阅读文本对于调试、自动处理和直接改变代码很有帮助。同样,如果使用正确的VRML语法,可以用任何通用的文本编辑器创建虚拟场景,就象创建HTML网页一样。[大谦MATLAB,dqmatlab点com]
目前创建虚拟世界的主要方法还是使用三维编辑工具。利用这些工具,可以在对VRML语言没有深入了解的情况下创建比较复杂的虚拟场景。例如,可以从一些CAD软件直接导入三维对象。对于VRML生成,主要有两类三维编辑工具:
可以导出到VRML格式的常用三维生成软件包;
本地VRML生成工具。
常用的三维编辑器不将VRML作为默认格式,但可以另存为VRML格式。有很多商业软件包,如3D Studio,具有这种功能。这些工具功能很多而且很容易使用。常见的三维编辑器面对特定专业人群开发,例如面对艺术、动画、游戏或科技应用等。根据应用领域的不同,它们提供了不同的工作环境。这些常用三维编辑器中,有些会很强大、很昂贵,并且不好学,而有些相对便宜并能满足特定的需求。
有趣的是,很多常用商业三维编辑器的图形用户界面与本地VRML生成工具的在很多方面很相像。例如,除了用不同图形学方法显示三维场景以外,它们都提供了层次树形视图和进行三维元素定义的快捷方式。
本地VRML编辑器将VRML作为编辑器自己的格式。这就保证了编辑器中的所有图形都符合VRML规范。不幸的是,目前达到商业化级别的高级VRML编辑器很少。大部分本地VRML编辑器还处在开发阶段,而且比常用三维编辑器更难使用。Ligo公司开发的V-Realm 编辑器是一个例外。它是目前在个人计算机上可以使用的最高级的VRML编辑工具之一。V-Realm编辑器只在Windows操作系统上可用。
2 V-Realm编辑器的安装
安装Simulink三维动画模块时,V-Realm编辑器的文件已经拷贝到硬盘上了,但安装还没有完成。安装VRML编辑器会写一个密匙到Windows注册表中,这样就可以使用V-Realm编辑器中的其他库文件,并且使Simulink三维动画模块中的“Edit”按钮与本编辑器相连。
按照下面的步骤安装VRML编辑器。
(1)启动MATLAB。
(2)在MATLAB命令窗口中输入
>> vrinstall -install editor
或输入
>> vrinstall('-install','editor')
MATLAB显示下面的信息:
Starting editor installation...
Done.
(3)输入
>> vrinstall -check
如果编辑器安装成功,MATLAB会显示下面的信息。
VRML editor: installed
3 设置虚拟场景的默认编辑器
可以用一个V-Realm编辑器或任何文本编辑器编辑虚拟场景,文本编辑器中通过VRML语言进行编辑。使用vrsetpref和vrgetpref命令,可以将编辑器用于编辑场景。
下面的例子演示如何将编辑器从V-Realm编辑器变为文本编辑器。
(1)在MATLAB命令窗口中输入
>> vrinstall -check
确定是否安装了V-Realm编辑器,如果安装了,MATLAB显示
VRML editor: installed
(2)输入下面的命令行,确定默认编辑器。
>> a=vrgetpref
MATLAB显示
a=
DefaultFigurePosition: [5 25 400 320]
DefaultPanelMode: 'halfbar'
DefaultViewer: 'web'
Editor: [1x60 char]
HttpPort: 8123
TransportBuffer: 5
VrPort: 8124
变量a是一个结构数组,需要通过索引确定其Editor属性。
(3)确定默认编辑器,输入
>> a.Editor
MATLAB显示
ans =
"%matlabroot\toolbox\sl3d\vrealm\program\vrbuild2.exe" "%file"
这是V-Realm编辑器可执行文件的路径。V-Realm编辑器是当前VRML编辑器。
(4)确定V-Realm编辑器是默认的编辑器。在MATLAB命令窗口中输入
>> vrpend
(5)在vrpend模型窗口中,双击“VR Sink”块,打开“Parameters: VR Sink”对话框,如图2-2所示。
图2-2 “Parameters:VR Sink”对话框
(6)单击“Edit”按钮。vrpend模型在V-Realm编辑器中被打开,如图2-3所示。
图2-3 V-Realm编辑器
(7)输入下面的命令行,将默认的编辑器改变为MATLAB编辑器。
>> vrsetpref('Editor','%matlabroot\bin\win32\meditor.exe %file')
指定编辑器可执行文件的路径,可以将任何想用的编辑器设置为当前编辑器。
(8)重复vrpend演示,打开“VR Sink Block Parameters”对话框。
(9)单击“Edit”按钮,打开MATLAB编辑器,它现在被设置为默认的VRML编辑器。
(10)将V-Realm编辑器作为默认的VRML编辑器,输入
>> vrsetpref('Editor','factory')
现在单击“Edit”按钮将启动V-Realm编辑器。
4 V-Realm编辑器的界面环境
安装Simulink三维动画模块时,V-Realm编辑器的文件就被拷贝到硬盘中了。该编辑器的可执行文件位于MATLAB安装目录下的\toolbox\sl3d\vrealm\program目录中,名称为vrbuild2.exe。双击该文件的图标,可以打开编辑器的界面,如图2-4所示。
图2-4 V-Realm编辑器的界面
V-Realm编辑器的图形界面不仅提供了三维场景的图形表示和进行图形元素交互创建的工具,还提供了虚拟世界中所有结构元素的层次树形视图。图2-5是打开一个虚拟世界以后的界面显示,其中左侧为树形视图,右侧为虚拟世界的图形显示。
图2-5 打开一个虚拟世界
虚拟世界中的这些结构元素称为节点。V-Realm编辑器根据这些节点的类型列出它们和它们的属性,它支持所有54种VRML97类型。对于每种节点,有一个修改节点参数的便捷工具。可以有两种方法获取节点属性:
使用对话框(这些对话框可以从树形查看器中得到);
直接使用定点设备。
多数情况下,使用树形视图更容易,因为在三维场景中选择一个指定的对象是比较困难的。使用树形视图,还可以很容易地改变某些节点的嵌套水平,以便根据自己的想法修改虚拟世界。在树形查看器中,可以给节点命一个惟一的名字——在Simulink三维动画模块中,它是必要的。
5 用V-Realm编辑器创建虚拟场景
用V-Realm编辑器可以创建虚拟场景,并在场景中添加几何对象、设置颜色、材质、光照和纹理等。
节点
虚拟场景在数据结构上是一个有向无环图,其中包括不同种类的场景对象,每一类对象可以称为场景的一个节点。如图2-6所示,V-Realm编辑器中可以插入、编辑的节点包括外观、环境、体元、组合、光照和传感器等。
图2-6 “Nodes”菜单
三维图形元素
三维图形元素(体元)是构建三维场景模型的基本要素。如图2-7所示,V-Realm编辑器提供了立方体、锥体、圆柱、球体、文本、网格、自由台体等体元。
图2-7 V-Realm编辑器提供的体元
除了利用体元自己创建三维对象外,V-Realm编辑器还提供了一个对象库,可以将库中的对象导入到场景中来。图2-8是导入对象的“Select Object”对话框。
颜色
在场景中右键单击对象,然后在弹出的菜单中单击“Color”选项,打开“Color Mode Painter”对话框,如图2-9所示。在对话框中可以设置漫反射光、环境光和镜面光的颜色,以及环境光的强度、颜色的亮度、透明度等。
图2-9 “Color Mode Painter”对话框
光照、材质和纹理
光照对于场景效果非常重要,分别单击工具条上的按钮,可以设置镜面光、点光和聚光。V-Realm编辑器提供了材质库和纹理库,可以直接从库中导入对象的材质和纹理。导入材质使用“Select Material”对话框,如图2-10所示;导入纹理使用“Select Texture”对话框,如图2-11所示。
图2-10 “Select Material”对话框 图2-11 “Select Texture”对话框
6 用V-Realm编辑器编辑虚拟场景
创建与编辑的过程是共同进行的,创建是目的,编辑是过程。V-Realm编辑器提供了比较完善的交互编辑功能。
例如图2-12中,点击球体对象时,显示球体的包围盒,并在球心坐标轴方向上显示带有绿色圆圈的引线。拖拉包围盒上的白色手柄,可以缩小或放大球体,如图2-13所示;拖拉引线上的绿色圆圈,可以旋转球体,如图2-14所示。
旋转球体还有另一种常见形式,在球体的右击弹出式菜单中,在“Manipulators”子菜单中单击“Center ball”选项,可以设置滚动球操作。如图2-15所示,在图中拖拉鼠标时,球随着鼠标绕球心滚动。
图2-13 放大球体 图2-14 旋转球体
通过设置,还可以查看对象的线框模型。图2-16中是球体的线框模型。
图2-15 跟踪球技术 图2-16 球体的线框模型