主要内容

虚拟现实建模语言(VRML)

VRML与X3D的关系

X3D (X可伸长的3 d)接口是VRML(虚拟现实建模语言)接口的继承者。X3D接口支持VRML特性。金宝appX3D还为VRML提供了一些扩展。

详细信息请参见X3D的金宝app支持

VRML

您可以使用虚拟现实建模语言(VRML)在VRML查看器中显示三维对象。金宝app®3 d动画™金宝app支持VRML97。

VRML为创建交互式三维场景(虚拟世界)提供了一个开放而灵活的平台。在几个平台上有几个支持vrrml97的浏览器。此外,您还可以从几种VRML创作工具中进行选择。此外,图形软件包(CAD、视觉艺术等)提供VRML97导入/导出特性。

金宝appSimulink 3D动画产品采用VRML97技术进行三维可视化。

VRML的金宝app支持

虚拟现实建模语言(VRML)是一个开放的、基于文本的、使用面向www格式的ISO标准。您可以使用VRML定义一个虚拟世界,该虚拟世界可以用虚拟世界查看器显示并连接到Simulink模型。金宝app

金宝appSimulink 3D动画软件使用了当前VRML97规范中定义的许多高级特性。标准为ISO/IEC 14772-1:1997,可从http://www.web3d.org/documents/specifications/14772/V2.0/part1/javascript.html.这种格式包括3d场景、声音、内部动作和WWW锚点的描述。

该软件分析虚拟世界的结构,确定哪些信号是可用的,并使它们从MATLAB中可用®和Sim金宝appulink环境。

金宝appSimulink 3D动画软件确保对虚拟世界所做的改变反映在MATLAB和Simulink接口中。金宝app如果你在虚拟世界中改变视点,这种改变会发生在vrworld对象属性的MATLAB和Simulink接口。金宝app

该软件包括检索和更改虚拟世界属性的功能。

请注意

一些VRML世界是在VRML1.0中自动生成的。然而,金宝appSimulink 3D动画product不支持VRML1.0金宝app。在VRML的当前标准VRML97中保存这些内容。

对于PC平台,您可以通过在Ligos中打开世界,将VRML1.0世界转换为VRML97世界®V-Realm Builder和保存他们。V-Realm Builder随PC版软件一起提供。其他商用软件程序也可以执行VRML1.0到VRML97的转换。

VRML的兼容性

金宝appSimulink 3D动画产品目前支持VRML97的大部分功能金宝app,但有以下限制:

  • 金宝appSimulink 3D动画服务器忽略VRML脚本节点,但是它将节点传递给VRML Viewer。传递节点允许您在查看器端运行VRML脚本。你不能在金宝appSimulink 3D动画服务器。

  • 为了与VRML97规范保持一致,金宝appSimulink 3D动画查看器忽略BMP文件。因此,VRML场景纹理有时会在金宝appSimulink 3D动画查看器。要正确地显示场景纹理,请将VRML场景中的所有BMP纹理文件替换为PNG、JPG或GIF等效物。

有关VRML97节点的完整列表,请参阅VRML97规范。

虚拟世界坐标系

当你想:

  • 在特定位置显示虚拟世界对象。

  • 移动虚拟世界。

  • 从CAD工具(包括CATIA)和机器人可视化表示(URDF文件)中导出非vrml模型来使用金宝appSimulink 3D动画

  • 有一个虚拟世界与MATLAB或Simulink交互。金宝app

VRML坐标系不同于MATLAB和Aerospace Blockset™坐标系。VRML使用世界坐标系:y-轴向上指向z-轴将物体放置在离屏幕前面更近或更远的地方。z轴值越大,物体离观察者越近。当您与不同的坐标系统交互时,理解坐标系统是很重要的。Simscape™多体™使用与VRML相同的坐标系。

下面是一些VRML坐标系的关键概念:

  • 旋转角度-在VRML中,旋转角度是使用右手定则.想象一下,你的右手握着一个轴,而你的拇指指向轴的正端。剩下的四个手指指向逆时针方向。这个逆时针方向是物体绕该轴运动的正旋转角度。

  • 子对象——在VRML文件的层次结构中,指定子对象相对于父对象的位置和方向。父对象有它自己的位置和方向定义的局部坐标空间。移动父对象也会相对于父对象移动子对象。

  • 测量单位-所有长度和距离都用单位来测量,所有角度都以弧度

金宝appSimulink 3D动画提供一组函数,可以帮助您在空间中不同的方向表示之间进行转换。坐标转换函数的一个例子是vrrotmat2vec,它将旋转从矩阵转换为轴角表示。

中使用全局坐标的示例金宝appSimulink 3D动画模型中,看到利用全局坐标移动负载的机械手

VRML文件格式

您不需要对VRML格式有任何实质性的了解,就可以使用VRML创作工具来创建虚拟世界。然而,VRML场景描述的基本知识可以帮助您更有效地创建虚拟世界。一个基本的知识也让你很好地理解你可以如何控制虚拟世界的元素使用金宝appSimulink 3D动画软件

更多信息请参见VRML97参考https://www.web3d.org.许多专业的VRML书籍可以帮助您理解VRML概念并创建您自己的虚拟世界。有关VRML的更多信息,请参考适当的第三方VRML书籍。

VRML使用对象(节点)的层次树结构来描述3-D场景。树中的每个节点都代表场景的一些功能。有许多不同类型的节点。有些是形状节点(代表真实的3-D对象),其中一些确实是分组的节点用于存放子节点。下面是一些节点示例:

  • 盒子-表示场景中的一个框。

  • 变换-定义位置、比例、比例方向、旋转、平移和其子树(分组节点)。

  • 材料-对应场景中的材质。

  • 方向性光源-表示场景中的照明。

  • —修改环境的光学属性。

  • ProximitySensor-为VRML97带来交互性。当您在空间中进入、退出或移动指定区域时,该节点会生成事件。

每个节点包含一个字段列表,其中包含为其函数定义参数的值。

节点可以放在树的顶层,也可以作为树层次结构中其他节点的子节点。当您更改某个节点字段中的值时,其子树中的所有节点都会受到影响。该特性允许您定义复杂复合对象中的相对位置。

您可以在VRML场景代码中使用关键字DEF用特定的名称标记每个节点。例如,语句DEF MyNodeName盒子将此框节点的名称设置为MyNodeName.您只能访问虚拟世界中您命名的那些节点的字段。

在下面的简单VRML文件示例中,在3-D场景中建模了两个图形对象。一个扁平的盒子上面有一个红色的球,代表地板。VRML文件是一个可读的文本文件,可以在任何文本编辑器中编写。

#VRML V2.0 utf8 #这是一个注释行WorldInfo{标题“弹跳球”}视点{位置0 5 30描述“侧视图”}DEF地板盒{大小6 0.2 6}DEF球变换{翻译0 10 0子形状{外观外观{材质材质{diffuseColor 10 0}}几何球{}}}}

第一行是VRML标题行。每个VRML文件都必须以这个标题行开始。它表示该文件是一个VRML 2文件,文件中的文本对象是根据UTF8标准编码的。您可以使用数字符号(#)来注释VRML世界。VRML查看器忽略一行中#符号之后的所有内容,除了第一个标题行。

大多数box属性保持默认值——到坐标系中心的距离、材质、颜色等等。只有名字地板上盒子的尺寸是指定的。为了能够控制球的位置和其他属性,它被定义为Transform类型节点的子节点。在这里,默认的单位球体被赋予了红色和距离地面10米的位置。此外,VRML查看器还使用虚拟世界标题来区分虚拟世界。在虚拟世界VRML文件中定义一个合适的初始视点。

当在VRML查看器中显示时,您会看到地板和红色的球。

相关的例子

更多关于