Games101 笔记 12 几何(网格处理)、阴影图

三角形细分

网格细分, 提高分辨率

Games101 笔记 12 几何(网格处理)、阴影图

Loop 细分

先细分, 再根据新老顶点的区别来调整位置.

Games101 笔记 12 几何(网格处理)、阴影图

新的顶点, 比如 白色点的位置  = 3/8 * (A + B) + 1/8 * (C + D) 根据相邻2个相邻3角形的4个控制点来确定.

Games101 笔记 12 几何(网格处理)、阴影图

对于旧的顶点.

Games101 笔记 12 几何(网格处理)、阴影图

Catmull-Clark Subdivision (General Mesh)
可以人对一般的mesh, 矩形,三角形都存在的情况下. 
奇异点,度不是4, 相邻的4个边不是4,  比如紫色点

Games101 笔记 12 几何(网格处理)、阴影图

一次变换后,

1.非4变形面都消失啦.

2.之前有几个三角形面, 机会增加几个奇异点. 之后奇异点不会再增加.

Games101 笔记 12 几何(网格处理)、阴影图

Games101 笔记 12 几何(网格处理)、阴影图

Games101 笔记 12 几何(网格处理)、阴影图

Games101 笔记 12 几何(网格处理)、阴影图

Loop细分只能用于三角形面

Catmull-Clark 可以用于任意平面.

Games101 笔记 12 几何(网格处理)、阴影图

细分流程:
   每一条表都取中点
   每一个面都取中点
   把这些点连起来
 
 
 

网格简化 

Games101 笔记 12 几何(网格处理)、阴影图

Games101 笔记 12 几何(网格处理)、阴影图

Collapsing An Edge 边坍缩

Games101 笔记 12 几何(网格处理)、阴影图

 

二次误差, 找到某一个点, 可以最小化二次误差,  到各个面的平方和最小.

Games101 笔记 12 几何(网格处理)、阴影图

给每一条边加上误差的分数, 

每次取最小, 然后更新其他影响的边, 然后再次取最小 (堆的思路)

 

Games101 笔记 12 几何(网格处理)、阴影图

Games101 笔记 12 几何(网格处理)、阴影图

网格正则化

不会由特别尖的三角形

Games101 笔记 12 几何(网格处理)、阴影图

Shadow Mapping

关键点: 一个点不在阴影内必须同时被光和相机看到.

从光源看向场景, 记录看到的点的深度.

Games101 笔记 12 几何(网格处理)、阴影图

Games101 笔记 12 几何(网格处理)、阴影图

Games101 笔记 12 几何(网格处理)、阴影图

Games101 笔记 12 几何(网格处理)、阴影图

Games101 笔记 12 几何(网格处理)、阴影图

为什么图看着比较脏

1.float 不好比较, 一般会有一个偏差值

2.shadowMap 的分辨率比较小,  阴影就会有锯齿

Games101 笔记 12 几何(网格处理)、阴影图

Games101 笔记 12 几何(网格处理)、阴影图

上面硬阴影, 下面软阴影

完全看不到光源的地方成为本影.

可以部分看到光源称为半阴影.

Games101 笔记 12 几何(网格处理)、阴影图