网格简化

原文链接
网格简化可以减少网格的三角片数量,同时尽量保持住网格的几何信息或其它属性(如纹理)。它是网格处理里的经典问题,广泛应用于各个领域:

  • 游戏领域:游戏场景里的网格都很简单,适合快速渲染;简单的模型也适合快速的物理碰撞检测
  • 多分辨率加载模型(Level of Detail)
  • 三维模型的网页展示
    meshsimplification
    通常情况下,我们讲的网格简化,需要保持住网格的拓扑结构,它区别于下图的Wrap操作。同时,它也区别于Remesh,虽然都能达到网格简化的目的。它一般经过一系列局部的简化操作(比如顶点删除,边塌陷),来达到网格简化目的。

wrap_example_0

顶点简化

基于顶点的简化分为两步:

  • 移除顶点和顶点的邻接三角片,产生一个洞
  • 把洞补上
    VertexRemoval

边简化

基于边的简化分为两步:

  • 移除边以及边相邻的三角片
  • 把边的两个端点合并为一个顶点
    EdgeCollapse

简化误差度量

基于局部操作的误差度量:每次误差计算,都是与上次迭代的局部面片做比较。它的特点:

  • 操作简单,计算速度快
  • 局部迭代有累计误差

基于全局操作的误差度量:每次误差计算,都是与原始网格做比较。它的特点:

  • 计算速度相对较慢
  • 对整体误差的控制优于局部操作

带纹理坐标的网格简化

单纯的网格简化和带纹理坐标的网格简化是有区别的,前者的简化的对象是下面左图所示的网格,后者的简化对象是UV域的网格(下面右图所示)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sgGoJnGh-1571489879889)(http://geometryhub.net/images/texture_uvunfold_origin.png)]
带纹理坐标的网格简化,不仅要尽量保持住网格的几何特征,而且还要保持住UV域网格的边界几何。特别是后者,如果UV网格的边界几何变化比较大,会使得网格纹理贴图在UV边界处的颜色割缝比较明显。在UV域边界几何比较复杂的时候,UV边界处的顶点数目不可能简化太多。当网格简化数目太多的时候,绝大部分的简化点发生在UV网格的内部顶点,这也会导致原始网格的几何简化的比较厉害,并且在UV边界处的几何扭曲会比较大。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bMD3dBk6-1571489849169)(http://geometryhub.net/images/texture_uvunfold_result.png)]
提升带纹理坐标的网格简化的质量,可以考虑减小UV网格边界处的几何复杂度。比如光滑UV网格的边界(如下左图所示),或者减少边界的长度(如下右图所示)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yW46S1WQ-1571489864579)(http://geometryhub.net/images/texture_uvunfold_enhancement.png)]
有兴趣的读者,欢迎参考视频版本

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值