CN102194250A - 基于流程工厂参数模型的复杂场景快速绘制方法及系统 - Google Patents
基于流程工厂参数模型的复杂场景快速绘制方法及系统 Download PDFInfo
- Publication number
- CN102194250A CN102194250A CN 201110131461 CN201110131461A CN102194250A CN 102194250 A CN102194250 A CN 102194250A CN 201110131461 CN201110131461 CN 201110131461 CN 201110131461 A CN201110131461 A CN 201110131461A CN 102194250 A CN102194250 A CN 102194250A
- Authority
- CN
- China
- Prior art keywords
- volume elements
- model
- resolution
- node
- bounding box
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Image Generation (AREA)
Abstract
本发明公开了一种基于流程工厂参数模型的复杂场景快速绘制方法及系统,涉及复杂场景快速绘制技术领域,包括:解析流程工厂参数模型,得到该模型所包含的对象,对象包含的体元,体元的参数信息;以对象为组织单元,构建基于八叉树结构的场景树;基于体元的剖分数形成不同分辨率的层次细节模型;基于场景树的包围盒层次进行视域剔除,判断出哪些对象以及对象的哪些体元在视域中;基于视点动态选择体元该使用的细节模型,通过改变体元的索引数组,达到改变体元分辨率的目的;基于体元的参数解析表达进行背向面剔除。本发明解决了大规模流程工厂模型的实时漫游问题,能在普通PC机上对大规模流程工厂模型实时漫游,且预处理时间短,磁盘空间占用量小。
Description
技术领域
本发明涉及复杂场景快速绘制技术领域,特别涉及一种基于流程工厂参数模型的复杂场景快速绘制方法及系统。
背景技术
校审作为流程工厂设计质量控制体系中的一个重要环节,审核人员经常需要通过交互式漫游对整个三维模型进行设计审查,以便及时发现和报告模型中存在的设计错误,并提交给相关专业的设计人员进行修改。目前国外著名的工厂设计CAD软件,如PDS、PDMS等虽然都提供了漫游功能,但只对规模较小的模型才有较好的效果,而且这些工厂设计CAD系统大都在工作站上运行。一方面,我国大部分的设计院所由于经济实力原因,在工作中大多使用的是普通PC机,性能有限。另一方面,随着协同设计技术被越来越多地应用于一些大规模流程工厂模型的设计之中,流程工厂三维模型的规模和复杂度快速增加,具有几百兆甚至上千兆面片的模型已较常见。总之,流程工厂模型数据的增长速度已经超过了硬件性能的增长速度。因此,研究大规模流程工厂模型的快速绘制方法,使校审人员可以在普通PC机上对大规模流程工程模型进行漫游,对于提高模型校审人员的工作效率、保障设计任务按时完成具有重要的意义和市场价值。
对于大规模复杂场景的快速绘制而言,为了提高人机交互的实时性,要在保证场景真实感的前提下尽可能地减少需要绘制的面片数量,视域剔除、层次细节、背向面剔除都是行之有效的方法。
视域剔除主要是用于剔除位于视域体外的物体。在应用程序阶段使用视域剔除技术主要是为了减少送入图形绘制管线的数据复杂度,这意味着几何阶段和光栅阶段都可以从中受益。为加速判断计算,往 往将场景组织成层次状结构,将物体的包围盒与视域进行空间求交计算,以快速剔除完全在视域外的物体;而对于其包围盒与视域边界相交的物体,则以逐步求精方式进行进一步的考察。然而目前的视域剔除针对的是点模型或面片模型,没有针对参数模型,也没有利用流程工厂参数模型的特点进行优化。
通常,层次细节法可以分为静态层次细节法和动态层次细节法。静态层次细节法实现简单,简化计算都是在预处理过程进行,可以减少实时绘制的计算开销,因此得到了广泛应用。然而静态层次法存在如下问题:1.需要预处理时间;2.多个细节模型占用大量的存储空间;3.不同细节模型切换时,会出现抖动现象;且切换数据量较大时,内外存的交互成为瓶颈,出现丢帧;4.当改变某个对象的属性,比如改变材质或者纹理,无法及时反应到所有细节模型。动态层次细节法能够避免上述问题,但会增加实时绘制的计算开销,影响绘制的实时性。
背面剔除主要用于剔除那些背向视点的面片。对于正投影,通常场景中大约一半左右的多边形会被剔除掉。对于透视投影,背向面的比例会随着视点与场景物体距离缩短而增高。背面剔除计算主要是根据面片的法向来进行。基于单个多边形的背向面剔除已经由硬件支持实现,但是这通常是在绘制管线后期阶段实现的。如果CPU通过简单的一个测试就能判定一组多边形为背向面就能获得额外的加速效果,因此产生了聚集背面裁减技术。然而背面裁减技术同样需要增加额外的计算开销,且计算成本是影响背面裁减效率的关键。
由于流程工厂模型的复杂性与特殊性,目前没有一种公开的快速绘制方法专门针对流程工厂模型,利用模型的特点,综合运用视域剔除、层次细节、背向面剔除等技术进行快速绘制,以满足流程工厂模型的漫游需求。因此,需要一种基于流程工厂模型的复杂场景快速绘制技术,使大规模流程工厂模型能在普通PC机上实现实时漫游。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何提供一种基于流程工厂参数模型的复杂场景快速绘制方法。
(二)发明内容
为了解决上述技术问题,本发明提供了一种基于流程工厂参数模型的复杂场景快速绘制方法,包括预处理步骤:解析流程工厂的参数模型,构建场景树,预处理体元的多分辨率模型,预先装填位于显存的顶点缓冲;渲染步骤:使用视域剔除、动态层次细节选择及背向面剔除技术进行图形绘制,具体来说,预处理步骤包括以下步骤:
S1:解析流程工厂参数模型,得到该模型所包含的对象,对象包含的体元及各体元的参数信息;
S2:构建基于八叉树结构的场景树,场景树中以对象为基本组织单元,以包围盒层次组织八叉树;
S3:基于体元的剖分数,形成不同分辨率的细节模型,保证低分辨率模型所使用顶点是高分辨模型所使用顶点的子集,将各体元最高分辨率模型的顶点数组、法向数组、纹理数组送入显存;
S4:基于所述场景树的包围盒层次进行视域剔除;
S5:基于体元中的视点动态选择体元要使用的细节模型;
S6:基于对体元的参数解析表达进行背向面剔除。
其中,所述步骤S1中对象为在流程工厂中对于工程而言有意义的最小图形单位,如一段管子,一个设备,一个元件等。各对象的几何图形是由体元构成的,体元G={Cylinder(圆柱)、SCylinder(斜截圆柱)、Prism(多棱柱)、Econe(偏心圆台)、Concone(同心圆台)、Squcir(天圆地方)、Squcone(矩形断面台)、Box(长方体)、Torus(圆形断面圆环)、Squtorus(矩形断面圆环)、Sphere(球)、Wedge(直角楔形体)、Saddle(马鞍形)、Oval(椭球封头)}。这些体元都是由参数描述的,如Sphere <Center(圆心)>,<Radius(半径)>。
其中,所述步骤S2中场景树包括场景节点、对象节点、体元节点。场景树以对象为基本组织单元,以八叉树结构组织对象。场景节点用于组织八叉树结构,其记录一个AABB包围盒,其值是其子节点包围盒的并集。对象节点记录该对象工程属性索引地址,并记录该对象的材质、纹理等渲染属性,以及该对象的AABB包围盒。体元节点记录该体元的OBB包围盒,并包含图形显示所需的顶点位置、顶点法向、纹理坐标等信息,在绘制过程中产生不同精度的三角面片。流程工厂模型中,运动对象的数目不多,其运动路径呈现出一定的规律性。因此本发明在整个绘制过程中,保持场景树整体结构不变,利于对象查找。不同分辨率模型间,改变的只是对象所包含体元生成的三角面片,而对象本身的材质、纹理等属性没有改变。
其中,所述步骤S3中,把体元分为两类,一类为不包含曲面的体元,该类体元可以用三角面片精确表达,GE={Prism Squcone、Box,Wedge};另一类为包含曲面的体元,该类体元只能用三角面片逼近,GF={Cylinder、SCylinder、Econe、Concone、Squcir、Torus、Squtorus、Sphere、Saddle、Oval}。GF类型的体元在流程工厂模型中数量较少,且该类体元所包含的三角面片数量不多且固定,因此该类体元分辨率不变。GE类型的体元表面一般是简单的二次曲面,具有简单、对称、曲率一致等特点。对于该类体元,对其均匀剖分,以三角面片逼近原图形。本发明设计了基于剖分数的多分辨率模型生成方法,过程如下:
体元的剖分数越大,其所包含三角面片数越多,分辨率越高;体元剖分数越小,其包含的三角面片数越少,分辨率越低。
设高分辨率模型所使用的顶点集为VH,低分辨率模型所用的顶点集为VL。GF类的体元由于高分辨率模型剖分数是低分辨模型剖分数的2x倍,所以 GE类体元在不同精度下顶点不变,所以 因此可以得出 基于这个特点,本发明设计了基于顶点缓冲不变的动态层次细节变换方法。
其中,基于顶点缓冲不变的动态层次细节变换方法是指:在渲染开始前,将各对象所有体元最高分辨率模型的顶点数组、法向数组、纹理数组装入显存(即顶点缓冲);在渲染过程中,各体元通过改变其索引数组,在渲染管线的装配阶段改变其对应的三角面片,使之符合分辨率要求。
其中,所述步骤S4中基于层次包围盒的视域剔除步骤如下:
S41:判断场景树的场景节点AABB包围盒是否在视域当中。若不在,则该节点遍历终止,其子节点都不在视域中,不进行绘制;若在,则遍历该节点的子节点;若子节点为场景节点,执行S41;若子节点为对象节点,执行S42;
S42:判断对象节点AABB包围盒是否在视域中。若不在,则遍历终止,该对象不进行绘制;若在,则遍历该对象节点下的体元节点;
S43:判断体元节点OBB包围盒是否在视域中。若不在,则遍历 终止,该体元不绘制;若在,则该体元进入渲染管线的绘制过程。
其中,所述步骤S5中基于视点的动态层次细节模型选择步骤如下:
S51:在渲染过程中,以可见对象为单位,根据视点到可见对象包围盒中心的距离与包围盒体积的比值,判断该对象应该使用的分辨率模型;
S52:各可见体元判断其当前分辨率模型与其所在对象应该使用分辨率模型是否一致。若不一致,通过改变其索引数组,在渲染管线的装配阶段改变其对应的三角面片,使之符合分辨率要求。
整个渲染过程中,虽然各对象的分辨率动态改变,但各对象的顶点、法向、纹理无需重新计算,且一直驻留在显存当中,该方法提高了渲染效率。
其中,所述步骤S6中背向面是指背向视点的面,绘制这些面对图像没有任何贡献,因为它们本身已经被别的面片所遮挡。设多边形的外向法向量为N,从视点出发到该多边形的观察向量为V,如果该多边形满足下式,则必定为背向面。V·N>0。通常的图形系统并不绘制背向面,但是需要逐个判别,当场景中多边形数量较大时,其时间开销也不容忽视,而本发明利用体元存在解析表达的优势,可以一次性快速地去除所有背向面,大大提高绘制效率。即利用体元的解析表达式以及参数,预先计算出体元的可先范围,在该可见范围内的面片进行绘制。
本发明还提供了一种基于流程工厂参数模型的复杂场景快速绘制系统,包括:
预处理模块,用于解析流程工厂参数模型,构建场景树,预处理体元的多分辨率模型,预先装填位于显存的顶点缓冲;
渲染模块,用于进行图形绘制,在绘制过程中使用了视域剔除、动态层次细节、背向面剔除等技术。
其中,所述预处理模块包括:
流程工厂参数模型解析模块,用于解析流程工厂参数模型,获取该模型所包含的所有对象,各对象包含的所有体元,各体元的参数信息;
场景树构建模块:用于根据体元的参数,获得体元的OBB包围盒;根据体元的OBB包围盒,构建对象的AABB包围盒;根据对象的AABB包围盒创建基于八叉树结构的场景树;
多分辨率模型预处理模块:根据体元的不同剖分数可以获得不同精度的体元模型,以最高精度对体元进行剖分,将获得的顶点坐标、顶点向量、纹理坐标送入显存(顶点缓冲);
其中,所述渲染模块包括:
视域剔除模块,用于通过场景树的层次结构,判断哪些对象以及对象的哪些体元在当前视域中可见;
动态层次细节选择模块,用于根据视点到可见对象包围盒中心的距离与包围盒体积的比值,判断该对象中可见体元该使用的分辨率模型,通过改变体元的索引数组,在渲染管线的装配阶段改变其对应的三角面片,使之符合分辨率要求;
背向面剔除模块,用于利用体元的解析表达式以及参数,预先计算出体元的可先范围,在该可见范围内剔除背向视点的面片。
(三)有益效果
本发明的基于流程工厂参数模型的复杂场景快速绘制方法具有以下有益效果:
(1)利用体元参数,获得体元的定向包围盒(Oriented Bounding Box,OBB),竟而获得对象的轴向包围盒(Axis Aligned Bounding Box,AABB),并构建基于八叉树的场景树,构建速度快;以对象为组织 单元,在整个绘制过程中,保持场景树整体结构不变,利于对象查找。不同分辨率模型间,改变的只是对象所包含体元生成的三角面片,而对象本身的材质、纹理等属性没有改变;
(2)利用场景树进行视域剔除,从场景区域AABB包围盒到对象AABB包围盒再到体元OBB包围盒进行逐步求精,视域剔除速度快,效率高;
(3)根据体元的不同剖分数生成不同分辨率模型,并在生成过程中保证低分辨率模型所使用顶点是高分辨模型所使用顶点的子集。渲染开始前将各体元最高分辨率模型的顶点数组、法向数组、纹理数组一次送入显存,在渲染过程中动态改变体元的索引数组,从而在渲染管线的装配阶段产生该体元当前分辨率下的三角面片,这样即不需重新计算顶点坐标、顶点法向、纹理坐标,也不需重现填装顶点缓冲,从而大大加快了绘制速度,同时也不需要额外的空间储存不同的分辨率模型;
(4)利用体元的解析表达式以及参数,预先计算出体元的可先范围,减小了可见面判断的复杂度,缩短了背面剔除时间;
(5)综合利用本发明基于流程工厂参数模型特点的视域剔除、动态层次细节、背向面剔除方法后,模型绘制效率大大提高,能够在普通PC机上对大规模流程工厂模型进行实时漫游。
附图说明
图1是本发明的基于流程工厂参数模型的复杂场景快速绘制方法的流程图;
图2是基于八叉树结构的场景图;
图3是某管线的多分辨率显示图;
图4是圆柱面的可见范围;
图5示出了体元图形及参数;
图6示出了圆柱各分辨率模型及三角面片数。
具体实施方式
本发明提出的基于流程工厂参数模型的复杂场景快速绘制方法, 利用MFC以及OpenGL实现了流程工厂参数模型的预处理、绘制等功能。结合附图和实例说明如下。
本发明提出了一种基于流程工厂模型的复杂场景快速绘制方法,其流程如图1所示,包括预处理步骤:解析流程工厂的参数模型,构建场景树,预处理体元的多分辨率模型,预先装填位于显存的顶点缓冲;渲染步骤:使用视域剔除、动态层次细节选择及背向面剔除技术进行图形绘制,具体来说,预处理步骤包括以下步骤:
S1、解析流程工厂的参数模型,得到该参数模型所包含的对象、对象包含的体元及各体元的参数信息。对象是指在流程工厂中对于工程而言有意义的最小图形单位,如一段管子,一个设备,一个元件等。各对象的几何图形是由体元构成的,体元G={Cylinder(圆柱)、Scylinder(斜截圆柱)、Prism(多棱柱)、Econe(偏心圆台)、Concone(同心圆台)、Squcir(天圆地方)、Squcone(矩形断面台)、Box(长方体)、Torus(圆形断面圆环)、Squtorus(矩形断面圆环)、Sphere(球)、Wedge(直角楔形体)、Saddle(马鞍形)、Oval(椭球封头)},各体元图形及参数如图5所示(说明书附图的第3、4、5页为一幅图,即图5)。
S2、构建基于八叉树结构的场景树,场景树中以对象为基本组织单元,以包围盒层次组织八叉树,如图2所示。场景树包括场景节点、对象节点、体元节点。场景节点用于组织八叉树结构,其记录一个AABB包围盒,其值是其子节点包围盒的并集。对象节点记录该对象工程属性索引地址,并记录该对象的材质、纹理等渲染属性,以及该对象的AABB包围盒。体元节点记录该体元的OBB包围盒,并包含图形显示所需的顶点位置、顶点法向、纹理坐标等信息,在绘制过程中产生不同精度的三角面片。流程工厂模型中,运动对象的数目不多,其运动路径呈现出一定的规律性。因此本发明在整个绘制过程中,保持场景树整体结构不变,利于对象查找。不同分辨率模型间,改变的 只是对象所包含体元生成的三角面片,而对象本身的材质、纹理等属性没有改变。
S3、基于体元的剖分数,形成不同分辨率的细节模型,形成不同分辨率的模型时使得低于一定分辨率的低分辨率模型所使用的顶点是高于所述一定分辨率的高分辨模型所使用顶点的子集,将各体元最高分辨率模型的顶点数组、法向数组、纹理数组送入显存。把体元分为两类,一类为不包含曲面的体元,该类体元可以用三角面片精确表达,GE={Prism Squcone、Box,Wedge};另一类为包含曲面的体元,该类体元只能用三角面片逼近,GF={Cylinder、SCylinder、Econe、Concone、Squcir、Torus、Squtorus、Sphere、Saddle、Oval}。GF类型的体元在流程工厂模型(也即流程工程的参数模型)中数量较少,且该类体元所包含的三角面片数量不多且固定,比如Box始终包含12个三角面片,因此该类体元分辨率不变。GE类型的体元表面一般是简单的二次曲面,具有简单、对称、曲率一致等特点。对于该类体元,本发明对其均匀剖分,以三角面片逼近原图形,以圆柱,球,圆环为例:
圆柱:将圆柱的上底圆和下底圆按相同方式N等分,则圆柱侧面为一个2×N的矩形网格,上底与下底均为N边形。
球:按经度和纬度等分成一个N×N的封闭网格。
圆环:首先对圆环所在的圆N1等分,然后再对圆管截面N2等分,形成一个N1×N2的封闭网格,两个端面均为N2边形。
基于剖分数的多分辨率模型生成方法,过程如下:
体元的剖分数越大,其所包含的三角面片数越多,分辨率越高;体元剖分数越小,其包含的三角面片数越少,分辨率越低。以流程工厂模型中使用最多的体元——圆柱为例,其大小根据圆柱的直径(D)判断,若D∈[1,10](单位为米),取 当L=4时,该圆柱各分辨率模型及三角面片数如图6。其它体元同圆柱一样,随着剖分数减少,模型分辨率逐渐降低,且三角面片数明显下降。
以包含多种体元的一段管线为例,其最高分辨率与最低分辨率模型分别如图3中的a与b所示,可以看出虽然模型简化导致对象外观有些变形,但图形特征及拓扑关系依然清晰。由于低分辨率模型是在远视点时使用(远距离观察时效果是模糊的),此时该部分模型已经不是校审人员关注的重点,所以简化引起的视觉误差可以接受。
设高分辨率模型所使用的顶点集为VH,低分辨率模型所用的顶点集为VL。GF类的体元由于高分辨率模型剖分数是低分辨模型剖分数的2x倍,所以 GE类体元在不同精度下顶点不变,所以 因此可以得出 基于这个特点,本发明设计了基于顶点缓冲不变的动态层次细节变换方法。
其中,基于顶点缓冲不变的动态层次细节变换方法是指:在渲染开始前,将各对象所有体元最高分辨率模型的顶点数组、法向数组、纹理数组装入显存(即顶点缓冲)。在渲染过程中,各体元通过改变其索引数组,在渲染管线的装配阶段改变其对应的三角面片,使之符合分辨率要求。
S4、基于场景树包围盒层次进行视域剔除,具体步骤如下:
S41、判断场景树的场景节点AABB包围盒是否在视域当中。若不在,则该节点遍历终止,其子节点都不在视域中,不进行绘制;若在,则遍历该节点的子节点;若子节点为场景节点,执行S41;若子节点为对象节点,执行S42;
S42、判断对象节点AABB包围盒是否在视域中。若不在,则遍历终止,该对象不进行绘制;若在,则遍历该对象节点下的体元节点;
S43、判断体元节点OBB包围盒是否在视域中。若不在,则遍历终止,该体元不绘制;若在,则该体元进入渲染管线的绘制过程。
S5、基于视点选择动态细节模型,具体步骤如下:
S51、在渲染过程中,以可见对象为单位,根据视点到可见对象包围盒中心的距离与包围盒体积的比值,判断该对象应该使用的分辨率模型;
S52、各可见体元判断其当前分辨率模型与其所在对象应该使用分辨率模型是否一致。若不一致,通过改变其索引数组,在渲染管线的装配阶段改变其对应的三角面片,使之符合分辨率要求。
整个渲染过程中,虽然各对象的分辨率动态改变,但各对象的顶点、法向、纹理无需重新计算,且一直驻留在显存当中,因此大大提高了渲染效率。
S6、基于体元的参数解析表达进行背向面剔除。背向面是指背向视点的面,绘制这些面对图像没有任何贡献,因为它们本身已经被别的面片所遮挡。设多边形的外向法向量为N,从视点出发到该多边形的观察向量为V,如果该多边形满足式V·N>0,则必定为背向面。。通常的图形系统并不绘制背向面,但是需要逐个判别,当场景中多边形数量较大时,其时间开销也不容忽视,而本发明利用体元存在解析表达的优势,可以一次性快速地去除所有背向面,大大提高绘制效率。步骤S6具体是利用体元的解析表达式以及参数,预先计算出体元的可先范围,在该可见范围内剔除背向视点的面片。以圆柱为例,设在体元的局部坐标系中进行,并设视点为E(ex,ey,ez),E到物体表面一点P(x,y,z)的观察向量V为(x-ex,y-ey,z-ez)。圆柱面的解析表达式 为: 圆柱面上任意一点P(x,y,z)的法向量N为(x,y,0),则V·N=R2-x·ex-ey。可以看出V·N=0是一个垂直于XY平面的平面方程,它把圆柱面分成可见与不可见两部分,可以用圆柱底面的圆心角范围来表示其可见部分,即V·N=0与XY平面的交线和圆柱底面相割的角度范围,我们在XY平面上用极坐标方程来求解,如图4所示, 可以解得可见的角度范围为: 其中 需要指出的是,当 时,视点位于圆柱的延伸面的内部,此时整个圆柱面都不可见。当视点足够远时,
基于体元的参数解析表达进行背向面剔除,优化了背向面剔除过程。提高了剔除的效率。是一种改进的背向面剔除技术。
本发明还提供了一种上述方法的基于流程工厂参数模型的复杂场景快速绘制系统,该系统包括:预处理模块,用于解析流程工厂参数模型,构建场景树,预处理体元的多分辨率模型,预先装填位于显存的顶点缓冲;渲染模块,用于进行图形绘制,在绘制过程中使用了视域剔除,动态层次细节选择,背向面剔除等技术。
其中,所述预处理模块包括:流程工厂参数模型解析模块,用于解析流程工厂参数模型,获取该模型所包含的所有对象,各对象包含的所有体元,各体元的参数信息;场景树构建模块:用于根据体元的参数,获得体元的OBB包围盒;根据体元的OBB包围盒,构建对象的AABB包围盒;根据对象的AABB包围盒创建基于八叉树结构的场景树;多分辨率模型预处理模块:根据体元的不同剖分数可以获得不同 精度的体元模型,以最高精度对体元进行剖分,将获得的顶点坐标、顶点向量、纹理坐标送入显存(顶点缓冲);
其中,所述渲染模块包括:视域剔除模块,用于通过场景树的层次结构,判断哪些对象以及对象的哪些体元在当前视域中可见;动态层次细节选择模块,用于根据视点到可见对象包围盒中心的距离与包围盒体积的比值,判断该对象中可见体元该使用的分辨率模型,通过改变体元的索引数组,在渲染管线的装配阶段改变其对应的三角面片,使之符合分辨率要求;背向面剔除模块,用于利用体元的解析表达式以及参数,预先计算出体元的可先范围,在该可见范围内的面片进行绘制。
本发明中,视域剔除方法能够利用流程工厂模型的特点,快速构建基于八叉树的场景树,并以场景区域AABB包围盒-对象AABB包围盒-体元OBB包围盒的逐步求精,进行视域剔除;动态层次细节方法利用流程工厂模型中各对象是由基于参数表达的体元组成的特点,根据体元的不同剖分数生成不同分辨率模型,并在生成过程中保证低分辨率模型所使用顶点是高分辨模型所使用顶点的子集。渲染开始前将各体元最高分辨率模型的顶点数组、法向数组、纹理数组一次送入显存,在渲染过程中动态改变体元的索引数组,从而在渲染管线的装配阶段产生该体元当前分辨率下的三角面片,这样即不需重新计算顶点坐标、顶点法向、纹理坐标,也不需重现填装顶点缓冲,从而加快了绘制速度;背向面剔除方法利用体元的解析表达式以及参数,预先计算出体元的可先范围,减小可见面的判断复杂度,缩短判断时间。本发明解决大规模流程工厂模型的实时漫游问题,能在普通PC机上对具有千万兆以上面片信息的流程工厂模型实时漫游,且预处理时间短,磁盘空间占用量小。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下, 还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (10)
1.一种基于流程工厂参数模型的复杂场景快速绘制方法,其特征在于,包括预处理步骤:解析流程工厂的参数模型,构建场景树,预处理体元的多分辨率模型,预先装填位于显存的顶点缓冲;渲染步骤:使用视域剔除、动态层次细节选择及背向面剔除技术进行图形绘制,具体来说,预处理步骤包括以下步骤:
S1:解析流程工厂的参数模型,得到该模型所包含的对象,对象包含的体元及各体元的参数信息;
S2:构建基于八叉树结构的场景树,场景树中以对象为基本组织单元,以包围盒层次组织八叉树;
S3:基于体元的剖分数,形成不同分辨率的细节模型,形成不同分辨率的模型时使得低于一定分辨率的低分辨率模型所使用的顶点是高于所述一定分辨率的高分辨模型所使用顶点的子集,将各体元最高分辨率模型的顶点数组、法向数组、纹理数组送入显存;
渲染步骤包括以下步骤:
S4:基于所述场景树的包围盒层次进行视域剔除;
S5:基于体元中的视点动态选择体元要使用的细节模型;
S6:基于对体元的参数解析表达进行背向面剔除。
2.如权利要求1所述的方法,其特征在于,所述步骤S1中对象为在流程工厂中的图形单位,各对象的几何图形由体元构成。
3.如权利要求1所述的方法,其特征在于,所述步骤S2中的场景树包括场景节点、对象节点和体元节点,场景树以对象为基本组织单元,以八叉树结构组织对象;场景节点用于组织所述八叉树结构,其记录一个AABB包围盒,其值是其子节点包围盒的并集;所述对象节点记录该对象的工程属性索引地址,并记录该对象的渲染属性,以及该对象的AABB包围盒;所述体元节点记录体元的OBB包围盒,并包含图形显示所需的信息,在绘制过程中产生不同精度的三角面片。
5.如权利要求1所述的方法,其特征在于,所述步骤S4具体包括以下步骤:
S41:判断场景树的场景节点AABB包围盒是否在视域当中,若不在,则该节点遍历终止,其子节点都不在视域中,不进行绘制;若在,则遍历该节点的子节点;若子节点为场景节点,执行S41;若子节点为对象节点,执行S42;
S42:判断对象节点AABB包围盒是否在视域中,若不在,则遍历终止,该对象不进行绘制;若在,则遍历该对象节点下的体元节点;
S43:判断体元节点OBB包围盒是否在视域中,若不在,则遍历终止,该体元不绘制;若在,则该体元进入渲染管线绘制过程。
6.如权利要求1所述的方法,其特征在于,所述步骤S5具体包括以下步骤:
S51:在渲染过程中,以可见对象为单位,根据视点到可见对象包围盒中心的距离与包围盒体积的比值,判断该对象应该使用的分辨率模型;
S52:各可见体元判断其当前分辨率模型与其所在对象应该使用分辨率模型是否一致,若不一致,通过改变其索引数组,在渲染管线的装配阶段改变其对应的三角面片,使之符合分辨率要求。
7.如权利要求1所述的方法,其特征在于,所述步骤S6中一次性剔除所述背向面。
8.一种基于流程工厂参数模型的复杂场景快速绘制系统,其特征在于,包括:
预处理模块,用于解析流程工厂的参数模型,构建场景树,预处理体元的多分辨率模型,预先装填位于显存的顶点缓冲;
渲染模块,用于使用视域剔除、动态层次细节选择及背向面剔除技术进行图形绘制。
9.如权利要求8所述的系统,其特征在于,所述预处理模块包括:
流程工厂参数模型解析模块,用于解析流程工厂参数模型,获取该模型包含的所有对象,各对象包含的所有体元及各体元的参数信息;
场景树构建模块,用于根据体元的参数信息,获得体元的OBB包围盒;根据体元的OBB包围盒,构建对象的AABB包围盒;并根据对象的AABB包围盒创建基于八叉树结构的场景树;
多分辨率模型预处理模块,用于根据体元的不同剖分数获得不同精度的体元模型。
10.如权利要求9所述的系统,其特征在于,所述渲染模块包括:
视域剔除模块,用于通过场景树的层次结构,判断哪些对象以及对象的哪些体元在当前视域中可见;
动态层次细节选择模块,用于根据视点到可见对象包围盒中心的距离与包围盒体积的比值,判断该对象中可见体元该使用的分辨率模型,通过改变体元的索引数组,在渲染管线的装配阶段改变其对应的三角面片,使之符合分辨率要求;
背向面剔除模块,用于利用体元的解析表达式以及参数,预先计算出体元的可先范围,在该可见范围内剔除背向视点的面片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110131461A CN102194250B (zh) | 2011-05-19 | 2011-05-19 | 基于流程工厂参数模型的复杂场景快速绘制方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110131461A CN102194250B (zh) | 2011-05-19 | 2011-05-19 | 基于流程工厂参数模型的复杂场景快速绘制方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102194250A true CN102194250A (zh) | 2011-09-21 |
CN102194250B CN102194250B (zh) | 2012-10-03 |
Family
ID=44602261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110131461A Active CN102194250B (zh) | 2011-05-19 | 2011-05-19 | 基于流程工厂参数模型的复杂场景快速绘制方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102194250B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930536A (zh) * | 2012-10-16 | 2013-02-13 | 深圳先进技术研究院 | 基于层次化结构的室内场景运动性分析与检测方法 |
CN103942361A (zh) * | 2014-03-17 | 2014-07-23 | 北京中科辅龙计算机技术股份有限公司 | 三维流程工厂设计中支吊架的自动计算方法及模块 |
CN107025684A (zh) * | 2017-03-16 | 2017-08-08 | 北京中科辅龙计算机技术股份有限公司 | 基于模型构件特征的大规模场景固定帧率绘制及装置 |
CN107067463A (zh) * | 2017-03-16 | 2017-08-18 | 北京中科辅龙计算机技术股份有限公司 | 一种流程工厂模型裁剪、绘制方法及装置 |
CN107067340A (zh) * | 2017-01-18 | 2017-08-18 | 上海核工程研究设计院 | 一种核电厂快速人因工程验证方法 |
CN107742317A (zh) * | 2017-09-27 | 2018-02-27 | 杭州群核信息技术有限公司 | 一种渲染图像的获取方法、装置、渲染系统及存储介质 |
CN108765538A (zh) * | 2018-06-16 | 2018-11-06 | 桂林理工大学 | 基于cad平台的osgb数据分级渲染的方法 |
CN110935171A (zh) * | 2019-11-01 | 2020-03-31 | 南宁市勘察测绘地理信息院 | 一种实景三维模型在游戏引擎中加载优化及单体化的方法 |
CN111597597A (zh) * | 2020-05-11 | 2020-08-28 | 内蒙古京泰发电有限责任公司 | 一种pdms天圆地方结构体设备模型的创建方法 |
CN112106339A (zh) * | 2018-01-11 | 2020-12-18 | 索尼互动娱乐股份有限公司 | 位移下的后向面片剔除 |
CN117313438A (zh) * | 2023-11-30 | 2023-12-29 | 云南三耳科技有限公司 | 一种三维工厂工具编辑优化方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6208347B1 (en) * | 1997-06-23 | 2001-03-27 | Real-Time Geometry Corporation | System and method for computer modeling of 3D objects and 2D images by mesh constructions that incorporate non-spatial data such as color or texture |
JP2006133940A (ja) * | 2004-11-04 | 2006-05-25 | Matsushita Electric Ind Co Ltd | 詳細度を用いたリアルタイム画像生成装置 |
CN101577015A (zh) * | 2009-06-08 | 2009-11-11 | 北京理工大学 | 一种基于多分辨率体元的动态地形建模方法 |
-
2011
- 2011-05-19 CN CN201110131461A patent/CN102194250B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6208347B1 (en) * | 1997-06-23 | 2001-03-27 | Real-Time Geometry Corporation | System and method for computer modeling of 3D objects and 2D images by mesh constructions that incorporate non-spatial data such as color or texture |
JP2006133940A (ja) * | 2004-11-04 | 2006-05-25 | Matsushita Electric Ind Co Ltd | 詳細度を用いたリアルタイム画像生成装置 |
CN101577015A (zh) * | 2009-06-08 | 2009-11-11 | 北京理工大学 | 一种基于多分辨率体元的动态地形建模方法 |
Non-Patent Citations (3)
Title |
---|
《系统仿真学报》 20060831 封春升等 基于视域剔除和图像缓存技术的复杂场景快速绘制方法 全文 1-10 第18卷, * |
《计算机工程与应用》 20110220 韩永红等 利用GPU进行实时大规模3D地形渲染的方法研究 第2节,图3 6,10 , 第5期 * |
《计算机辅助设计与图形学学报》 20080831 苏智勇等 面向动态流程工厂模型的快速分层层次细节法 第1039-1043页,图5 1-3,5-10 第20卷, 第8期 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102930536A (zh) * | 2012-10-16 | 2013-02-13 | 深圳先进技术研究院 | 基于层次化结构的室内场景运动性分析与检测方法 |
CN103942361A (zh) * | 2014-03-17 | 2014-07-23 | 北京中科辅龙计算机技术股份有限公司 | 三维流程工厂设计中支吊架的自动计算方法及模块 |
CN103942361B (zh) * | 2014-03-17 | 2017-02-01 | 北京中科辅龙计算机技术股份有限公司 | 三维流程工厂设计中支吊架的自动计算方法及模块 |
CN107067340A (zh) * | 2017-01-18 | 2017-08-18 | 上海核工程研究设计院 | 一种核电厂快速人因工程验证方法 |
CN107067340B (zh) * | 2017-01-18 | 2024-02-13 | 上海核工程研究设计院股份有限公司 | 一种核电厂快速人因工程验证方法 |
CN107025684B (zh) * | 2017-03-16 | 2021-03-02 | 北京中科辅龙计算机技术股份有限公司 | 基于模型构件特征的大规模场景固定帧率绘制方法及装置 |
CN107067463B (zh) * | 2017-03-16 | 2020-04-07 | 北京中科辅龙计算机技术股份有限公司 | 一种流程工厂模型裁剪、绘制方法及装置 |
CN107067463A (zh) * | 2017-03-16 | 2017-08-18 | 北京中科辅龙计算机技术股份有限公司 | 一种流程工厂模型裁剪、绘制方法及装置 |
CN107025684A (zh) * | 2017-03-16 | 2017-08-08 | 北京中科辅龙计算机技术股份有限公司 | 基于模型构件特征的大规模场景固定帧率绘制及装置 |
CN107742317A (zh) * | 2017-09-27 | 2018-02-27 | 杭州群核信息技术有限公司 | 一种渲染图像的获取方法、装置、渲染系统及存储介质 |
CN112106339A (zh) * | 2018-01-11 | 2020-12-18 | 索尼互动娱乐股份有限公司 | 位移下的后向面片剔除 |
CN112106339B (zh) * | 2018-01-11 | 2022-09-16 | 索尼互动娱乐股份有限公司 | 位移下的后向面片剔除 |
CN108765538A (zh) * | 2018-06-16 | 2018-11-06 | 桂林理工大学 | 基于cad平台的osgb数据分级渲染的方法 |
CN108765538B (zh) * | 2018-06-16 | 2022-03-22 | 桂林理工大学 | 基于cad平台的osgb数据分级渲染的方法 |
CN110935171A (zh) * | 2019-11-01 | 2020-03-31 | 南宁市勘察测绘地理信息院 | 一种实景三维模型在游戏引擎中加载优化及单体化的方法 |
CN111597597A (zh) * | 2020-05-11 | 2020-08-28 | 内蒙古京泰发电有限责任公司 | 一种pdms天圆地方结构体设备模型的创建方法 |
CN117313438A (zh) * | 2023-11-30 | 2023-12-29 | 云南三耳科技有限公司 | 一种三维工厂工具编辑优化方法及装置 |
CN117313438B (zh) * | 2023-11-30 | 2024-01-26 | 云南三耳科技有限公司 | 一种三维工厂工具编辑优化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102194250B (zh) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102194250B (zh) | 基于流程工厂参数模型的复杂场景快速绘制方法及系统 | |
US10706599B2 (en) | Recursive cell-based hierarchy for data visualizations | |
Teller | Visibility computations in densely occluded polyhedral environments | |
CN101063972B (zh) | 用于增强映像树的可视性的方法和装置 | |
CN102055996B (zh) | 基于空间逐层扫描的真三维立体显示系统及其显示方法 | |
CN101989178B (zh) | 多叉树数据结构的立体环状可视化方法 | |
WO2008067483A1 (en) | Ray tracing a three dimensional scene using a grid | |
US9305393B2 (en) | Building acceleration structures with synthetic acceleration shapes for use in ray tracing | |
CN101281654A (zh) | 一种基于八叉树的大规模复杂三维场景处理方法 | |
WO2001008263A2 (en) | Method and apparatus for generating atomic parts of graphic representation through skeletonization for interactive visualization applications | |
CN108763472A (zh) | 三维数据可视化的装置及方法 | |
US8610743B2 (en) | Systems and methods for displaying, viewing and navigating three dimensional representations | |
CN101604453A (zh) | 基于分块策略的大规模数据场体绘制方法 | |
CN104658033A (zh) | 多光源下的全局光照绘制方法及装置 | |
CN101419721A (zh) | 一种基于视域剔除的复杂室内场景快速绘制方法 | |
CN102722885A (zh) | 一种加快三维图形显示的方法 | |
CN108230433A (zh) | 3d地图散点数据展示方法及系统、信息数据处理终端 | |
Hastings et al. | Optimization of large-scale, real-time simulations by spatial hashing | |
CN109712236A (zh) | 基于svg地图数据的三维可视化实现方法 | |
EP3319047B1 (en) | Apparatus for generating an acceleration structure for ray tracing | |
Zhang et al. | A geometry and texture coupled flexible generalization of urban building models | |
Fekete | Visualizing networks using adjacency matrices: Progresses and challenges | |
Pina et al. | Semantic visualization of 3D urban environments | |
Sani et al. | Extraction and transformation of ifc data to citygml format | |
CN108022309B (zh) | 三维模型智能拼接方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200106 Address after: 100085, Beijing, Haidian District information road, No. 28, information building, block A, nine Patentee after: Beijing Zhongke Fulong Intelligent Technology Co., Ltd Address before: 100085, Beijing, Haidian District information road, No. 28, information building, block A, nine Patentee before: Beijing Zhongke Fulong Computer Technology Co., Ltd. |
|
TR01 | Transfer of patent right |