教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教学研究 >

OpenGL环境下的模型数据库管理与复杂三维建模 (1)

来源:网络收集 时间:2026-08-26
导读: 2∞7年工程图学学报 2∞7 第2期 JoURNALOFENGINEERINGGRAPmCS No.2 openGL环境下的模型数据库管理与 复杂三维建模 吕希奎, 易恩蓉, 何丽 (西南交通大学土木工程学院,四川成都610031) 摘 要:Open

2∞7年工程图学学报

2∞7

第2期

JoURNALOFENGINEERINGGRAPmCS

No.2

openGL环境下的模型数据库管理与

复杂三维建模

吕希奎,

易恩蓉,

何丽

(西南交通大学土木工程学院,四川成都610031)

要:OpenGL作为一个图形标准具有强大的三维图形处理功能,但建模功能较

弱,而专业的三维建模软件却有着很强的建模功能。因此,将OpenGL与三维建模软件相结合,对三维建模软件所创建的模型采用Oracle数据库进行管理,再通过构建不同模型类别的转换模块,实现对最常用的三维模型格式转换的支持。读取模型数据,经转换后在openGL环境中重新构建三维模型,由此,解决了OpenGL中的复杂三维建模问题。

关键词:计算机应用;三维建模;数据库管理;模型重构中图分类号:TP311.1l

文献标识码:A文章编号:1003-0158(2007)02一0012—05

The

Datab嬲e

Manag哪entforModelsandComplex3DModeling

underOpenGLEnVir0瑚ment

LUXi—kui,

YISi—rong,

HELi

(111eCivilEngince血gD印artImnt

0f

So岫westJi∞咖gUniV∞ity,Chengdu

sichu柚610031,China)

Abstract:As

graJ蛳c

sta皿dard,cIpenGLhaspowefful3Dgrapllicprocessingabilities,but

isweal【Ilessin3Dmodeling;meanwllilet11ecommercial3DmodelingsoftwarehasveWstrong

modelingfunctions.SoⅡlemodelscreatedbycommercial3D

sof细are

are

savedintoOracle

da诅baseflrsⅡy,aIldmenmodulesformodeldataexchangeshouldbedeVelopedto

supportmost

commoIllyused3DmodelformatexchaJlge.Thenafkrreadingtllemodeldataf幻mOracle,thecomplex3Dmodels

can

bere_builtinOpenGLthroughmodeldataexchange.

Keywords:

computer

application;

3D

modeling;

dat曲ase

management;

model

recons缸uction

在实际的三维图形程序中,需要构建的三维的函数,如圆锥、圆柱和球体等类似的简单物模型一般来说都是比较复杂的,但是OpenGL的体‘¨。如果利用这些函数来构建一个复杂的模型,建模功能并不强大,只提供了一些绘制简单图元

如一架飞机或一辆汽车就显得非常困难;另外使

收稿日期:2006—07—06

基金项目:西南交通大学博士创新基金资助项目(x1200512470102)

作者简介:吕希奎(1976一),男,辽宁绥中人,博士研究生,主要研究方向为铁路选线智能cAD与虚拟环境铁路选线。

万 

方数据

第2期

吕希奎等:OpenGL环境下的模型数据库管理与复杂三维建模

用基本的绘图语句编写程序也不现实。因此,必须采用与其它功能强大的三维建模软件结合,利用一定的算法,将其它三维建模软件创建的模型数据读出来,然后利用这些数据在OpenGL环境中重新构建三维模型,从而解决OpenGL复杂三维建模问题,再利用OpenGL的交互控制优势达到理想的三维效果。这方面目前也有了相关的研究,如文献[2卜【5】通过读取3DS模型数据,在一定程度上解决了openGL的复杂三维建模。但最为常用的3D模型格式除了3Ds,还有MD2、MD3、ASE、0BJ、MS3D等多种,它们有着各自特点和应用范围,因此,仅实现一种3D模型的读取显示显然不够,也使程序的应用受到了很大限制,不能很好的解决openGL的复杂三维建模;同时,对建好的三维模型如何有效的管理,也是必须要考虑的问题,而已往相关研究并没有涉及到模型管理。该文对三维建模软件建好的三维模型,采用Oracle数据库进行存储管理,可以方便的对模型进行更新、查询检索,解决了三维模型的管理问题。通过构建多个模型类模块,从而实现了对目前最为常用的所有3D模型格式的支持,有效的解决了operlGL的复杂三维建模问题。

1模型数据库管理

ORACLE提供了一种新的字段类型LOB

(Large

ObjectsBinary一大型二进制对象),它

是用来存储大量的二进制和文本数据的一种数据类型。其中的BLOB类型适用于存储海量的二进制数据,如图像、视频、音频等[6】'【『71,作者就是将不同类型的三维模型文件和纹理文件均以二进制格式存储在BLOB字段中,实现三维模型的数据库存储。

1.1数据库表结构设计

各种3D模型对应的纹理图像是独立于模型之外的,因此,表中分别设计了模型与纹理的文件名称、二进制的存储字段(BLOB)来分别存储模型数据与纹理数据。同时,为了提高管理和查询、检索的效率,还设计了模型类型和模型名称字段,表结构如表1所示。

万 

方数据表1

3D模型库表结构

1.2数据库管理的实现

OCI(OracleCall

Interf如e,即Oracle调用接

口),是Oracle公司提供的由头文件和库函数等组成的一个访问Oracle数据库的应用程序编程型数据,模型与纹理文件的写入与读出就是通过图l3D模型数据库管理

3D模型通用类

不论哪一种模型,都具有二维、三维点坐标、面、材质和具体的对象信息,因此,系统中设计了通用3D模型类,用来存储所有类型3D模型的CVector3

{public:floatx,y,z;};

CVector2

接口,提供了丰富而高效的函数来操作BLOB类OcI函数来实现的。模型数据库管理如图1所示。

2.1

2三维建模

通用信息。

//定义3D点的类,用于保存模型中的顶点

classclass

工程图学学报

2007年

{public:noatx,y;);

s缸uct

tFace//面的结构定义

intvenIndex[3】;

//顶点索引

intcoord]【lldex[3】;,/纹理坐标索引

);

s仃uct

tMaterialInf0,/

材质信息结构体

chars缸N锄e【255];

,/纹理名称

char

s缸眄le[255】;/,示纹理文件名 …… 此处隐藏:4933字,全部文档内容请下载后查看。喜欢就下载吧 ……

OpenGL环境下的模型数据库管理与复杂三维建模 (1).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1569180.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)