当前位置: 首页 > 专利查询>上海大学专利>正文

一种基于视域剔除的复杂室内场景快速绘制方法技术

技术编号:2952120 阅读:267 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种基于视域剔除的复杂室内场景快速绘制方法。本方法首先把整个场景划分成n个区域,用portal入口把相邻的区域连接起来,再确定视点所在的位置,将该区域模块所包含的所有几何模块与视锥体进行相交检测,完成视域剔除工作,最后计算可视范围内的所有Portal,计算新视锥体,并进行新一轮的视域剔除,如此递归下去,得到最终需要渲染的节点。实验结果表明,采用本发明专利技术的室内场景管理方法,在室内遮挡率高时,能够大大提高渲染效率。

【技术实现步骤摘要】

本专利技术涉及图形处理和虚拟现实,主要是一种场景图形引擎快速绘制方法,特别 是一种基于室内场景图结构的图形引擎快速绘制方法。
技术介绍
由于计算机绘制的场景日益复杂,为了达到实时的效果,对计算机软硬件的要求 只会越来越高,它要求采用先进的绘制算法来对复杂的场景进行规划和管理,对场景 管理算法进行优化,加快绘制场景的速度,通常图形质量与计算量是成正比的,计算 量越大,图形的质量也就越好,然而考虑到虚拟现实中实时性的要求,所以不得不在 这两者中均衡考虑,在满足视觉效果的同时,尽量加快绘制的速度。目前用来加速场景绘制的主要技术有层次细节算法,基于图像的绘制算法等 快速绘制算法,层次细节算法的核心思想是在不影响画面视觉效果的前题条件下,根 据视点距离,逐步简化场景表面细节来提高绘制的效率。但层次细节LOD转换时的 图像跳跃比较大,是一种离散的,在离散/连续方面非常欠缺。基于图像绘制算法利 用二维图像信息来表达和绘制虚拟场景,利用这种方法会有较好的真实感和实时性, 因为它来自真实的照片,具有真实感强的图像,但是它的缺点是缺少交互性。对于一个虚拟现实系统来说,不仅有室外场景,还有相当一部分的室内场景, 室内场景通常都有一个特性——场景内部模型相当复杂,并且从观测者的视点看去只 能看到他所处环境内的物体,除非在这个环境中有其它入口可以通往其它环境。由于 室内场景的复杂,运用LOD肯定是不现实的,因为都是近距离的模型,而基于图像 的绘制的算法也不能从根本上解决加速绘制的要求,一般针对这样的室内环境都是运 用创建树结构,但树结构是相当低效的,因为通过入口观测者只能看到相邻环境中非 常小的一部分物体。换句话说,树结构不能很好的处理既有高复杂度又有高阻光度的 场景。这个问题常常被称为"无效渲染",会花费大量的时间去渲染最终被一堵墙挡 住的相邻房间中的物体。
技术实现思路
本专利技术的目的在于提供,能大为 提高在绘制室内场景时的绘制速度,保证虚拟现实的实时性要求。为达到上述目的,本专利技术的构思是克服现有图形引擎快速绘制技术,尤其是在绘制室内场景时的速度不够,提供了一种基于视域剔除的复杂室内场景快速绘制方 法,它考虑了室内场景与室外场景的区别与特点,大大提高了在绘制室内场景时的绘 制速度,保证了虚拟现实的实时性要求。根据上述专利技术构思,本专利技术采用的技术方案是,其特征在于首先将场景划分成区域,用portal入口把相邻的区域连接起来,再确定视点所在的位置,将该区域模 块所包含的所有几何模块与视锥体进行相交检测,然后进行视域剔除工作,实现复杂 室内场景的快速绘制;具体操作步骤如下(1) 采用'凸'多边形作为划分区域的最小单位;(2) 用portal入口把相邻的区域连接起来;(3) 确定视点所在的位置,将摄像机的空间坐标与所有区域依次进行相交判断,由 此确定视点处于哪个区域模块中;(4) 将该区域模块所包含的所有几何模块与视锥体进行相交检测,完成视域剔除工 作;(5) 计算可视范围内的所有Portal,按Portal大小和视点方向重新计算新的视锥体, 并与该Portal相连的区域模块内利用计算的视锥体进行新一轮的视域剔除;如 此递归下去,直到所有的可视区域模块都完成了视域剔除,如此获得的所有几 何节点形成的序列就是需要进行渲染的节点。所述的步骤(1)中的采用'凸'多边形作为划分区域中的最小单位中的'凸' 表示在区域内的任意两点间画一条线段,这条线段不会穿透该区域的任何一个多边 形,而闭合表示从区域内发出一条光线,如果要让光线射到区域外,则此光线 必须要穿透某个区域的多边形。所述的步骤(2)中的portal入口表示为两个区域模块相连接部分的位置和大小。 所述的步骤(5)中的按Portal大小和视点方向重新计算新的视锥体,这里会出 现两种情况,Portal完全/部分处于原视锥体范围内部,如果完全处于原视锥体内部, 那么只要计算由Portal产生的视锥体为新的视锥体,如果部分处于原视锥体内部,那 么在内部以Portal产生的视锥体为准,而超出原视锥体的部分还是按照原视锥体的边 界进行计算所得。本专利技术有益的效果是采用Portal入口技术对复杂的室内场景进行管理,基于视域剔除,使得在模型复杂的场景内无需渲染场景中的每个物体,这样大大提高了渲染 了效率,很好的设计了 Portal入口, cell区域的数据结构体,而避免了用树结构产生 的"无效渲染"提高内存利用率。 附图说明图l本专利技术的方法流程图。图2 Portal模型结构图。图3视锥体计算示意图1。图4视锥体计算示意图2。图5测试效果图。 具体实施例方式本专利技术的一个优选实施例结合附图说明如下本复杂室内场景快速绘制方法,共 分五步第一步将整个场景划分成n个区域如图1所示,在入口技术的概念中整个场景被划分n个区域(cell),每个区域 都是一个闭合的凸多边形,这里"凸"表示在区域内的任意两点间画一条线段,这条 线段不会穿透该区域的任何一个多边形,而闭合表示从区域内发出一条光线,如果要 让光线射到区域外,则此光线必须要穿透某个区域的多边形.因此可以形象地把一个 区域看成是一个房间,区域的多边形构成了房间的墙壁、天花板和地板等(如果要描 述一个"凸"的房间,需要将这个房间划分成若干个"凸"区域,然后用入口将它们 连接起来)。两个邻近的区域通过入口连接。第二步cell区域结构设计Cdl模块的划分是由美工前期确定的,划分有两个主要条件, 一是模块内部不能有墙或者其他遮挡体形成较大范围的遮挡,二是该模块的形状必须是凸多面体,而所有的几何节点将以其所在位置和包围盒信息对号入座至相应的Cell模块,两个Cell模块将通过窗或门结构进行连通,每个房间就是一个Cell模块,而连接房间与房间之间的门(窗)就是Portal。在视域剔除前我们就假定所有当前Cell模块(视点处于的那个Cdl模块)中的几何节点都是可见的,而相邻的Cell模块中只用那些处于门窗可视范围内的几何节点才可见,不相邻的Cell模块中的所有几何节点均不可见。本专利技术中,设计的Cell数据结构如下 Class Cellwstring mName; TPortalList mPortals; TNodeList mNodes; TOBBList mBoxes; bool mlsVisualize;}其中mName是该模块的名字,也就是引擎中的标识号,mPortals记录了属于这 个模块的所有Portal结构,mNodes记录了位于模块中的所有几何节点的信息,mBoxes 记录的是组成这个Cell的所有OBB的序列,由于Cdl其实就是一个个房间,而房间 不一定是方方正正的,所以有些情况下需要用多个OBB才能准确的描述一个Cdl, mBoxes就是用来记录这些OBB的。最后一个布尔变量mlsVisualize是用来记录该 Cell是否可见的。第三步Portal结构设计Portal模型结构如图2所示,这里将Portal抽象成一个平面的长方形,所以在数 据结构中只要记录其中心坐标,两个轴役及轴向长度即可,通过这些参数我们可以计 算出Portal四个顶点的坐标值^二尸c-A0H0-^ (1)B = Pc + A;030 - (2) C =《+ A;0H0 + (3)本文档来自技高网
...

【技术保护点】
一种基于视域剔除的复杂室内场景快速绘制方法,其特征在于首先将场景划分成区域,同用Portal入口把相邻的区域连接起来,再确定视点所在的位置,将该区域模块所包含的所有几何模块与视锥体进行相交检测,然后进行视域剔除工作,实现复杂室内场景的快速绘制;具体操作步骤如下: a.采用‘凸’多边形作为划分区域的最小单位; b.用portal入口把相邻的区域连接起来; c.确定视点所在的位置,将摄像机的空间坐标与所有区域依次进行相交判断,由此确定视点处于哪个区域模块中;   d.将该区域模块所包含的所有几何模块与视锥体进行相交检测,完成视域剔除工作; e.计算可视范围内的所有Portal,按Portal大小和视点方向重新计算新的视锥体,并与该Portal相连的区域模块内利用计算的视锥体进行新一轮的视域 剔除; f.如此递归下去,直到所有的可视区域模块都完成了视域剔除,如此获得的所有几何节点形成的序列就是需要进行渲染的节点。

【技术特征摘要】

【专利技术属性】
技术研发人员:余小清万旺根周俊玮丁欢
申请(专利权)人:上海大学
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1