【GAMES101笔记速查——Lecture 12 Geometry3(Mesh and Shadow Mapping)】

目录

1 网格(Mesh)-续

1.1 网格细分(Mesh subdivision)

1.1.1 Loop细分(Loop Subdivision)

        (1)将三角形分割成4个

        (2)调整新、老顶点的位置

        (3)Loop细分的结果展示

1.1.2 Catmull-Clark细分(Catmull-Clark Subdivision (General Mesh))

        (1)概念

        (2)基本步骤

        (3)性质

        (4)算法规则(FYI: Catmull-Clark Vertex Update Rules (Quad Mesh))               

1.1.3 网格细分的整体展示和收敛情况

1.2 网格简化(Mesh simplification)

1.2.1 边坍缩(Edge Collaps)

        (1)如何坍缩,能让坍缩之后的图形和之前的图形比较相似?

        (2)如何确定边坍缩的顺序?我们先要从哪个边开始坍缩呢?

        (3)坍缩一条边之后,周围的边会变化,周围边的二次度量误差也会变化,怎么办?

1.3 网格正则化(Mesh Regularization (same #triangles))

2 阴影图(Shadow Mapping)

2.1 概述

2.2 Shadow Mapping步骤

2.3 Shadow Mapping举例

        (1)从光源看向场景

        (2)从实际的相机位置看向物体

2.4 Shadow Maps的问题

2.5 硬阴影vs软阴影

3. 课程路线回顾


1 网格(Mesh)-续

网格操作:几何处理(Mesh Operations: Geometry Processing)

        ·网格细分(Mesh subdivision)

        ·网格简化(Mesh simplification)

        ·网格正则化(Mesh regularization)


1.1 网格细分(Mesh subdivision)

1.1.1 Loop细分(Loop Subdivision)

表面细分不仅要增加三角形的数量,而且使模型的表面更加光滑

注意,Loop细分和循环没有任何关系,只是因其发明人叫Loop。

loop细分仅能对三角形网格进行细分。

下面介绍loop细分的步骤:

        (1)将三角形分割成4个

                比较简单,如图分割即可

        (2)调整新、老顶点的位置

                ·对于新产生的顶点

             该新顶点位于某一条边上,且有两个三角形共用这条边。对于两个三角形的顶点,若顶点落在这条公共边上,则称之为A,B;若不在公共边上,则称为C、D。新顶点的位置就由这A、B、C、D四个点加权得到:3/8 * (A + B) + 1/8 * (C + D)

                ·对于原来的老顶点

        老顶点肯定被多个面共用,这里定义几个量:

        n : 老顶点的,就是与老顶点相邻的边数

        u : 常量,影响最终结果与老顶点本身位置的相关程度。

        调整后的顶点位置由老顶点本身位置共用面上的其他顶点位置共同加权决定:

        n越大,老顶点相邻的边越多,老顶点自己的权重就越低;n越小,老顶点相邻的边越少,它自己的权重就越高,越能保持在之前的位置。

        (1 - n*u) * original_position + u * neighbor_position_sum

        (3)Loop细分的结果展示

1.1.2 Catmull-Clark细分(Catmull-Clark Subdivision (General Mesh))

对于更一般的情况,比如四边形网格,或者三角形和四边形网格同时存在的情况,Loop细分就无法解决了。此时Catmull-Clark这两个人提出了他们的细分算法。

        (1)概念

        四边形面(quad face)

        非四边形面(Non-quad face) :三角形、五边形等等

        奇异点(Extraordinary vertex):度(与该点相邻的边数)不为4的点。

        (2)基本步骤

        Step 1: 每条边取其中点

        step 2: 每个面取其重心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值