一种三维模型绘制方法以及装置的制作方法

文档序号:6431962阅读:143来源:国知局
专利名称:一种三维模型绘制方法以及装置的制作方法
技术领域
本发明涉及计算机图像绘制领域,具体涉及一种三维模型绘制方法以及装置。
背景技术
在三维空间设计工作过程中,很多时候需要先对三维空间实体进行仿真。三维空间实体仿真目前采用的方法是,利用面向设计者的ACIS三维模型组织渲染技术。该技术提供线框、曲面、实体造型、拓扑和几何运算等高级造型功能,通过易于使用的修改、标注和查询实用程序方便地浏览模型,通过灵活的3D造型构建块,提高可扩展性,提供了着色和消隐等三维渲染功能。但是,此种渲染方法是同时加载所有图形数据的,当图形数据超过一定数量时,会引起计算机崩溃,不能实现海量数据的渲染绘制。

发明内容
本发明提供了一种三维模型绘制方法以及装置,可以在保证三维模型数据的高速高精度的绘制情况下,实现海量三维模型数据的渲染。本发明公开了一种三维模型绘制方法,包括步骤对显示的图像数据进行视窗裁剪,获得与不同视点高度、不同经纬度跨度对应的图像数据;根据所述不同视点高度、经纬度跨度将对应的图像数据划分成若干有层次的数据块;对每个数据块进行层次细节处理,为所述每个数据块构建若干与该数据块层次对应的三维实体模型;绘制每个数据块对应的三维实体模型。本发明还公开了一种三维模型绘制装置,包括初始化单元,用于对显示的图像数据进行视窗裁剪,获得与不同视点高度、不同经纬度跨度对应的图像数据;比较单元,用于根据所述不同视点高度、经度跨度和纬度跨度,将对应的图像数据划分成若干有层次的数据块;LOD单元,用于对每个数据块进行层次细节处理,为所述每个数据块构建若干与该数据块层次对应的三维实体模型;绘制单元,用于绘制每个数据块对应的三维实体模型。本发明中利用视窗裁剪方法,获取不同视点高度、经纬度跨度对应的数据;再对这些数据进行整合,将满足某个视点高度、经纬度跨度的数据整合为一个数据块;在对这些数据块进行层次细节处理,得到特定层次细节三维模型;然后,以数据块单位绘制层次细节三维模型。这样,每次绘制时只需加载当前视窗内的数据,并不需要加载所有渲染数据,不会引起计算机崩溃,可以实现海量数据的渲染绘制,由于采用了层次细节处理,可以保证三维模型数据高速和高精度的渲染绘制。


图1为本发明方法流程图;图2是视窗裁剪的一个示意图;图3是视窗裁剪的另一个示意图;图4是视窗裁剪的另一个示意图;图5是视窗裁剪的另一个示意图;图6是本发明装置的一个结构示意图;图7是本发明装置的另一个结构示意图。
具体实施例方式为便于理解本发明,下面将结合附图进行阐述。本发明中,LOD(Levels of Detail,层次细节模型)。首先介绍本发明的方法,本发明公开的一种三维模型绘制方法请参考图1,包括步骤101、对显示数据进行视窗裁剪;对显示的图像数据进行视窗裁剪,获得与不同视点高度、不同经纬度跨度对应的图像数据。在本实施方式中,调节视窗的视点高度、变换经纬度跨度,获得不同视景体;对在视景体内的图像显示数据进行裁剪,获得不同视点高度、不同经纬度对应的图像数据;其中,视景体是指成像景物所在空间的集合。其优选实施方式,请参照图2至图5。图2中,视窗内的视点高度为R1,中心经度为16,中心纬度为30,经裁剪后得到如图2所示的图像数据,包括物体A,其中物体A包括物体B、物体C以及物体D ;在这种视点高度和经纬度跨度下,只看到图2所示的粗略图像,获取此时视窗内的图像数据;调节视点高度,调为R2,并变换中心经度为15,中心纬度为30,得到如图3所示的视景图,此时,视窗内只看到物体B,以及物体B中包含的物体a、物体b、物体C、物体d以及物体e ;获取此时视窗内的图像数据;此时的图像数据为精细的图像数据;调节视点高度,调为R3,并变换中心经度为16,中心纬度为30,得到如图4所示的视景图,此时视窗内只看到物体C以及物体C中包括的物体1、物体2、物体3、物体4以及物体5 ;获取此时视窗内的图像数据;此时的图像数据为精细的图像数据;调节视点高度,调为R4,并变换中心经度为17,中心纬度为30,得到如图5所示的视景图,此时视窗内只看到物体D以及物体D中包括的物体6、物体7、物体8、物体9以及物体10 ;获取此时视窗内的图像数据;此时的图像数据为精细的图像数据。102、对视窗裁剪获得数据进行分块;根据不同视点高度、经纬度跨度将对应的图像数据划分成若干数据块。作为一种优选实施方式,将与预设视点高度、经纬度跨度对应的图像数据划分成一个层次的数据块,根据不同的预设视点高度、经纬度跨度将图像数据细分成不同层次的数据块;例如将视点高度为50米至100米的,经度跨度为0. 368度、纬度跨度为0. 368度的图像数据归为一个数据块;将视点高度为30米至50米的,经度跨度为0. 092度、纬度跨度为0. 092度的图像数据归为一个数据块;将视点高度为0米至30米的,经度跨度为0. 023 度、纬度跨度为0. 023度的图像数据归为一个数据块。103、对数据块进行层次细节处理,得到三维模型;对每个数据块进行层次细节处理,为每个数据块构建若干与该数据块层次对应的三维实体模型。层次细节处理可采用LOD技术实现,LOD技术在不影响画面视觉效果的条件下,通过逐次简化景物的表面细节来减少场景的几何复杂性。LOD技术是现有技术,为便于理解在此重新介绍相关实现过程首先,简化数据块内的细节;一类是侧重于去掉那些不需要用图形显示硬件绘制的细节。一类是去掉那些无法用图形硬件绘制的细节,如基于距离和物体尺寸标准的方法。 另一类是去掉那些人类视觉觉察不到的细节,如基于偏心率,视野深度,等标准的方法。然后根据简化后的数据块,定义数据结构;设计LOD算法;进行裂缝修补当绘制节点时,相邻不同分辨率节点间会产生T型裂缝,可在两种不同分辨率节点之间加上一条边或是在不同分辨率格网之间减去一条边;最后得到三维模型。视点高度高,经纬度跨度大,每个数据块内的三维模型个数多,数据块内的三维模型的精细程度低,即是三维模型的内容粗糙,只能看到大体轮廓;视点高度低,经纬度跨度小,每个数据块内的三维模型个数少,每个数据块内的三维模型的精细程度高,即是三维模型的内容详细,只能看到细微的纹理。104、以块为单位绘制三维模型。绘制每个数据块对应的三维实体模型。作为一个优选方法,绘制时,采用DirectX 3D (简称D3D)技术进行绘制,D3D技术指是一种3D加速技术,支持场景数据优化、加速贴图显示(需得到显示卡的支持),场景透视修正。D3D渲染管线技术,就是利用一种类似过滤器的实现方法把3D世界模型转换成屏幕像素显示。最基本的D3D渲染过程包含这以下步骤1、世界坐标变换把3D世界中的各种物体,通过缩放、旋转、平移放置到一个指定的位置;2、摄像机变换将3D世界的物体坐标转换为眼睛看到的坐标。3、透视变换为了制造出近大远小的感觉效果。4、剪切忽略看不到的对象,这样可以节省很多计算量,也可以使得计算的结果有一个确定的范围。实际的剪切变换中,还有近平面,远平面等参数,就是最近能看到多近,最远能看多远。5、行扫描输出把模型三角形中的每一个点的坐标都计算出来(在之前的处理中始终只保留其顶点),然后根据X,Y坐标(同时要判断点的前后)画到屏幕上。也可使用另一种优选绘制方法,即采用OpenGL (Open Graphics Library,开放式图形库),OpenGL定义了一个跨编程语言、跨平台的编程接口的规格,它可用于三维图象绘制(二维的亦可)。OpenGL是个功能强大,调用方便的底层图形库。OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以与Visual C++紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性;OpenGL使用简便,效率高。它具有七大功能1、建模=OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(球、锥、多面体、茶壶等)以及复杂曲线和曲面绘制函数;2、变换=OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、旋转、 变比镜像四种变换,投影变换有平行投影(又称正射投影)和透视投影两种变换。其变换方法有利于减少算法的运行时间,提高三维图形的显示速度;3、颜色模式设置=OpenGL颜色模式有两种,即RGBA模式和颜色索引;4、光照和材质设置=OpenGL光有辐射光、环境光、漫反射光和镜面光。材质是用光反射率来表示。场景中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色;5、纹理映射利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节;6、位图显示和图象增强图象功能除了基本的拷贝和像素读写外,还提供融合、反走样和雾的特殊图象效果处理。以上三条可使被仿真物更具真实感,增强图形显示的效果;7、双缓存动画双缓存即前台缓存和后台缓存,简言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。本发明中利用视窗裁剪方法,获取不同视点高度、经纬度跨度对应的数据;再对这些数据进行整合,将满足某个视点高度、经纬度跨度的数据整合为一个数据块;在对这些数据块进行层次细节处理,得到层次细节三维模型;然后,以数据块单位绘制层次细节三维模型。这样,每次绘制时只需加载当前视窗内的数据,并不需要加载所有渲染数据,不会引起计算机崩溃,可以实现海量三维模型的渲染绘制,由于采用了层次细节处理,可以保证三维模型数据高速高精度的渲染绘制。由于图1实施例中,绘制数据块的模型时,是没有绘制顺序的,这样不便于灵活控制;因此可对上述实施例做进一步改进在步骤103之后,预先设置各个数据块的绘制顺序;绘制时,按照绘制顺序绘制数据块对应的三维实体模型。为了进一步提高绘制的效率,在步骤104中,先对每个数据块的三维模型进行三维空间索引。三维空间索引的基本方法是将整个空间分割成不同的搜索区域,以一定的顺序在这些区域中查找空间实体。按搜索分割对象不同,将空间索引分为3类基于点、面、三维体区域划分的索引方法。三维空间结构一般分为对象分割法和规则分割法对象分割法一般采用层次包围体实现。层次包围体是一种简单的树结构,用一些特定的方法对空间实体对象进行分割, 最终将树的每一个节点保存为所在层次的包围体信息,叶子节点则存储基本对象。规则分割法将空间按照规则分割成均勻的单元,然后将空间中的每个实体对应到一个或多个单元中,适用于实体在空间中均勻分布的环境。规则格网空间索引的基本思想是将研究区域用横竖线划分为大小相等或不等的网格,记录每一个格网所包含的地理对象,将空间格网按 Morton码编码,构建Marton码与空间对象的关系。经过三维空间索引,获取每个三维实体模型的模型顶点数和三角面数;
7
对每块数据块内的所有三维模型的模型顶点数和三角面数进行比较;在绘制每一个数据块对应的三维实体模型时,从模型顶点数和三角面数最少的三维实体模型开始绘制。接着介绍本发明的装置,请参考图6,一种三维模型绘制装置,包括初始化单元Tl,用于对显示数据进行视窗裁剪,获得与不同视点高度、不同经纬度跨度对应的数据;比较单元T2,用于根据不同视点高度、经度跨度和纬度跨度,将对应的数据划分成若干有层次的数据块;LOD单元T3,用于对每个数据块进行层次细节处理,为每个数据块构建若干与该数据块层次对应的三维实体模型;绘制单元T4,用于绘制每个数据块对应的三维实体模型。本发明中利用视窗裁剪方法,获取不同视点高度、经纬度跨度对应的数据;再对这些数据进行整合,将满足某个视点高度、经纬度跨度的数据整合为一个数据块;在对这些数据块进行层次细节处理,得到层次细节三维模型;然后,以数据块单位绘制层次细节三维模型。这样,每次绘制时只需加载当前视窗内的数据,并不需要加载所有渲染数据,不会引起计算机崩溃,可以实现海量数据的渲染绘制,由于采用了层次细节处理,可以保证三维模型数据高速高精度的渲染绘制。其中,初始化单元Tl的具体操作是初始化单元Tl调节视窗的视点高度、变换经纬度跨度,获得不同视景体;对在视景体内的图像显示数据进行裁剪,获得不同视点高度、 不同经纬度对应的图像数据。请参考图7,为了便于控制绘制,可在上述装置的基础上,增加顺序设置单元T5, 用于预先设置各个数据块的绘制顺序;绘制单元T4按照顺序设置单元T5设置的绘制顺序绘制每个数据块对应的三维实体模型。为了进一步提高绘制效率,可对绘制单元T4的处理机制作如下改进在绘制单元T4绘制每个数据块对应的三维实体模型前,先对每个数据块的三维实体模型进行三维空间索引,获取每个三维实体模型的模型顶点数和三角面数;在绘制每一个数据块对应的三维实体模型时,从模型顶点数和三角面数最少的三维实体模型开始绘制。本发明可应用在各个三维图像绘制领域,如电力设备三维模型可视化,下面就以电力设备三维模型可视化为例,对本发明作进一步的阐述。首先对电力设备的图像数据进行视窗裁剪,获得与不同视点高度、不同经纬度跨度对应的图像数据;根据不同视点高度、经纬度跨度将对应的图像数据划分成若干数据块;在实践中发现将三维电力设备的图像数据划分成6个层次的数据块效果最好;具体为将视点高度为1千米至5千米的,经度跨度为0. 368度、纬度跨度为0. 368度的图像数据归为一个数据块,并定义级别为1 ;将视点高度为200米至1千米的,经度跨度为 0. 092度、纬度跨度为0. 092度的图像数据归为一个数据块,并定义级别为2 ;将视点高度为 0米至200米的,经度跨度为0. 023度、纬度跨度为0. 023度的图像数据归为一个数据块,并定义级别为3 ;具体分块规则,可参照表1至表3 表 权利要求
1.一种三维模型绘制方法,其特征是,包括步骤对显示的图像数据进行视窗裁剪,获得与不同视点高度、不同经纬度跨度对应的图像数据;根据不同视点高度、经纬度跨度将对应的图像数据划分成若干有层次的数据块; 对每个数据块进行层次细节处理,为所述每个数据块构建若干与该数据块层次对应的三维实体模型;绘制每个数据块对应的三维实体模型。
2.根据权利要求1所述的三维模型绘制方法,其特征是,所述对显示的图像数据进行视窗裁剪,获得与不同视点高度、不同经纬度跨度对应的图像数据具体包括步骤调节视窗的视点高度、变换经纬度跨度,获得不同视景体;对在视景体内的图像显示数据进行裁剪,获得不同视点高度、不同经纬度对应的图像数据。
3.根据权利要求1所述的三维模型绘制方法,其特征是,在所述构建若干三维实体模型的步骤后,预先设置各个数据块的绘制顺序; 按照所述绘制顺序绘制数据块对应的三维实体模型。
4.根据权利要求1至3任一项所述的三维模型绘制方法,其特征是,在所述绘制每个数据块对应的三维实体模型前,先对每个数据块内所有三维实体模型进行三维空间索引,获取每个三维实体模型的模型顶点数和三角面数;在绘制每一个数据块对应的三维实体模型时,从模型顶点数和三角面数最少的三维实体模型开始绘制。
5.一种三维模型绘制装置,其特征是,包括初始化单元,用于对显示的图像数据进行视窗裁剪,获得与不同视点高度、不同经纬度跨度对应的图像数据;比较单元,用于根据所述不同视点高度、经度跨度和纬度跨度,将对应的图像数据划分成若干有层次的数据块;LOD单元,用于对每个数据块进行层次细节处理,为所述每个数据块构建若干与该数据块层次对应的三维实体模型;绘制单元,用于绘制每个数据块对应的三维实体模型。
6.根据权利要求5所述的三维模型绘制装置,其特征是,所述初始化单元的具体操作是所述初始化单元调节视窗的视点高度、变换经纬度跨度,获得不同视景体;对在视景体内的图像显示数据进行裁剪,获得不同视点高度、不同经纬度对应的图像数据。
7.根据权利要求5所述的三维模型绘制装置,其特征是,所述装置还包括 顺序设置单元,用于预先设置各个数据块的绘制顺序;所述绘制单元按照所述顺序设置单元设置的绘制顺序绘制每个数据块对应的三维实体模型。
8.根据权利要求5至7任一项所述的三维模型绘制装置,其特征是,所述绘制单元绘制每个数据块对应的三维实体模型前,先对每个数据块内的三维实体模型进行三维空间索引,获取每个三维实体模型的模型顶点数和三角面数;在绘制每一个数据块对应的三维实体模型时,从模型顶点数和三角面数最少的三维实体模型开始绘制。
全文摘要
本发明公开了一种三维模型绘制方法,包括步骤对显示的图像数据进行视窗裁剪,获得与不同视点高度、不同经纬度跨度对应的图像数据;根据所述不同视点高度、经纬度跨度将对应的图像数据划分成若干数据块;对每个数据块进行层次细节处理,构建若干三维实体模型;绘制每个数据块对应的三维实体模型。本发明还公开了一种三维模型绘制装置,可以在保证三维模型数据的高速高精度的绘制情况下,实现海量三维模型数据的渲染。
文档编号G06T17/00GK102289845SQ20111025400
公开日2011年12月21日 申请日期2011年8月30日 优先权日2011年8月30日
发明者曾强, 李小稳, 李行义, 汤坚, 潘屹峰, 王东甫, 王庭松, 苗璘, 许少淦, 赵阅兵, 陈澜, 陈隽敏, 雷伟刚, 马海毅, 黄志秋, 黄旭丹, 黄春晖 申请人:广东省电力设计研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1