2025年11月14日
配天机器人2025年11月14日
TE2025年11月14日
西门子2025年11月14日
新时达2025年11月14日
蔡司工业
2025年11月13日
埃尔森
2025年11月10日
BBS
2025年11月07日
劳易测
2025年11月06日
和利时
2025年11月14日
威图
2025年11月14日
TE
2025年11月14日
KUKA
2025年11月14日
先导智能
2025年11月14日
TDK
1 引言
当今顾客对产品的要求越来越高,大批量生产已经难以满足人们对商品规格多样化日益增长的需要,取而代之的是小批量多规格的生产。小批量多规格的生产方式能够满足需求的多样化。但不利于降低成本和缩短交货期。为了满足市场竞争的需要,人们开始考虑在同一生产线上生产装配不同规格的产品,这无疑要求设计和制造技术有更高的灵活性。传统的设计技术难以满足这样的要求,随着多媒体技术的崛起和虚拟现实技术的迅速成熟,使得越来越多的人们采用虚拟现实的三维交互设备来改进CAD/CAM的人机交互界面,进而产生了基于虚拟现实的CAD/CAM的研究领域。尽管OpenGL已经能提供强大的二维和三维图形功能,但对于许多复杂的图形,单纯利用OpenGL的实例库提供的基本几何体,逐条语句地完成建模工作,不仅要花费大量的时间,而且困难重重。然而,现行的CAD系统建模技术比较成熟.如果能把CAD系统的数据文件转换为0penGL能够读取的数据格式,不仅极大地降低开发周期和成本,更重要的是提高了应用程序的可扩充性能。这样,怎样把各种各样的三维图形文件转换为OpenGL能够读取的数据结构便成为虚拟装配设计系统的关键技术之一。基于此研究背景,本文在分析了虚拟装配设计系统的概念及类型基础上,论述了怎样把各种各样的三维图形数据转换为OpenGL能直接读取的数据结构,即如何在OpenGL中读取和操作三维图形数据文件。
2 虚拟装配设计系统的概念及其与CAD系统数据交换的重要性
虚拟装配设计(VAD Virtual Assembly Design)是虚拟设计的重要组成内容之一。虚拟装配设计是面向产品装配设计的一种,是一种基于工程应用的虚拟现实技术,工程师不是通过抽象的,算术的方法完成装配设计,而是能够在虚拟环境中应用虚拟现实的硬件和软件直接完成装配。在这个过程中产生的信息被用作装配设计和修改产品的重要依据。借助虚拟装配设计系统,设计人员可以在虚拟环境中使用各种装配工具对设计的机构进行装配检验,从而发现在产品设计中最常见也是最难发现的装配和维修方面的问题。
虚拟装配设计系统(VADE Virtual Assembly Design Environment)于1995年由美国国家标准技术协会(NIST)发起。这个系统的丰要目的是探讨在设计和制造方面应用虚拟现实技术的潜力及技术上的难题,它通过为装配设计和评价创建一个虚拟环境来实现这个目的。“虚拟装配设计系统(VADE)是一种基于工程应用的虚拟现实技术,它允许工程师评价、分析、规划机械装配系统。这个系统主要是在计算机辅助设计(CAD)系统中应用了沉浸式的虚拟环境。”
[DividePage:NextPage]
3 虚拟装配设计系统与CAD系统的数据交换分析
3.1 *.3DS图形数据的转换
*.3Ds图形数据的具体转换过程如下:
a.3DS文件格式的特点。3DS文件由许多块组成,每个块首先描述其信息类别,即该块是如何组成的。块的信息类别用ID来标识,块还包含下一个块的相对位置信息。每个3DS文件有一个基本块,其ID是4D4D,它又包含3D编辑程序块和关键帧块。前者的ID是3D3D,后者的ID是B000。3D编辑程序块又包含许多子块如材质列表块、物体描述块,环境颜色块等。
b.读取3DS模型所用到的数据结构。在3DS文件中,用三角形面片逼近的方法来描述三维实体模型,在OpenGL函数库中,也提供了绘制三角形面片的方法。又怎样将两种方式结合起来呢?首先将3DS图形文件读到自定义的图形数据结构中,然后转换为OpenGL易读取的数据结构。
c.法线矢量的算法分析。从假想的平面(或者是多边形)上的一个顶点引出来的一条垂直向上的线,叫做法线矢量。它是用OpenGL绘制形体时,一种最重要的几何运算。
d.绘制三维实体。为了优化性能和提高三维实时动画的显示速度,本程序利用了OpenGL的显示列表功能,将三维场景中的实体定义为显示列表,预先生成三维实体,然后调用显示列表即可显示三维实体。
e.读取和绘制*.3DS模型文件流程图。
3.2 *.obj图形数据的转换
Wavefront的*.obj模型文件结构非常简单。首先,它是由一些文本行组成,每一行文本都由一个关键字开头,紧跟着后面是该关键字所表示含义的具体参数。具体转换过程如下:
a.读取*.obj文件格式所用到的数据结构。
b.绘制*.obj模型文件。材质是三维图形的重要属性。怎样读取和操作三维图形文件中的材质是一个重点也是一个难点。在OpenGL中设置材质属性有两种方法。第一种是在指定每个多边形或者多边形的集合之前使用glMaterial函数,在绘制*.3DS模型文件和*.obj模型文件时用的就是这种方法。第二种设置材质属性的方法是颜色跟踪法。通过颜色跟踪法,你可以通过调用glColor函数设置材质属性。
c.读取和绘制*.obj模型文件的流程图。
4 结论
本文论述了怎样把各种各样的三维图形数据转换为OpenGL能直接读取的数据结构。在OpenGL中读取和操作三维图形数据文件一般分为三步:
a.分析三维图形文件格式的特点。大部分三维图形数据文件用多边形逼近的方法来保存各种复杂的三维模型,如*.3DS、*.OBJ等文件。
b.设计合适的数据结构来存储这些多边形信息。OpenGL不能直接绘制从三维图形数据文件中读出的模型数据,必须转换为一种被OpenGL易读取的数据结构。
C.在OPenGL中绘制数据模型。OpenGL可以通过编译显示列表和直接绘制两种方法来绘制三维模型数据。