曲面三角网格化

silkentse 2007-11-30 09:33:46

请问各位大虲,有谁知道三维的点怎样三角网格化?请告诉我下思路,谢谢!!

已知:全部点的坐标。
结果:要求全部曲面三格网格化
...全文
816 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlulu2006 2011-12-26
  • 打赏
  • 举报
回复
我也需要了解一下
wolftop 2011-01-07
  • 打赏
  • 举报
回复
打酱油的。。飘过了。。。
stoneallen 2010-12-18
  • 打赏
  • 举报
回复
没用过
zinking3 2009-02-10
  • 打赏
  • 举报
回复
有那么复杂么? DELAUNAY 三角剖分很经典的算法
unixlinuxsys 2009-01-15
  • 打赏
  • 举报
回复
原文地址:http://sdzdh.org.cn/05lw/44.htm


三维曲面网格化简的振动子扩散法

A Vibrator-Diffuse algorithm to simplify massive 3d meshes

提出了一种在曲率背景约束下的三维曲面网格化简的算法,振动子扩散法。它对数据量很大的原始三维曲面网格各顶点进行一般的简单的参数化,同时计算其曲率作为参数平面上各映射顶点的属性,构成曲率背景图,然后在参数平面上给出一组规则分布的振动子点集,赋与弹簧连接的模型关系,可获得变系数线性方程组,利用迭代法解此方程得出振动子的收敛位置并吸附其距离最近的映射顶点映射回三维曲面网格,获得化简三维曲面网格。实验证明此算法能在显著地简化三维曲面网格的同时,很好的保留细节,并具有算法复杂度低,简化率可控制的的特点。

Abstract: This paper presents a Vibrator-Diffuse algorithm to simplify massive 3d meshes under the constraint of the curvature-background-map. First, the original 3d mesh is mapped to the parameter plane and the curvature-background-map is constructed based on the curvature attributes of the mesh vertices. Second, a group of uniform vibrators are set on the curvature-background-map as the initial distribution. Then, the simplification vertices set is gained by solving a variable-coefficients equation group based on the spring models between the vibrators. Our method is efficient to reduce the amount of date and preserve the detail and boundaries.

一. 相关工作和应用背景

三维图象的出现是当今信息技术进步的必然结果,其相关的理论,方法和技术因广泛的应用背景而得到了迅猛的发展,引发和促进了网络游戏,三维动画制作,三维影视和电子演员等方面的一场革命。但无论用激光扫描或是结构光拍摄,其产生三维图象皆会因为数据量过大(为保持细节的分辨率,数据量过大是不可避免的),而不得不首先经过一定的化简,才能转入继而进行的实际应用。(例如三维人脸的原始网格的点云一般为几十万,但动画设计仅要求1000点左右),是公认的重要研究课题。

三维图像的最为常用的表示形式是三维网格,三维网格是连续曲面的离散分段线性逼近,网格顶点集合就是原始曲面上的离散采样点集合,当顶点采样密度过低时,大量丢失原始曲面的几何信息,出现欠采样现象,而顶点采样密度过高时,虽能充分逼近原始曲面,但存在大量冗余。三维扫描设备是对原始曲面进行等密度采样,虽然其扫描精度足以保证在曲面的细节部分有足够采样密度,却造成曲面平坦部分过采样,使顶点总数过多,如果降低扫描精度,又会造成曲面细节部分欠采样。高精度的等采样密度网格是一种缺乏效率的表示方式,网格化简就是从中抽取出一个变采样密度网格,在平坦部分大幅降低采样密度,而在细节部分略微降低或保持原有采样密度,利用恰当的采样密度布局来表示原始网格.

现有的网格化简算法,大多基于启发式搜索。,不同算法之间的区别就在于聚类算法的不同。最为常用的聚类算法是“边收缩”(Edge Contraction / Edge Collapse) 或累进网格(Progressive Mesh)。文献[1]中采用的是全局性能量指标,而文献[2]中采用的是局部性的二次指标。另一类常用的聚类方法是空间聚类(Spatial Clustering),最初是由文献[3]中提出的均匀聚类算法,R-Simp [4]是一种迭代式自适应网格聚类划分算法,不断利用切割平面,按照面积加权曲率属性等分的原则,对原始网格进行剖分,直至获得理想的分辨率,本质上是一种由粗到细的剖分简化。R-Simp的化简效果要优于边收缩算法,但计算量大。Hoppe

还提出一种基于基本网格的化简算法,用顶点数和拓扑结构已然确定的公共人脸网格向不同的人脸的三维点云迭代靠拢,获得最小距离的结果。此法虽然有效,但存在初始对齐困难(常需要人工干预)和表情不同,不易收敛的问题。



二. 曲率计算和参数化

为计算三维网格曲面中各顶点的曲率属性,根据文献[5]中的离散微分几何算子计算网格顶点的平均曲率与高斯曲率,并据此求出顶点处的主曲率与,再计算其组合:。能较好地反映顶点处的弯曲程度。

文献[6]指出对于任意一个与圆盘同胚(isomorphic to a disk)的三维三角网格,总存在一个平面三角网格,使二者的顶点、三角边与三角面一一对应,并且相交的对应边只交于对应顶点,相交的对应面只交于对应边与对应顶点,则称此平面三角网格为原始三维网格的参数化网格,二者间的一一对应关系就称之为参数化投影。在参数化投影中,三维网格的边界被映射为平面参数化网格的边界,为处理方便,平面参数化网格的边界一般取为单位正方形。除了简单的可展曲面以外,一般三维网格的参数化投影都会引起距离或角度的形变,文献[6]中给出的经典算法非常简单且常用,它将参数化投影问题转化为线性代数方程组的求解,本文即采用该算法进行三维网格的平面参数化。



三 基于振动子扩散的网格化简算法

1 建立曲率背景图

本文提出一种实现曲率自适应的振动子扩散网格化简算法,首先计算原始三维网格各顶点的曲率属性,并通过参数化算法将原始三维网格投影至参数平面上,

然后计算原始三维曲面网格各顶点的曲率,将曲率值作为参数平面上各对应映射点的属性,便构成曲率背景图(见图1a)

http://sdzdh.org.cn/05lw/44.files/image018.jpg

2.振动子集合的初始化


在参数平面上选择一组点数为n,(n远小于三维曲面网格的顶点总数)的规则点集,通过德鲁纳(Delaunay)三角化使其成相互正六边型的位置连接关系(见图2a),则这组点集便是振动子集合{,k=1,2,…n}。

3 振动子弹簧连接模型及变系数线性方程组

在振动子之间引入弹簧连接模型后,对非边界振动子,而言与其一阶邻域的振动子{}存在关系: (1a)

(1b)

对边界振动子,(k<m),有=,= (1c)

其中表示振动子的一阶邻域,表示振动子与振动子间的连接弹簧的归一化弹性系数,归一化是求重心所要求,故定义

,---(2a)

对边界振动子---(2b),对非边界振动子显然有,其中是振动子曲率背景图,的曲率背景值由的一阶邻域的第i个振动子提供的x,y坐标通过对的查表或插值获得。由此便可建立震动子{}的变系数线性方程组如下,其中是nxn的变数的稀疏(Sparse)矩阵

-----------------(3a)

-----------------(3b)

其中和和

以及和其中,表示第k个振动子的x,y坐标

图2

http://sdzdh.org.cn/05lw/44.files/image091.jpg


4 振动子扩散法的计算步骤:

<1>在参数平面上建立振动子的初始集合{,k=1,2,…n}。

<2>由振动子集合{,k=1,2,…n}和通过式(3a),(3b)建立振动子的变系数线性方程组,从中解出振动子集合新的位置{,k=1,2,…n}

<3>计算迭代误差total_err=||-||^2,并按下式更新振动子集合

=+*step------(4)

其中step是迭代步长,可在0.01~0.1范围取值。

<4>反复进行步骤<2>和<3>(见图2b,2c,2d),直至误差小于规定阈值。(见图1b)。

<5>迭代运算结束后,由振动子集合的最终位置,选择离其距离最近的原始三维曲面网格在参数平面上的映射点,取其序号映射回三维曲面,便获得了化简的三维曲面网格(见图3)。



五 实验结果

利用上述方法,对原始人脸14015点网格进行了简化到1400
liuyuanyang 2009-01-12
  • 打赏
  • 举报
回复
走过路过
帮顶一下了
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
关注 接分
asxiao999 2008-03-31
  • 打赏
  • 举报
回复
那是干什么的啊
CAOSHIXIN123 2008-03-25
  • 打赏
  • 举报
回复
路过就来顶一下
CAOSHIXIN123 2008-03-25
  • 打赏
  • 举报
回复
路过就来顶一下
qiucp 2008-03-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 szmuma 的回复:]
一天不写代码就睡不着觉
[/Quote]
szmuma 2008-03-23
  • 打赏
  • 举报
回复
一天不写代码就睡不着觉

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧