网格处理

  • 1.网格
  • 2.网格细分(Mesh subdivision)
    • 2.1Loop细分法(Loop Subdivision)
    • 2.2Catmull-Clark细分(Catmull-Clark Subdivision)
  • 3.网格简化(Mesh Simplification)
    • 3.1边坍缩(Collapsing An Edge)

1.网格

2.网格细分(Mesh subdivision)

网格细分是指将一个模型的面合理的分成更多小的面,从而提升模型精度,提高渲染效果,让物体更加趋近于真实世界。

2.1Loop细分法(Loop Subdivision)

将每个三角形从各边中点划分成四个三角形,不断重复步骤,最终得到一个更加圆润光滑的物体:

具体细分步骤:
Step1:细分(连接各边中点,将一个三角形变成四个小三角形)

Step2:调整新顶点

一般情况下,新顶点(图中的白点)会被两个三角形共享,设新顶点所在边的顶点为A,B,不在的为C,D;
白点现在的位置取A、B的3/8加上C、D的1/8位置(加权平均),因此一般认为在该点所在共享边上的点对该点的影响较大,而其它的两个顶点影响较小;
Step3:调整旧顶点

旧顶点 (图中白点)以自身原来的位置和周围其它点的位置来决定自己的新位置,其中 n n n是本身的度(度即边的数量,如下图中白点度为6), u u u是某个和度相关的数(规定如果 n = 3 n=3 n=3,那么 u = 3 / 16 u=3/16 u=3/16;否则, u = 3 / ( 8 n ) u=3/(8n) u=3/(8n));
旧顶点的新位置: ( 1 − n ∗ u ) ∗ 原 来 的 位 置 + u ∗ 相 邻 点 的 位 置 平 均 (1-n*u)*原来的位置+u*相邻点的位置平均 (1−n∗u)∗原来的位置+u∗相邻点的位置平均

2.2Catmull-Clark细分(Catmull-Clark Subdivision)

Loop细分只是针对三角形构成的图形,而如果遇到了其它形状组成的图形时,可以用Catmull-Clark细分法。
具体细分步骤:
Step1:在非四边形面中添加顶点,在非四边形面的边上添加中点

Step2:连接所有新顶点

此时多出来两个度为3的奇异点(中间紫色圆点),同时所有的非四边形面都消失了。
第一次细分后:

  • 有几个非四边形面,就会多出几个奇异点,现在一共有2+2=4个;
  • 新多出来的奇异点的度数与原来非四边形的边数相等;
  • 若第一次细分后,没有出现新的非四边形面,那么就不会出现新的奇异点。

之后再做细分:(不会增加奇异点,非四边形面数量则始终为0

点的更新方式:

Loop细分和Catmull-Clark细分对比:

3.网格简化(Mesh Simplification)

网格简化是指将一个模型的面合理的减少,从而降低模型精度。

3.1边坍缩(Collapsing An Edge)

简单来说就是将一条边的两个顶点合成为一个顶点;

但是,如果坍缩一条边,那么与之相连的变也会发生变化,这就会导致模型原本的样子发生变化。
解决方法:引入 二次误差度量(Quadric Error Metrics)
即需要寻找到一个点,使这个点到与他邻近的面的距离平方和最小,则该点就是坍缩到的点:

具体坍缩步骤:

上述即为贪心算法(用局部最小,而不是全局最小)
以上操作为动态操作,涉及到优先级,因此使用的是优先级队列或堆的数据结构。
最终边坍缩效果:

计算机图形学笔记十:Geometry3(网格处理)相关推荐

  1. 计算机图形学笔记(一)渲染管线概述

    计算机图形学笔记(一)渲染管线概述 写在前面:因为之前有学习过图形学,博文是对过去知识的拾遗和对学习过程中的总结记录,所以在内容组织上可能不符合逻辑,某些比较熟悉的内容不会体现或简述:在整理资料的时候 ...

  2. 计算机图形学笔记(观测变换、模型变换、视图变换、投影变换、视口变换)

    计算机图形学笔记(观测变换.模型变换.视图变换.投影变换.视口变换) 目录 计算机图形学笔记(观测变换.模型变换.视图变换.投影变换.视口变换) 一.简介 1.模型变换(Model transform ...

  3. 计算机图形学流体仿真mac网格,正交网格下不可压缩流体的图形学模拟

    摘要: 本文主要讨论了正交网格下不可压缩流体的图形学模拟.基于物理的动画模拟出像水,烟和火这样的流体现象在视觉效果上越来越重要,而且在实时游戏中也开始产生影响. 本研究主要内容包括:第一章阐述了用于描 ...

  4. 计算机图形学流体仿真mac网格,数据驱动的快速网格法流体模拟

    摘要: 基于物理的流体模拟是计算机图形学中的重要研究方向之一,模拟过程中需要求解非线性偏微分方程组:Navier-Stokes方程组(N-S方程组).拉格朗日法与欧拉方法这两种数值解法被分别用于N-S ...

  5. 计算机图形学笔记 (第一周)

    1.计算机图形学:研究通过计算机将物体表示为图形并显示的一门学科. 表示: 将物体表示为图形:造型/建模 显示:将表示后的图形显示出来: 渲染/绘制 2.文字/文本:图形/图像:  图形本质也是一种语 ...

  6. 计算机图形学流体仿真mac网格,用于图形学的流体仿真20教程.docx

    第I部分 基础流体方程流体无所不在,从我们呼吸的空气到占据整个地球三分之二的海洋,就是它,形成了我们这个星球上那些最美丽最震撼景象:从溅起的水花,到冲天的火焰,到缭绕的烟雾,流体仿真已经成为了计算机图 ...

  7. 计算机图形学笔记十一:Ray Tracing1(阴影,光线追踪基本原理)

    阴影,光线追踪基本原理 1.阴影贴图(Shadow Mapping) 1.1产生步骤 1.2存在问题 2.光线追踪( Ray Tracing) 2.1为什么需要光线追踪? 2.2基础光线追踪算法(Ba ...

  8. 高级计算机图形学笔记

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-03ryXxuU-1576743462382)(G:%5Cmd_files%5Cphoto_file%5Cimage-20 ...

  9. 计算机图形学(十二):真实感图形(光照模型、材质模型)

    目录 光照模型 第一节 漫反射及具体光源的照明 1. 环境光 2. 漫反射 3. 镜面反射与Phong模型 4. 光的衰减 第二节 多边形网的明暗处理 1. 常数明暗法 2. Gouraud方法 3 ...

最新文章

  1. android java.lang.IllegalArgumentException: Comparison method violates its general contract! 问题
  2. SD-WAN的出现对MPLS意味着什么?
  3. 每秒处理10万订单乐视集团支付架构--转
  4. iOS QQ分享图片无反应问题
  5. 最近工程师怎么都在写公众号?这玩意到底能赚多少钱?
  6. boost::coroutine模块实现不对称echo的测试程序
  7. 计算机信息系统安全保护条例最新,计算机信息系统安全保护条例.doc
  8. fraction在java_Fraction.java
  9. Java中Math3 各种随机数生成器的使用(Random Generator)
  10. 湖北二级计算机考试时间2015年,2015上半年湖北计算机等级考试时间
  11. hadoop完全分布式集群下安装sqoop
  12. 动手学 《动手学深度学习》(安装pytorch)
  13. c# tcpclient 连接超时的设置
  14. 关于window10修改默认浏览器闪退的情况
  15. 音创linux版e100加歌,麦得好ktv点歌机音创E100-A51,2.42新版本U盘加歌方法
  16. 深度整形外科:使用手绘草图进行鲁棒且可控的图像编辑
  17. wp手机开发之获取汉字拼音的首字母
  18. php 删除特殊符号,利用PHP删除特殊符号
  19. 扇贝编程python无法退款_扇贝编程python学习笔记-基础篇1
  20. sync.Map详解

热门文章

  1. GoLang之Go中的map如何实现顺序读取
  2. opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制
  3. 遗传算法:交叉操作 Inver-over 算子
  4. 2023轻薄投影仪选哪款?极米Z6X Pro成年轻人租房首选投影
  5. Windows 上6款卸载软件值得推荐
  6. 中医证型关联规则----apriori算法挖掘及plotly数据可视化
  7. 面向对象和面向过程有什么区别
  8. SVN 报错:does not support the HTTP/DAV protocol
  9. 【软考】【系统架构设计师】最小生成树知识点
  10. vue子路由跳转回父级,刷新部分父页面接口,push跳转