首页> 中国专利> 一种带尖锐特征的无网格表面绘制方法

一种带尖锐特征的无网格表面绘制方法

摘要

本发明涉及一种带尖锐特征的无网格表面绘制方法,该方法包括以下步骤:第一步,采用点边混合模型对待绘制物体的表面进行建模;第二步,将模型中的表面点与相应的切割边进行关联,并保存关联结果;第三步,将模型中所有的切割边投影到观察平面上,形成投影切割边;第四步,将模型中所有的表面点投影到观察平面上,形成一个个相互重叠的椭圆;第五步,利用第三步中投影后的切割边,通过之字形剪裁算法对每个投影在观察平面上的椭圆进行裁剪;第六步,裁剪完毕后,对整个观察平面上的像素点进行归一化,获得待绘制物体的无网格表面。与现有技术相比,本发明具有稳定可靠、实现方便、非常适合于实际工程应用等优点。

著录项

  • 公开/公告号CN103065362A

    专利类型发明专利

  • 公开/公告日2013-04-24

    原文格式PDF

  • 申请/专利权人 上海交通大学;

    申请/专利号CN201210571768.5

  • 发明设计人 顾力栩;戴春锋;

    申请日2012-12-25

  • 分类号G06T17/30;

  • 代理机构上海科盛知识产权代理有限公司;

  • 代理人赵继明

  • 地址 200240 上海市闵行区东川路800号

  • 入库时间 2024-02-19 19:11:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-12-11

    未缴年费专利权终止 IPC(主分类):G06T17/30 授权公告日:20150708 终止日期:20171225 申请日:20121225

    专利权的终止

  • 2015-07-08

    授权

    授权

  • 2013-05-29

    实质审查的生效 IPC(主分类):G06T17/30 申请日:20121225

    实质审查的生效

  • 2013-04-24

    公开

    公开

说明书

技术领域

本发明涉及一种无网格表面绘制方法,尤其是涉及一种带尖锐特征的无网格 表面绘制方法。

背景技术

三维扫描系统输出的是采样点元,通过该技术所得到的点元集合可以准确地表 达物体的几何形状。由于各点元之间没有连接关系,也不需要保存拓扑结构信息, 因此在处理复杂的三维物体时显得特别灵活和简单。因此,基于点的无网格几何建 模和绘制在计算机图形学领域内受到越来越多的关注。

使用点元作为基本元素进行表面绘制最早由Levoy等人提出。之后,出现了 各种无网格表面绘制方法,例如,使用图像空间表面重建技术的方法、QSplat系统 以及利用移动最小二乘(MLS,Moving Least Square)的方法等。Splatting算法是一 种比较快速也较易实现的实时算法。在这种方式中,每个表面点元用一个小圆盘近 似,这一近似的小圆盘被称为Splat。然而,Splatting算法并不能很好地处理表面 模型中的尖锐特征,例如边或角等。这些尖锐特征在某些应用中是非常重要的,例 如CSG(构造实体几何)建模、切割模拟等。

Adams等人提出在边角区域用非常小的splat进行重采样。然而,这种方法需 要非常高的采样率,并且这也只是一种近似方法,当将边角区域放大时,仍能看到 失真。Pauly等人提出了一种用特殊的splat来绘制边缘的方法。这种splat由两个 相交的圆盘组成,并且这两个圆盘拥有公共的圆心。切割的边缘就是两个圆盘的交 线。这种方法的一个重要缺陷是不能绘制角点。Zwicker等提出切割线(clip line) 的概念,指出边缘信息可以通过计算两个相交圆盘所在平面的交线得到。

Wicke等提出了如何在CSG模型中绘制尖锐特征。此方法将splat的裁剪转化 为内外点测试问题(inside/outside test,判断空间内一点是在模型内部还是模型外 部)。该方法是目前最准确的方法,但该方法依赖于CSG模型,限制了它的应用。 最近,为了去除对CSG模型的依赖,Ivo等使用了自适应的splat裁剪方法。但该 方法对某些复杂情况仍然无法处理。

点边混合模型是绘制尖锐特征的另一种策略,由Zhang等提出。除了点元集 合外,该模型还包括了一个切割线的集合,用来绘制边角。但是有三个限制,因此 在绘制前需要对模型进行一次预处理过程,当某个限制不满足时,增加点元集合的 采样率,直到所有限制都被满足。

发明内容

本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种稳定可靠、 实现方便、非常适合于实际工程应用的带尖锐特征的无网格表面绘制方法。

本发明的目的可以通过以下技术方案来实现:

一种带尖锐特征的无网格表面绘制方法,该方法包括以下步骤:

第一步,采用点边混合模型对待绘制物体的表面进行建模;

第二步,将模型中的表面点与相应的切割边进行关联,并保存关联结果;

第三步,将模型中所有的切割边投影到观察平面上,形成投影切割边;

第四步,将模型中所有的表面点投影到观察平面上,形成一个个相互重叠的椭 圆;

第五步,利用第三步中投影后的切割边,通过之字形剪裁算法对每个投影在观 察平面上的椭圆进行裁剪;

第六步,裁剪完毕后,对整个观察平面上的像素点进行归一化,获得待绘制物 体的无网格表面。

所述的无网格表面由若干个光滑表面s组成,所述的尖锐特征仅出现在两个或 多个相邻的光滑表面之间,对于每个光滑表面s,有

s={Pn,Lt}

其中,Pn为n个表面点的集合,n>0,每个表面点中包含该点的属性,Lt为t个 切割环的集合,t≥0,每个切割环包含一个边点的序列,在每个切割环中,连接任 意两个的边点的线段称为切割边。

所述的点的属性包括点的位置、法向量、颜色值和该点所代表的splat的半径。

所述的点边混合模型PEM定义如下:

PEM={SK,Vm}

其中,SK表示包含K个光滑表面的集合,Vm为m个边点的集合。

所述的边点为尖锐特征中的边上的点。

所述的表面点与切割边进行关联是指在每个光滑表面中,计算表面点与切割边 间的距离,实现关联,具体描述为:

以表面点的位置为球心,表面点所表示的splat的半径为半径作每个表面点的 包围球,同时将切割边用包围球包起来,然后作包围球间的碰撞检测,若某一包围 球与某一切割边相交,则表明它们之间有关联关系。

所述的之字型裁剪算法是指根据观察平面上有离散点的射线与切割边判断该 离散点是否需被裁剪,并舍弃需被裁剪的离散点,具体为:

1)针对观察平面上的某一离散点D,从该点画一条射线,使这条射线经过第 一条切割边的中心c;

2)计算该射线与所有投影切割边的交点,并记录距离点D最近的交点,该交 点所在的切割边定义为关键切割边e;

3)判断点D是否满足若是,则点D为需被裁剪的离散点,舍弃点 D,若否,则保留点D。

当距离点D最近的交点为两条投影切割边的公共点时,另取一条射线,使其 通过其中一条切割边的中点,并计算其与另一条边的交点,根据交点与点D的距 离选取关键切割边。

与现有技术相比,本发明具有以下优点:

(1)省去了增加采样点这一复杂的预处理过程,简化了整个建模过程;

(2)绘制过程是在经典的Splatting算法中做的部分改进,整个绘制过程非常 易于实现;

(3)本发明对于处理各种尖锐边缘效果非常好。

附图说明

图1为本发明的流程示意图;

图2为采用本发明方法绘制的齿轮模型效果图。

具体实施方式

下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方 案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范 围不限于下述的实施例。

实施例

如图1所示,一种带尖锐特征的无网格表面绘制方法,该方法包括以下步骤:

第一步,在绘制前,采用点边混合模型对待绘制物体的表面进行建模,;

在点边混合模型中,用P来表示表面点;而用v来表示尖锐特征中的边上的点, 并称其为边点。所述的无网格表面由若干个光滑表面s组成,规定尖锐特征仅出现 在两个或多个相邻的光滑表面之间,对于每个光滑表面s,有

s={Pn,Lt}

其中,Pn为n个表面点的集合,n>0,每个表面点中包含该点的属性,包括点 的位置、法向量、颜色值和该点所代表的splat的半径;Lt为t个切割环的集合,t≥0。 每个切割环包含一个边点的序列,将这些边点按该序列连接起来,并连上其头尾, 就可以组成一个环状的切割环。由于我们之前规定了尖锐特征只能出现在两个或多 个相邻的光滑表面之间,因此这些特征只能以环状形式存在于模型中。切割环中的 边点是按逆时针的顺序排列的,即当视线沿着表面点的法向量的反方向看过去,边 点的排列顺序是逆时针的。另外需要指出的是,每个光滑表面可以没有切割环,例 如一个光滑的球面;也可以有多于一个的切割环,这种情况发生在表面中有洞的情 况。在每个切割环中,连接任意两个的边点的线段称为切割线段或切割边。

所述的点边混合模型PEM定义如下:

PEM={SK,Vm}

其中,SK表示包含K个光滑表面的集合,SK={si|i=1,…,K},Vm为m个边点 的集合。

第二步,将模型中的表面点与相应的切割边进行关联,并保存关联结果。

所述的表面点与切割边进行关联是指在每个光滑表面中,计算表面点与切割边 间的距离,实现关联,具体描述为:

以表面点的位置为球心,表面点所表示的splat的半径为半径作每个表面点的 包围球,同时将切割边用包围球包起来,然后作包围球间的碰撞检测,若某一包围 球与某一切割边相交,则表明它们之间有关联关系。

第三步,绘制过程从这步开始,将模型中所有切割边投影到观察平面上,形成 投影切割边。

第四步,将模型中所有的表面点投影到观察平面上,形成一个个相互重叠的椭 圆。

第五步,利用第三步中投影后的切割边,通过之字形剪裁算法对每个投影在观 察平面上的椭圆进行裁剪。

所述的之字型裁剪算法如下:

所述的之字型裁剪算法是指根据观察平面上有离散点的射线与切割边判断该 离散点是否需被裁剪,并舍弃需被裁剪的离散点,具体为:

1)针对观察平面上的某一离散点D,从该点画一条射线,使这条射线经过第 一条切割边的中心c;

2)计算该射线与所有投影切割边的交点,并记录距离点D最近的交点,该交 点所在的切割边定义为关键切割边e;

3)判断点D是否满足若是,则点D为需被裁剪的离散点,舍弃点 D,若否,则保留点D。

另外需要指出的是,当射线正好通过两条切割边的公共点时,则可能会无法判 断这两个切割边哪个是关键切割边。解决办法是另画一条射线,使其通过其中一条 切割边的中点,并计算其与另一条边的交点,看哪个交点最近哪个就是关键切割边。

该裁剪算法的伪代码如下所示:

第六步,当所有的表面顶点被投影到观察平面上并做了正确地裁剪后,对整个 观察平面上的像素点进行归一化,获得待绘制物体的无网格表面。

采用上述方法创建并绘制一个齿轮模型。本实例在CPU为Pentuim IV 2.67GHz,显卡为NVIDIA GT240,内存为2.0GB,操作系统为Window XP Professional的计算机中实现,整个建模与绘制的算法使用c++语言编写。最终的绘 制效果如图2所示。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号