Games101学习笔记--11.Geometry几何2

11.1 显式表示几何

1、点云

就是很多密集的点,只要足够密集。可以研究成三角形面。

完全也可以用三角形表示复杂物体

11.2 曲线

1、Bezier曲线

非常丝滑,因为每一个点都是唯一确定的。
该曲线一定经过起止点,p0p1的切线、p2p3的切线

2、de Casteljau算法
(1)如何画出Bezier曲线?

假设b0是时间0,b2是时间t,b1决定往什么方向弯。
假设 t = 1/3,取得左侧线段的1/3处b01,右侧线段的1/3处b11,连接两点得新线段的1/3。

(2)Bezier二次曲线推导公式

像完全平方公式a^2 + 2ab + b^2, 其实二次曲线的公式就是由各个控制点bi的线性组合,线性组合的系数就是(a+b)^ n 的二项展开式。


当是n次曲线时,最终曲线的表达式是各个控制点的线性组合,组合的系数是二项展开式。

三维空间中也可以使用伯恩斯坦多项式,注意4个点0123时,n = 3,

(3)Bezier曲线有一些不错的性质

假设现在是有4个点
性质1:起点t=0的值一定是b0,终点t=1的值一定是b3
性质2:起点处的切线等于求导值,前面的3是因为C(n,1)的那个系数公式,n=3。前提若不是4个控制点,则不必是3。
性质3:拉扯控制点得到的新Bezier曲线,跟使用这些点画的Bezier曲线(仿射变换==线性变化+平移)一定是一样的。好的应用:在对一条Bezier曲线进行放射变幻时,不必将全部的点都记录下来,只需要对控制点做仿射变换再画出来即可得到新曲线。
性质4:凸包性质。画出来的曲线一定在控制点形成的凸包内。
什么是凸包?能包围给定形体的凸多边形。皮筋包住钉子的外框。

(4)分线段的Bezier曲线

针对有时候不太方便用很多个顶点得到想要的形状的情况,提出分线段的Bezier曲线。

连续性:
C0连续:两点连接
C1连续:一阶导数连续

3、样条曲线 B-splines

样条定义:一条连续的曲线,是由很多控制点控制的,能满足一定的连续性。一条可控的曲线就是样条。
B-splines就是basic-splines,比起Bezier曲线需要更多的信息。
Bezier曲线的数学公式理解,既可以是二项式定理作为系数对各个顶点作加权平均,也可以理解成各个顶点的位置对二项式系数做加权平均。
由于Bezier曲线是一个顶点发生变化,整个曲线就会变化,我们希望顶点有局部性影响曲线的功能。使用分段Bezier曲线也可以实现,但是B样条曲线也有这样的好的性质。
NURBS是B样条的更进一步延伸。

11.3 曲面

1、Bezier曲面

假设有16个点,先生成4条Bezier曲线,然后让蓝色点在时间t上移动,得到新的Bezier曲线的四个控制点,编织成的Bezier曲面。

在原始的4条线运动到时间u比例,在形成的蓝色曲线运动到了时间v的比例,唯一确定黑点坐标(u,v)。
也就是坐标u确定一条Bezier曲线,v确定曲线上的某一个点。


2、三角形与quads四边形 -- CAE工程师?模型师?

涉及到了更多的网格操作,曲面细分、曲面简化、平滑、参数化,得到的模型。

(1)曲面细分

可应用于纹理贴图,之前相对位移移动生成高度差,应用在不同的顶点上,引入更多的三角形,得到新的更高质量模型。

loop 这个人的细分算法:

三角形的三边中点增加三个新的点并连接,根据权重更新新的点的位置,原来旧的点的更新方式与新的点的更新方式不一样。

新的点取加权平均

对于旧的顶点:一方面认为自己是重要的,另一方面也考虑其他顶点的加权平均。这个公式是当周围顶点多的时候,认为自己不够重要,反之权重大。
定义一个顶点的度,现在就是n=6。
再定义一个数u,u是一个跟度相关的数字,如果n=3,则u=3/16,其他情况u=3/8n。
此处n=6,得u=3/8
6=1/16。
得权重的公式:(1-nu) self + u * neightborhood
= (1 - 6 * 1/16)*self + 1/16 * neightborhood = (10/16)xxxx

Catmull-Clark细分算法

奇异点定义:度不为4的点

连接三角面的面中心与三边中点,经过一次三角形细分可能会引发新的奇异点,所有非四边形面都消失了。原来有多少非四边形面,经过一次细分会编程多少个新的奇异点。

再经过一次细分,原来没有非四边形面了,所以也不会有新的奇异点产生。

Catmull-Clark这种算法新增的点又分成面心点与边心点两种,再加上old点,更新方式不同。
面心点:平均周围一圈4个old点
边心点:平均周围一圈2个old点+2face点
old点:平均周围新的4面心点+4边心点+8old点

loop细分只能用于三角形面,但是catmull细分可以用于不同形状的面。
(2)网格简化
Collapsing An Edge边坍缩算法

确定应该收缩哪些边?Quadric Error Metrics二次误差度量
在左侧的图是取各个顶点的平均,但是蓝色点与原来的点高度误差非常大,不好。

右侧的二次误差度量:新顶点的应该是,到达相邻的三角形面的距离和最小的位置。
这里复杂的计算过程可看https://max.book118.com/html/2017/0511/105908876.shtm
其实就是计算的新顶点u到原来顶点u1、u2所连接边集(相连的全部边的距离)的距离和。

如何用二次误差度量来选择边坍塌?
假设有一条边坍缩后,通过移动合并处顶点的位置,得到误差最小的位置。
1、计算每一条边坍塌下的误差值,进行堆排序、贪心算法,选择误差最小的边开始进行坍缩。

坍塌时会导致周围边的误差发生变化?
2、以最小的代价更新,对受影响的边做更新最小二次误差。

1、2步骤是要求我们允许取最小,并更新受影响,使用堆结构。

乱入一只可爱牛牛

(3)阴影问题--shadow mapping--点光源--硬阴影

原说的光栅化,只考虑某一点shading point、相机的位置、光源的位置,但还没考虑到时候有物体遮住。
shadow mapping本质上是一种图片空间的算法,在计算阴影的时候是不需要知道场景中的geometry的,但是必须解决走样问题。
算法关键:如果一个点不在阴影里,可以从相机或者光源处看到这个点。以光源为相机,做一张shadowmap。
记录从光源处看到的物体的深度。再从相机处观察物体,发出反向摄像到光源,看当前的深度信息与第一次记录到的物体的深度信息是否相同,相同则无遮挡无阴影。
但是是否深度相等的判断有误差,浮点数精度,像素大小影响。
硬阴影:点光源,全黑的部分。
软阴影:光源有一定大小时,软阴影的位置只能看到太阳的下半部分,不能看到上半部分。

(4)改进三角形质量,变得更均匀但是不丢失原来三角形的信息
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容