留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

顾及角度误差的三维建筑模型边折叠简化算法

李少卿 霍亮 沈涛 朱杰 李品钰 刘宏涛

李少卿, 霍亮, 沈涛, 朱杰, 李品钰, 刘宏涛. 顾及角度误差的三维建筑模型边折叠简化算法[J]. 武汉大学学报 ● 信息科学版, 2021, 46(8): 1209-1215. doi: 10.13203/j.whugis20190269
引用本文: 李少卿, 霍亮, 沈涛, 朱杰, 李品钰, 刘宏涛. 顾及角度误差的三维建筑模型边折叠简化算法[J]. 武汉大学学报 ● 信息科学版, 2021, 46(8): 1209-1215. doi: 10.13203/j.whugis20190269
LI Shaoqing, HUO Liang, SHEN Tao, ZHU Jie, LI Pinyu, LIU Hongtao. A Simplification Algorithm for Edge Collapse of 3D Building Model Considering Angle Error[J]. Geomatics and Information Science of Wuhan University, 2021, 46(8): 1209-1215. doi: 10.13203/j.whugis20190269
Citation: LI Shaoqing, HUO Liang, SHEN Tao, ZHU Jie, LI Pinyu, LIU Hongtao. A Simplification Algorithm for Edge Collapse of 3D Building Model Considering Angle Error[J]. Geomatics and Information Science of Wuhan University, 2021, 46(8): 1209-1215. doi: 10.13203/j.whugis20190269

顾及角度误差的三维建筑模型边折叠简化算法

doi: 10.13203/j.whugis20190269
基金项目: 

北京建筑大学未来城市设计高精尖创新中心重大项目 UDC2018031321

国家重点研发计划 2016YFC0803108

详细信息
    作者简介:

    李少卿,硕士,主要从事自主知识产权地理信息平台开发。906365584@qq.com

    通讯作者: 霍亮,博士,教授. E-mail: huoliang@bucea.edu.cn
  • 中图分类号: P208

A Simplification Algorithm for Edge Collapse of 3D Building Model Considering Angle Error

Funds: 

Major Project of Beijing Advanced Innovation Center for Future Urban Design, Beijing University of Civil Engineering and Architecture UDC2018031321

the National Key Research and Development Program of China 2016YFC0803108

More Information
    Author Bio:

    LI Shaoqing, master, specializes in developing geographic information platform with independent intellectual property rights.906365584@qq.com

    Corresponding author: HUO Liang, PhD, professor. E-mail: huoliang@bucea.edu.cn
图(11) / 表(1)
计量
  • 文章访问数:  735
  • HTML全文浏览量:  262
  • PDF下载量:  48
  • 被引次数: 0
出版历程
  • 收稿日期:  2020-09-14
  • 刊出日期:  2021-08-05

顾及角度误差的三维建筑模型边折叠简化算法

doi: 10.13203/j.whugis20190269
    基金项目:

    北京建筑大学未来城市设计高精尖创新中心重大项目 UDC2018031321

    国家重点研发计划 2016YFC0803108

    作者简介:

    李少卿,硕士,主要从事自主知识产权地理信息平台开发。906365584@qq.com

    通讯作者: 霍亮,博士,教授. E-mail: huoliang@bucea.edu.cn
  • 中图分类号: P208

摘要: 随着城市三维场景应用日益增多, 海量的三维建筑模型数据给计算机的存储、显示、传输和实时渲染带来了巨大压力, 在保证Web 3D展示质量的前提下, 有条件地对三维模型进行适度简化,降低复杂模型计算复杂度的有效途径。针对三维建筑模型简化至低分辨率时模型表面细节特征丢失、网格质量降低导致的视觉退化等问题, 提出了一种顾及角度误差的三维建筑网格模型边折叠简化算法。该算法在选取收缩边时加入了顶点约束条件, 并对生成新面片的旋转方向进行了角度误差控制, 提高了模型特征区域顶点的误差度量。研究结果表明, 该算法在保留场景中建筑模型的几何特征的前提下, 有效地减少了系统绘制的图元数目, 适用于渲染大规模三维城市场景。

English Abstract

李少卿, 霍亮, 沈涛, 朱杰, 李品钰, 刘宏涛. 顾及角度误差的三维建筑模型边折叠简化算法[J]. 武汉大学学报 ● 信息科学版, 2021, 46(8): 1209-1215. doi: 10.13203/j.whugis20190269
引用本文: 李少卿, 霍亮, 沈涛, 朱杰, 李品钰, 刘宏涛. 顾及角度误差的三维建筑模型边折叠简化算法[J]. 武汉大学学报 ● 信息科学版, 2021, 46(8): 1209-1215. doi: 10.13203/j.whugis20190269
LI Shaoqing, HUO Liang, SHEN Tao, ZHU Jie, LI Pinyu, LIU Hongtao. A Simplification Algorithm for Edge Collapse of 3D Building Model Considering Angle Error[J]. Geomatics and Information Science of Wuhan University, 2021, 46(8): 1209-1215. doi: 10.13203/j.whugis20190269
Citation: LI Shaoqing, HUO Liang, SHEN Tao, ZHU Jie, LI Pinyu, LIU Hongtao. A Simplification Algorithm for Edge Collapse of 3D Building Model Considering Angle Error[J]. Geomatics and Information Science of Wuhan University, 2021, 46(8): 1209-1215. doi: 10.13203/j.whugis20190269
  • 三维建筑模型是虚拟三维城市场景不可或缺的要素。随着三维激光扫描技术的日趋成熟和三维数据采集设备的升级换代,人们获取到的三维数字化模型的数据密度日益增长,但海量的高密度数据通过网络传输渲染大规模三维场景的效果还有待提高。

    大规模三维场景的实时绘制要求渲染出高质量的图像,还要满足用户实时交互的操作要求。为了获取适合多种场景使用的细节模型,需要对高分辨率网格模型进行不同程度简化操作。层次细节(level of detail,LOD)技术是降低三维数据复杂性的有效方法。如何针对模型不同的复杂性,定量优化LOD模型的细节水平,自适应地保留重要特征并减少不必要的冗余,以符合人们对其认知过程的层次性[1],是Web 3D展示的重要技术内容。

    建立LOD模型面临网格简化的问题。网格简化方法即在保留模型的重要几何和视觉特征的前提下,精简次要细节,以降低模型数据量。目前,学者们基于不同的算法思想提出了多种网格简化方法。常见的简化机制[2-5]包括顶点聚类、增量式简化、采样和自适应细分,简化算法基本都采用了这4种机制的某种结合或者是变形[6]。边折叠算法属于增量式简化中的一种,其实质是顶点删除,该算法具有质量好、健壮性好,可以进行大幅度简化,生成不同精度的模型,易于进行不同层级LOD之间的无缝切换等优良特性。

    Hoppe等[7]使用边折叠方法来简化网格模型,该算法通过优化一个全局的能量方程来确定边折叠的次序和新顶点的位置,通过逐次加入细节生成不同复杂度的简化模型,该算法生成的结果建立的模型质量好,但其计算过程是非线性的,实现和使用困难。Garland等[8]在文献[7]算法的基础上提出了二次误差度量(quadric error metrics,QEM)边折叠算法,该算法在误差度量中以新顶点到一阶邻域三角形(first order triangle,FOT)的距离平方和作为误差,计算过程简单,但不能很好地保持模型表面的细部特征。Ozaki等[9]基于二次误差算法提出了一种针对复杂网格模型的简化算法,该算法通过机器学习对点云数据进行聚类,以获取结果模型的细节采样,其简化效率较高,适用于大数据量的三维复杂格网模型,但易丢失模型尖锐区域的细节特征。Dassi等[10]在折叠代价中引入原始模型与结果模型的位移变化,提高网格模型的整体简化效果,但该算法对模型局部细节特征的保留效果有限。段黎明等[11]提出了网格细分方法,将体积误差和三角形平展度加入到了误差测度中,但其对边界三角形简化效果有限。

    本文在上述研究的基础上,提出了一种关于角度误差的二次误差测度网格简化算法。算法预先对模型进行顶点约束处理,减少需要折叠操作的边的数量,以提高计算性能;在二次误差测度算法的基础上,引入顶点曲率和角度误差加权,改变折叠边的简化次序,以更加准确地反映模型表面的细部特征。

    • 边折叠简化操作中以一条边(VjVk)作为被删除的基本几何元素(文中所有顶点均视为向量点,线和面视为点群),边(VjVk)的顶点VjVk折叠为新顶点Vbar,所有与被删除的两个顶点相连的点都与新顶点Vbar相连,对所有邻接三角形进行相应的调整,使模型保持三角网格结构[12-13],如图 1所示。

      图  1  边折叠操作

      Figure 1.  Edge Collapse Operatpor

    • 基于点到面的距离计算边权值的QEM简化算法计算简单,生成的网格模型速度快,简化效果较好,后续大量算法的改进都是建立在该算法的基础上。本文对该算法进行改进,并对改进后算法与QEM算法对模型的简化效果进行比较。

      QEM算法以顶点到其一阶邻域三角形面片的距离作为边折叠简化的误差测度。该算法为模型中所有顶点分配一个误差测度矩阵,由该误差测度矩阵解算边折叠后产生的新顶点的误差矩阵和收缩代价,根据收缩代价的大小确定边的简化次序,通过迭代折叠模型中收缩代价最小的边,达到简化要求[14-16]

      具体算法如下: 定义模型中所有顶点的初始误差矩阵为Q,定义顶点Vi=[x y z 1]T的顶点误差ΔVi为顶点Vi到其所有一阶邻域三角面片距离的平方和,表达式为:

      $$ \begin{array}{l}\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{\Delta }{\mathit{\boldsymbol{{V}}}}_{i}=\mathrm{\Delta }\left({\left[x\mathrm{ }y\mathrm{ }z\mathrm{ }1\right]}^{\mathrm{T}}\right)=\sum\limits_{\mathit{p}\in \mathit{P}\left({\mathit{V}}_{i}\right)}({\mathit{\boldsymbol{{p}}}}^{\mathrm{T}}{\mathit{\boldsymbol{{V}}}}_{i}{)}^{2}=\\ \mathrm{ }\mathrm{ }\mathrm{ }\sum\limits_{\mathit{p}\in \mathit{P}\left({\mathit{V}}_{i}\right)}\left({\mathit{\boldsymbol{{V}}}}_{{}_{i}}^{\mathrm{T}}\mathit{\boldsymbol{{p}}}\right)\cdot \left({\mathit{\boldsymbol{{p}}}}^{\mathrm{T}}{\mathit{\boldsymbol{{V}}}}_{i}\right)=\sum\limits_{\mathit{p}\in \mathit{P}\left({\mathit{V}}_{i}\right)}{\mathit{\boldsymbol{{V}}}}_{{}_{i}}^{\mathrm{T}}\left(\mathit{\boldsymbol{{p}}}{\mathit{\boldsymbol{{p}}}}^{\mathrm{T}}\right){\mathit{\boldsymbol{{V}}}}_{i}=\\ \mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }{\mathit{\boldsymbol{{V}}}}_{{}_{i}}^{\mathrm{T}}\left(\sum\limits_{\mathit{p}\in \mathit{P}\left({\mathit{V}}_{i}\right)}{\mathit{\boldsymbol{{K}}}}_{\mathit{p}}\right){\mathit{\boldsymbol{{V}}}}_{i}\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\left(1\right)\end{array} $$ (1)

      式中,p=[a b c d]T为平面方程ax+by+cz+d=0的系数,且a2+b2+c2=1;$ \mathit{{\boldsymbol{Q}}}=\sum\limits_{\mathit{p}\in \mathit{P}\left({\mathit{V}}_{i}\right)}{\mathit{{\boldsymbol{K}}}}_{\mathit{p}} $为4×4的二次基本误差对称矩阵。

      原始网格模型顶点的初始误差ΔVi均为0。定义一条收缩边(VjVk),进行折叠操作后变为新顶点Vbar,新顶点的误差矩阵为Qbar=Qj+Qk,其收缩代价为ΔVbar=$ {\mathit{{\boldsymbol{V}}}}_{{}_{\mathrm{b}\mathrm{a}\mathrm{r}}}^{\mathrm{T}} $QbarVbar。展开得到折叠误差的二次项,表达式为:

      $$ \begin{array}{l}\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{\Delta }\left({\mathit{{\boldsymbol{V}}}}_{\mathrm{b}\mathrm{a}\mathrm{r}}\right)={q}_{11}{x}^{2}+2{q}_{12}xy+2{q}_{12}xz+\\ \mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }2{q}_{14}+{q}_{22}{y}^{2}+2{q}_{22}{z}^{2}+2{q}_{24}z+{q}_{44}\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\mathrm{ }\left(2\right)\end{array} $$ (2)

      收缩代价的大小取决于新顶点Vbar的位置,新顶点与边(VjVk)所关联的三角形面片距离越大,收缩代价也越大。新顶点Vbar存在一个最佳位置使ΔVbar达到局部最小值,对式(2)中的xyz分别求偏导数,并令其为0,等价于求解式(3):

      $$ {\mathit{{\boldsymbol{V}}}}_{\mathrm{b}\mathrm{a}\mathrm{r}}={\left[\begin{array}{cccc}{q}_{11}& {q}_{12}& {q}_{13}& {q}_{14}\\ {q}_{12}& {q}_{22}& {q}_{23}& {q}_{24}\\ {q}_{13}& {q}_{23}& {q}_{33}& {q}_{34}\\ 0& 0& 0& 1\end{array}\right]}^{-1}\times \left[\begin{array}{l}0\\ 0\\ 0\\ 1\end{array}\right] $$ (3)

      若系数矩阵可逆,则通过式(3)可求得Vbar的位置;否则,在边(VjVk)的中点和两个端点中选择使收缩代价ΔVbar最小的点作为新顶点的位置。

    • 边的折叠次序和边折叠后新顶点的位置影响QEM算法简化结果。为了更好地指导边的折叠次序,将顶点的曲率引入二次误差测度中。这里的曲率指近似曲率,由于模型表面是二阶不可微的曲面,模型的表面可视为近似光滑。顶点曲率反映模型特征区域的细节特征的明显程度。一般情况下,在三维模型的平坦区域,曲率较小;在三维模型折痕、拐点等特征区域,曲率较大[17]。在确定边折叠的顺序时,降低顶点曲率大的边的优先级,可以更好地保留模型的几何特征。顶点曲率定义为任取三角形面片T,将其3个顶点分别记作ViVjVk,则三角形面片T的单位法向量$ {\mathit{n}}_{i} $可表示为:

      $$ {\mathit{{\boldsymbol{n}}}}_{i}=\frac{\left({\mathit{{\boldsymbol{V}}}}_{j}-{\mathit{{\boldsymbol{V}}}}_{i}\right)\times \left({\mathit{{\boldsymbol{V}}}}_{k}-{\mathit{{\boldsymbol{V}}}}_{j}\right)}{‖\left({\mathit{{\boldsymbol{V}}}}_{j}-{\mathit{{\boldsymbol{V}}}}_{i}\right)\times \left({\mathit{{\boldsymbol{V}}}}_{k}-{\mathit{{\boldsymbol{V}}}}_{j}\right)‖} $$ (4)

      对顶点Vj一阶邻域三角形面片的法向量面积Si加权计算,可解算出Vj的顶点法向量$ {\mathit{{\boldsymbol{n}}}}_{{\mathit{V}}_{i}} $为:

      $$ {\mathit{{\boldsymbol{n}}}}_{{\mathit{V}}_{i}}=\frac{\sum\limits_{i=1}^{k}{S}_{i}{\mathit{{\boldsymbol{n}}}}_{i}}{‖\sum\limits_{i=1}^{k}{S}_{i}{\mathit{{\boldsymbol{n}}}}_{i}‖} $$ (5)

      得到顶点Vj的法线向量后,可解算出该顶点的曲率$ {C}_{{\mathit{V}}_{i}} $,即

      $$ {C}_{{\mathit{V}}_{i}}=\frac{\sum\limits_{k}\alpha \left({\mathit{{\boldsymbol{n}}}}_{{\mathit{V}}_{i}}, {\mathit{{\boldsymbol{n}}}}_{i}\right)}{k} $$ (6)

      式中,α($ {\mathit{{\boldsymbol{n}}}}_{{\mathit{V}}_{i}} $,$ {\mathit{{\boldsymbol{n}}}}_{i} $)是顶点法向量与k个相关三角形面片的夹角。

    • 使用上述算法在简化某欧式建筑模型的过程中发现的问题如图 2所示,对某一条边折叠后其一阶邻域三角形的形状和位置会发生变化,新生成的三角形面片由于旋转角度过大,其结果模型出现了较大的视觉退化问题。为了解决上述问题,引入了角度误差控制,如图 3所示。

      图  2  欧式建筑模型简化

      Figure 2.  Simplification of European Style Building Model

      图  3  三角形面片翻转

      Figure 3.  Rotation of Triangular Patch

      图 3中,边Li折叠为点Vi0时,Li的一阶邻域△Vi8Vi2Vi3、△Vi2Vi3Vi4、△Vi1Vi4Vi5、△‍Vi1Vi5Vi6、△Vi1Vi6Vi7、△Vi2Vi7Vi8变化为△‍Vi8Vi0Vi3、△‍Vi0Vi3Vi4、△Vi0Vi4Vi5、△Vi0Vi5Vi6、△Vi0Vi6Vi7、△Vi0Vi7Vi8。定义角度误差为边Li折叠后其一阶邻域三角形的法向量所发生的最大角度变化值,记作αmax,表达式为:

      $$ {\alpha }_{\mathrm{m}\mathrm{a}\mathrm{x}}=\mathrm{m}\mathrm{a}\mathrm{x}\left\{\begin{array}{l}\mathrm{a}\mathrm{r}\mathrm{c}\mathrm{c}\mathrm{o}\mathrm{s}\left({\mathit{{\boldsymbol{n}}}}_{i0}\times {\mathit{{\boldsymbol{n}}}}_{i0}^{\text{'}}\right)\\ \mathrm{a}\mathrm{r}\mathrm{c}\mathrm{c}\mathrm{o}\mathrm{s}\left({\mathit{{\boldsymbol{n}}}}_{i1}\times {\mathit{{\boldsymbol{n}}}}_{i1}^{\text{'}}\right)\\ ⋮\\ \mathrm{a}\mathrm{r}\mathrm{c}\mathrm{c}\mathrm{o}\mathrm{s}\left({\mathit{{\boldsymbol{n}}}}_{in}\times {\mathit{{\boldsymbol{n}}}}_{in}^{\text{'}}\right)\end{array}\right\} $$ (7)

      式中,ni0ni1nin表示边Li折叠前其一阶邻域三角形的单位法向量;n$ {}_{i0}^{\text{'}} $n$ {}_{i1}^{\text{'}} $n$ {}_{in}^{\text{'}} $表示边Li折叠后其一阶邻域三角形的单位法向量。对角度误差进行控制可避免模型简化时出现三角形的旋转角度过大甚至翻转的现象。

    • 在计算边折叠代价时,把顶点曲率加权添加到误差代价中,将误差代价ΔV乘以顶点的曲率,然后除以该顶点的角度误差,把得到的新代价作为边折叠的最后代价:

      $$ \Delta \boldsymbol{V} = \left( {\frac{{{\boldsymbol{V}^{\rm{T}}}{C_{{V_n}\sum\limits_{p \in P} {{\boldsymbol{K}_p}} }}}}{{{\alpha _{{\rm{max}}}}}}} \right)\boldsymbol{V} = {\boldsymbol{V}^{\rm{T}}}\boldsymbol{QV} $$ (8)

      式中,V=[x y z 1]T;$ \mathit{{\boldsymbol{Q}}}=\frac{{C}_{\mathit{V}}\sum\limits_{\mathit{p}\in \mathit{P}}{\mathit{K}}_{\mathit{p}}}{{\alpha }_{\mathrm{m}\mathrm{a}\mathrm{x}}} $为新的顶点二次误差矩阵。

    • 人们观察物体时,对棱角、棱边、轮廓等关键细节较敏感,对平坦区域的感知力较弱,顶点处的起伏变化越大,去除该点后对网格模型的影响就越大,即顶点的重要度越大。在模型同等的简化率时,研究者就要考虑删除顶点重要度低的点,保留顶点重要度高的点[18]

      对网格模型的顶点按其几何重要程度分类: (1)完全被一圈三角形包围,并且每个使用这个顶点的边都只被两个三角形使用的顶点称为简单顶点。(2)两个邻近三角形的二面角大于指定的特征角,则存在一个特征边;一个简单顶点被两个特征边使用,称这个顶点为内棱顶点。(3)若被3个或更多的特征边使用称为角顶点。(4)在网格边界处的顶点称为边界顶点。

      按其对顶点的分类,除了复杂顶点(以其为端点的边没有被两个三角形所共享,或者该顶点被一个没有在三角形环中的三角形使用)不能被删除外,其余顶点都可以成为候选删除顶点。在模型预处理过程中,对模型加入顶点约束,将包含角顶点、边界顶点的边从作为待删除的边对象中剔除,以提高模型特征区域的误差度量,更好地保留模型的几何特征。

    • 改进算法流程如图 4所示。

      图  4  改进算法流程

      Figure 4.  Process of the Improved Algorithm

      根据三维模型不同区域几何特征度不同这一特点,对模型进行预处理,将其顶点按几何重要度分类,只删除重要度低的顶点。考虑到模型不同区域的几何特征的明显程度不同,简化算子中引入顶点曲率加权及三角形法向约束因子,以控制生成新面片的旋转方向。重新设计迭代过程,以平衡简化效果和时间复杂度。

    • 本研究在2.80 GHz Intel(R) 16 GB内存的硬件环境下,以Microsoft Visual C++和MeshLab为编程平台实现该算法,并使用复杂建筑模型进行了如下研究,以验证算法效果: (1)比较QEM算法与本文算法的简化结果,以验证本文算法的性能;(2)以有顶点曲率无角度误差控制、无顶点曲率有角度误差控制的两组算法进行对比实验,逐步分析简化算子的作用;(3)大规模城市场景渲染效果。模拟实际应用场景,检验本文算法进行大规模城市场景渲染时的效果。

    • 图 5(a)为某别墅的原始实验数据(大小为91 279个面片),图 5(b)为某高层建筑的原始数据(大小为304 891个面片)。

      图  5  原始模型

      Figure 5.  Original Models

      图 6~图 9为某高层建筑模型和别墅模型均使用QEM算法和本文算法进行简化的结果,得到的统计表如表 1所示。对比图 6图 7的简化结果及图 8图 9的简化结果可以看出,本文算法有效地减少了网格模型数据量,其结果模型在窗户、门、栏杆等特征区域保留了更多的细节特征,同等简化程度下,相似度高于QEM算法,视觉效果上更加接近原始模型。

      图  6  用QEM方法简化的别墅建筑模型平面线图

      Figure 6.  Simplification of Villa Building Model by QEM

      图  7  用本文算法简化的别墅建筑模型平面线图

      Figure 7.  Simplification of Villa Building Model by the Proposed Algorithm

      图  8  用QEM方法简化的高层建筑模型阴影图

      Figure 8.  Simplification of High-Rise Building Model by QEM

      图  9  用本文算法简化的高层建筑模型阴影图

      Figure 9.  Simplification of High-Rise Building Model by the Proposed Algorithm

      表 1  别墅模型简化统计

      Table 1.  Simplification Statistics of Villa Building Model

      对比项 QEM算法 本文算法
      图 6(a) 图 6(b) 图 6(c) 图 8(a) 图 8(b) 图 8(c) 图 7(a) 图 7(b) 图 7(c) 图 9(a) 图 9(b) 图 9(c)
      面片数目 68 459 45 640 22 820 228 668 152 445 76 223 68 459 45 640 22 820 228 668 152 445 76 223
      简化程度/% 25 50 75 25 50 75 25 50 75 25 50 75
    • 本研究检验顶点曲率和角度误差控制的作用,修改算法分布体现顶点曲率和角度误差控制的改进。以修改过的两组算法和本文算法对两组模型进行简化,逐步比较其简化结果。

      本研究保留顶点曲率算子,不考虑角度误差控制,对别墅模型进行简化,简化结果如图 10所示。对算法保留角度误差控制,不考虑顶点曲率,对高层建筑模型进行简化,简化结果如图 11所示。

      图  10  不考虑顶点曲率的简化结果

      Figure 10.  Simplified Results Without Considering Vertex Curvature

      图  11  不考虑角度误差的简化结果

      Figure 11.  Simplified Results Without Considering Angle Error

      图 10可以看出,无顶点曲率算法简化至75%时,模型的栏杆等部位开始发生细节丢失现象;在简化至25%时,视觉退化现象就比较严重了。说明不考虑顶点曲率算法结果模型的网格密度趋于平均分布,虽整体较为平滑,但对模型特征区域的细节进行保留的效果有限。图 7中考虑顶点曲率的算法在模型特征较少的区域(如墙面等)进行了更大程度的简化,而在门框、栏杆等特征区域保留的细节较无顶点曲率算法更丰富。

      对比图 9图 11可知,考虑和不考虑角度误差控制的两算法均对原始模型的细节保留程度较高,但其保留细节的视觉效果有所差异。无顶点角度误差算子的简化算法在简化至低分辨率时,其构成玻璃、墙面的部分三角面片发生了较大角度的翻转,导致了较大的视觉退化现象。从简化机理分析,考虑角度误差的算法的简化结果质量更好,是因为角度误差限制了三角面片的翻转程度,使结果模型更好地维持其视觉特征。

    • 本文基于QEM边折叠简化算法,提出了一种针对三维建筑模型的网格简化算法,在模型预处理过程中加入了顶点约束,并在误差测度中引入顶点曲率和三角形法向约束因子,对生成新面片的旋转方向进行角度误差控制,减少了狭长三角形的生成,使模型可以更好地保持其几何特征。该算法在保留模型几何特征和视觉特征的前提下,减少了三维模型网格的密度,用少量的三角面片保留了建筑模型的大部分几何特征,输出了质量较高的简化模型。

参考文献 (18)

目录

    /

    返回文章
    返回