Games101课程笔记_lecture12_几何(网格细分)+Shodow map

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

1 网格细分mesh subdivision

在这里插入图片描述

1 概念

引入跟多的三角形,

细分两部操作:分出更多的三角形;形状发生变化
在这里插入图片描述

2 loop subdivison

不是循环细分,与循环没有任何关系,发明者是loop。
在这里插入图片描述
新的顶点的操作:对周围的顶点加权平均得到白点
在这里插入图片描述
如何更新旧的顶点:
自己本身就是旧的顶点,一部分保留自己的位置,一部分愿意信息周围的顶点的平均。通过加权的方式来得到
看这个旧的顶点连接的周围的三角形的个数,少就是与自己关系大,少了旧得到自己的关系小。
在这里插入图片描述
可以看到loop细分,
先细分,再调整
在这里插入图片描述

3 catmull-Clark Subdivison细分

网格有三角形,四边形,loop细分就不可以了。而这个细分是可以做四边行的。
奇异点:度不为4的点。
在这里插入图片描述
步骤如下:

在这里插入图片描述
在这里插入图片描述
经过一次细分后,还有几个奇异点呢?
现在有四个奇异点。
第一次细分后非四边形面都会变成奇异点。以后奇异点就不会增加了

扫描二维码关注公众号,回复: 11010054 查看本文章

在这里插入图片描述
再细分后:

在这里插入图片描述
通过平均的方式让整个曲面变的平滑
新的点:
在这里插入图片描述
旧 的点:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 网格简化

在这里插入图片描述

1 概念

目的是减少三角形的数量,但是同时要维持基本的形状。
在什么场合下使用不同的三角形数量是有讲究的。
不同场景下选用不同的三角形。
第一和mipmap有关,是在图像层次结构上的。
第二和几何的层次结构是很难做的

不同三角形数量之间的过渡是非常难的。

在这里插入图片描述
在这里插入图片描述

2 边坍缩

在这里插入图片描述
如下:求平均好结果不对
二次误差度量:二次误差,要求的点到相关点的距离平方和最小。

在这里插入图片描述
坍缩一条边后其他的边二次项误差也会受到影响。
用优先队列和堆的数据结构来做这个。
在这里插入图片描述
在这里插入图片描述
接近平面的地方坍缩的会多点,
二次多项式误差在这这里很有意义。
在这里插入图片描述
在这里插入图片描述

3 网格正则化

在这里插入图片描述
增加点,调整点的步骤理解清楚就没有问题了。

4 Shadows Map

着色是局部的现象,没有考虑其他物体的光线和遮挡,着色解决不了阴影。

在这里插入图片描述

1 介绍

图像层次的算法;
点不在阴影里:能被相机看到,也可以被光源看到。
硬阴影:非0即1;

在这里插入图片描述

2 实现

第一步:从光源会看到什么?生成一幅图
记录看到的任意点的深度值。
光源作为一个虚拟相机,

在这里插入图片描述
第二步:从眼睛出发。
眼睛看到的那个点,映射到光源那个对应的那个点,对比两者之间的深度值的关系
实际的相机出发,渲染的场景重新投影会光源,看那个投影的深度值是否一致。

在这里插入图片描述
在这里插入图片描述

例子:
在这里插入图片描述
在这里插入图片描述
第一步:
光源看到的:
在这里插入图片描述
记录的是深度:好像真正做了一次光栅化一样。
在这里插入图片描述
第二步,从相机看
结果有点脏,
是否相等比较困难,因为值是浮点数,不好相等,距离判断大小,实际的距离只要大于最近看的最近点的距离,就可以了。但是有些数值确实太接近了。
有人提出引入一个误差,那个距离再加上这个偏差。
shadow map的分辨率,会引起锯齿。
注意:要比较的是光源到那个点的深度。

在这里插入图片描述

3 问题

缺点:

  1. 相当于渲染两遍。
  2. 数值精度导致的问题
  3. 硬阴影
  4. map的分辨率
    但还是3D游戏的主流技术。
    在这里插入图片描述
    在这里插入图片描述
    下面的那幅图中黑色的部分是阴影-本影
    灰色的部分是半影区
    软影-本影到半影区的过渡。
    点光源不会出现软阴影的。
    在这里插入图片描述

5 总结

光栅化:
几何:
下面的课主要讲光线跟踪:
光栅化有很多线性并不能做,而光线跟踪就是可以的。
自上而下的把握是学校图形学的本质。
在这里插入图片描述

发布了134 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41286360/article/details/104983707
今日推荐