180 likes | 361 Views
虚拟现实与 CAD 模型的数据对接. 虚拟现实与 CAD 模型的数据对接. 概述 CAD 模型数据的表达 虚拟环境模型的建立 CAD 模型数据的导入 实体模型的生成. 概述 在虚拟现实系统中采用三角面片模型进行产品 信息的表达 , 该数据结构格式在模型显示和碰撞检查 方面具有处理简单、计算量小的优点,并且现有的 图形硬件大部分都支持三角形绘制的加速,可很好 地满足 VR 实时性的要求。而虚拟现实开发工具包 World Tool Kit (WTK) 只提供一些简单的建模功 能,不能满足建立复杂模型的需要。. 因此,在进行虚拟产品开发时必须借助 CAD 系统建
E N D
虚拟现实与CAD模型的数据对接 • 概述 • CAD模型数据的表达 • 虚拟环境模型的建立 • CAD模型数据的导入 • 实体模型的生成
概述 在虚拟现实系统中采用三角面片模型进行产品 信息的表达,该数据结构格式在模型显示和碰撞检查 方面具有处理简单、计算量小的优点,并且现有的 图形硬件大部分都支持三角形绘制的加速,可很好 地满足VR实时性的要求。而虚拟现实开发工具包 World Tool Kit (WTK)只提供一些简单的建模功 能,不能满足建立复杂模型的需要。
因此,在进行虚拟产品开发时必须借助CAD系统建因此,在进行虚拟产品开发时必须借助CAD系统建 立产品的精确模型。但WTK不能直接读取CAD创建 的模型,必须借助第三方软件来进行转换。 目前,CAD系统和虚拟现实系统之间的模型转 换尚没有较好的解决办法。通常利用虚拟现实系统 对3DS文件格式的支持,在CAD系统中建立产品精 确的几何模型后,将导出为3DS可以导入的文件格
式,用3DS MAX将模型的文件格式转化为WTK支 持的3DS文件格式。这种方法在产品不太复杂的情 况下操作比较简便,但对于含有大量零件的模型, 此方法就显得较为繁琐,甚至不能实现模型的转 换。
CAD模型数据的表达 目前,在几何造型系统中常用的方法有6种:基 本体素表示法、空间位置枚举法、单元分解法、扫 描变换法、构造实体几何法(CSG)、边界表示法, 其中后两种方法用的比较普遍。CAD系统的数据转换 标准有DXF、IGES、STEP、STL、VRML等,其中STL文 件格式比较简单。
虚拟环境模型的建立 WTK是一个应用于虚拟环境构建的工具包。建 立虚拟对象的三维几何模型时,可以用WTK的三维 造型功能,它可以建立一些简单模型,如圆柱体、 立方体、球体、圆锥体等,但这些功能远不能满足 实际使用的需要,通常通过导入外部模型来构造虚 拟环境。
WTK支持的文件格式有DXF、OBJ、3DS、SLP、 VRML等,且支持静态的VRML文件和低版本的 DXF文件,不支持STL格式模型,与CAD兼容性 差,需第三方软件对模型进行格式转换,但WTK为 用户提供了自定义模型的功能,可以读取CAD导出 的三角面片模型文件。
CAD模型数据的导入 在CAD系统中建立产品模型后,为便于WTK导 入,可将其以三角面片格式导出。在三角面片格式 文件中,STL文件具有结构简单的特点,目前各种 通用造型系统,如UG、Pro/E、Solid Works等都 能输出这种格式模型。
STL文件是通过对CAD实体模型或曲面模型进 行表面三角化离散得到的,相当于用一种全由小三角 形面片构成的多面体近似原CAD模型。每一个三角 面片包含顶点坐标和法矢信息。STL文件规定了三 角面的方向、顶点法则和量纲,其描述如下:
面的方向 三角面片定义的是三维实体的表面,每个三角面 片可以看作是物体的内部和表面的分界面,它的法矢 始终朝外,与顶点连成的矢量方向构成右手法则。 • 顶点法则 每一个三角面片中必须有两个顶点与其相邻的三角 面片共用,即一个三角面片的顶点不能落在另一个三角 面片的边上。
量纲 三角面片数据是无量纲的,各顶点坐标值均必 须是正数。 STL文件有两种类型:ASCⅡ格式和二进制格 式。 ASCⅡ格式,即文本格式,使用字符串来描 述。它使用以下关键字:solid、facet、normal、 outerloop 、vertex、 endloop、endfacet、
大括号表示其中的文件格式是可以重复的。 二进制格式,该格式下的每个三角面片的数据 长度固定为50字节,其数据格式描述如下:
括号(1)循环3次表示三角面片的3个顶点;括号括号(1)循环3次表示三角面片的3个顶点;括号 (2)表示其中的文件格式可以重复。
实体模型的生成 WTK中自定义模型的原理是:先定义空间点Pi, 再用这些点构造多边形面片,最后将这些多边形面 片放到自定义的几何体中,形成自定义的几何模 型。
利用Visual C++6.0作为开发环境,用其文件操作类 的Read函数逐个读取三角面片的数据,包括各三角 形的顶点和法矢,并以自定义的三角面片数据结构 Facet进行保存,通过链表进行存储。完成数据读 取后利用WTK的自定义模型操作功能生成实体模 型,为模型创建相应的节点将其连接到虚拟场景 中。通过对场景设置光照参数和模型操作功能最终 实现模型的显示和动态操作。