Games101 笔记 12 几何(网格处理)、阴影图
三角形细分
网格细分, 提高分辨率
Loop 细分
先细分, 再根据新老顶点的区别来调整位置.
新的顶点, 比如 白色点的位置 = 3/8 * (A + B) + 1/8 * (C + D) 根据相邻2个相邻3角形的4个控制点来确定.
对于旧的顶点.
Catmull-Clark Subdivision (General Mesh)
可以人对一般的mesh, 矩形,三角形都存在的情况下.
奇异点,度不是4, 相邻的4个边不是4, 比如紫色点
一次变换后,
1.非4变形面都消失啦.
2.之前有几个三角形面, 机会增加几个奇异点. 之后奇异点不会再增加.
Loop细分只能用于三角形面
Catmull-Clark 可以用于任意平面.
细分流程:
每一条表都取中点
每一个面都取中点
把这些点连起来
网格简化
Collapsing An Edge 边坍缩
二次误差, 找到某一个点, 可以最小化二次误差, 到各个面的平方和最小.
给每一条边加上误差的分数,
每次取最小, 然后更新其他影响的边, 然后再次取最小 (堆的思路)
网格正则化
不会由特别尖的三角形
Shadow Mapping
关键点: 一个点不在阴影内必须同时被光和相机看到.
从光源看向场景, 记录看到的点的深度.
为什么图看着比较脏
1.float 不好比较, 一般会有一个偏差值
2.shadowMap 的分辨率比较小, 阴影就会有锯齿
上面硬阴影, 下面软阴影
完全看不到光源的地方成为本影.
可以部分看到光源称为半阴影.