0%

几何学其三

几何学其三

几何学其三

 

几何处理

  • 网格细分
  • 网格精简
  • 网格正规化——delaunay

 

网格细分

相对高度场、凹凸贴图->制造凹凸效果

 

Loop 细分

1.每一个三角形分为四个

pilrBJH.png

2.调整新三角形以及顶点的位置

pilhT4x.png pilhoU1.png

无论是新顶点还是旧顶点,都要看该点与周围点的权重比。

 

Catmull-Clark 细分

多边形面与三角形面的细分

pil4n5q.png

  • 对于不是四边形的面叫Non-quad face
  • 所有度不是4的顶点称为奇异点
  • 每个面中都添加一个点,每条边的中点也都添加一个点,所有新顶点连接所有边上的新顶点:

pil4fRf.png

回答:

  • 有几个非四边形面,就会多出几个奇异点,所以现在一共有2+2 = 4个
  • 新多出来的奇异点的度数与原来所在面的边数相等,如这里就是3度
  • 第一次细分之后所有面都会变成四边形,且往后奇异点数目不再增加

 

如下看:

pil4jzT.md.png

 

网格简化

边坍缩(相邻顶点和为一个顶点)与二次误差度量(检查哪几个顶点要合并)

pil5lFI.png

坍缩之后顶点所在位置与原来的边平面垂直距离之和就是误差,如果能在减少顶点的情况下使这个误差尽量小是最好的。

用例图只是一个2D启发图,实际的情况是这个点与其所相连的所有三角形面片平面

在实际操作过程中,我们想要达成目的大致分为两步

  • 确定收缩哪条边——误差度量
  • 确定收缩过后新顶点的位置——收缩

具体算法可见

【几何处理】基于二次误差测量的网格简化(二)_garland提出的二次误差测度简化算法-CSDN博客

Lod技术:利用二次误差度量的曲面简化(一) - 知乎 (zhihu.com)

关键是贪心算法对于顶点对的选择

 

补充:光栅化过程中的几何阴影

为实时光线追踪做铺垫

 

Shadow Mapping

点不在阴影里==摄像机能看到这个点,而且光源也能看到这个点

从简单的开始,首先处理点光源产生的光——这种光阴影边缘十分锐利,称作硬阴影

做法:

1.从光源角度看场景,记录看到的点,但不着色,只是对图信息做记录

2.摄像机看场景,将点都投影到光源上,这样就能分辨出看到的点是否被光源看到——实际是查看投影过后同一点对于光源的深度,如果深度相同,则说明是实际看到的。

 

硬阴影与软阴影

pi1hvwj.png

软阴影怎么来的?边缘部分看到的是部分光源,所以光照强度是一个过渡态

很遗憾点光源肯定没办法软阴影,因为实现软阴影肯定要保证光源有体积

todo:要怎样实现软阴影呢