跳至正文

Geometry3

曲面细分

三角形增加数量 让曲面变得更加光滑

 
 

网格简化

去掉一些边或者三角形 但还是要维持互相的连接关系

 
 

网格正则化

让多变形变得更统一 提升三角形或者多变形的质量

 
 

LOOP细分:

这里的loop和循环没有任何关系

引入更多的三角形

也可以把三角形拆成更多的三角形

但这不足以让形状发生很大改变

所以说曲面细分 是两部分操作

拆分原有的三角形

调整三角形顶点的位置

对于新生成的顶点 做加权平均

对旧的顶点

n:顶点的度

u:跟度有关系的一个数(关系如图)

loop细分的结果 先细分 再调整

 
 

Catmull-Clark的细分

如果不是三角形网格 loop就无法适用了

非四边形面

奇异点:度不为4

每条边和每个面我都取中点然后连起来

经过一次细分后

会引入两个新的奇异点 总共有4个奇异点

旧和新的度分别是53

非四边形面全都消失了 也就是说在引入奇异点后就消失了

也就是说奇异点在第一次细分后 再也不可能增加了

 
 

 
 

如何调整这些点呢?

面上的点 边上的点 旧的点 都有不同的方式更新

 
 

 
 

 
 

 
 

曲面简化

根据不同情况 选用不同的多变形面数

但是几何的层次结构不好做

 
 

边坍缩

引入二次误差度量

希望把这个点放在某个位置上能够让二次误差度量最小

如何坍缩这些边呢?

 
 

把每条边都打上一个分数 也就是二次度量误差

选最小的那个操作

要注意坍缩一条边的时候还会影响另外一条边的二次度量误差

所以还要对这些被影响的边更新二次度量误差

所以需要一个可靠的数据结构——优先队列/

我们通过不断的局部最优解找全局最优解 是一种贪心

并不是就是全局最优 只能说比较接近

实际的操作

 
 

 
 

在光栅化里是怎么生成阴影呢?

我们之前所说的着色并不能解决阴影问题

所以阴影贴图/阴影映射出现了

阴影贴图仍会有走样现象

最重要的思想是什么?

如果点不在阴影里 你可以从摄像机看到 光源也可以看到

同理 如果在 那光就看不到这个点

利用这个现象就能把阴影做出来

经典的阴影贴图只能处理点光源

 
 

第一:先从光源看向场景

找到能看到的点 并且生成一幅图

不做着色 但是把深度记下来

 
 

 
 

从眼睛或者摄像机出发

再次看向这个场景

把看到的点 重现投影回光源

然后对比刚刚记录的深度 如果是相等的

就说明这个是可见的(既能被摄像机看到又能被光源看到)

 
 

这里就是反例了

 
 

 
 

 
 

 
 

 
 

 
 

为什么会出现这种情况呢?

这就是阴影贴图本身会出现的一些问题

是否相等这个概念是很难达到的 因为场景中的距离都是浮点数

都有微小差异 浮点和浮点想要判断相等是非常困难的事情

因为要扫描两遍自然开销较大

 
 

 
 

我们已知的3d游戏和视频的主流技术

 
 

硬阴影

阴影的分辨率(设置里的阴影质量)

浮点精度造成的问题

 
 

什么是硬阴影 什么是软阴影

边缘锐利/不锐利 有过渡

软阴影来自物理现象 本影/半影的过渡

 
 

 
 

发表评论

您的电子邮箱地址不会被公开。