网格操作:几何处理

  • 网格细分
  • 网格简化
  • 网格正则化
    在这里插入图片描述
    网格细分(上采样)
    在这里插入图片描述
    网格简化(下采样)
    在这里插入图片描述
    网格正则化(相同的 # 三角形)
    在这里插入图片描述
    调整样本分布以提高质量

细分

Loop细分

三角形网格的常用细分规则
首先,创建更多的三角形(顶点)
第二,调整他们的位置
在这里插入图片描述
把每个三角形分成四个
在这里插入图片描述
根据权重分配新的顶点位置

  • 新 / 旧顶点更新不同
    在这里插入图片描述
    更新
    对于新顶点(白点为例)
    在这里插入图片描述
    对于旧顶点(例如这里的 6 度顶点):(白点)
    在这里插入图片描述

结果:
在这里插入图片描述

Catmull-Clark细分(一般网格)

在这里插入图片描述

奇异点:度不为4
每个细分步骤:

  • 在每个面添加顶点
  • 在每条边缘添加中点
  • 连接所有新顶点
    在这里插入图片描述

一次细分:有多少个奇异点?它们的度是多少?有多少个非四边形面?
非四边形消失
再做下去奇异点数不再增加
在这里插入图片描述
在这里插入图片描述

FYI:Catmull-Clark 顶点更新规则(四网格)
在这里插入图片描述
收敛:整体形状和折痕
在这里插入图片描述
Subdivision in Action (Pixar’s “Geri’s Game”)

网格简化

目标:减少网格元素的数量
同时保持整体造型
在这里插入图片描述
边坍缩
假设我们使用边坍缩来简化网格
在这里插入图片描述

二次误差度量Quadric Error Metrics

  • 简化引入了多少几何误差?
  • 对顶点进行局部平均不是一个好主意
  • 二次误差:新顶点应使其到先前相关三角形平面的平方距离之和(L2 距离)最小化!
    在这里插入图片描述

边坍缩的二次误差

  • 坍缩一个边需要多少代价?
  • 想法:计算边中点,测量二次误差
  • 更好的主意:选择最小化二次误差的点
  • 更多详情:Garland&Heckbert 1997
    通过二次误差简化
    迭代坍缩边
    哪些边?使用二次误差度量分配分数
  • 到曲面的近似距离作为到包含三角形的平面的距离之和
  • 以最小分数迭代折叠边缘
  • 贪婪的算法… 伟大的结果!

问题:其他边跟着变,有影响

二次误差网格简化:
在这里插入图片描述

阴影 Shadows

如何使用光栅化绘制阴影?
阴影映射
在这里插入图片描述
一种图像空间算法

  • 阴影计算期间不了解场景的几何形状
  • 必须处理走样现象
    关键思想:不在阴影中的点必须同时被光线和相机看到
    Pass 1:从光渲染
    来自光源的深度图像
    在这里插入图片描述在这里插入图片描述

Pass 2A:从眼睛渲染
来自眼睛的标准图像(带深度)
在这里插入图片描述
PASS 2B:投射到光
将眼睛视图中的可见点投影回光源
在这里插入图片描述
在这里插入图片描述

可视化阴影映射

  • 一个带有阴影的相当复杂的场景
    在这里插入图片描述

  • 比较有阴影和没有阴影的情况
    在这里插入图片描述

  • 灯光视角下的景象
    在这里插入图片描述

  • 从光线的角度来看,深度buffer
    在这里插入图片描述

  • 比较distance(light, shading point)与阴影映射
    在这里插入图片描述
    绿色表示阴影图上的distance(light, shading point)≈深度
    非绿色是阴影应该出现的地方

  • 带阴影的场景
    在这里插入图片描述

阴影映射

众所周知的渲染技术
早期动画的基本阴影技术(小故事等)以及每一款3D电子游戏
在这里插入图片描述

阴影贴图的问题

  • 硬阴影(仅限点光源)
  • 质量取决于阴影贴图的分辨率(基于图像的技术的一般问题)
  • 涉及相等比较的浮点深度值意味着尺度、偏差、容差等问题
    硬阴影vs软阴影
    在这里插入图片描述
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐