box的符号距离函数

能用解析的方法算的,叫符号距离函数。只能数值解的,叫符号距离场。

它就是横平竖直的几个平面,点到平面的距离是很好算的。

初步认识

有个网页,可以玩一玩:

About | Physics Simulation in Visual Computing (interactivecomputergraphics.github.io)

Signed Distance Function - Box (interactivecomputergraphics.github.io)

box的符号距离函数_第1张图片

计算方法

理论公式

底下还有计算公式的。关于这个公式,有两点要说的,都用红线标出来了:

box的符号距离函数_第2张图片向量的二范数

向量外面加两个竖线,乍一看,比较生疏;但是,仔细看看,也还行。

这是向量的范数。【不是矩阵的范数,矩阵的范数是另外的定义】然后由于2范数很常用,所以写2范数的时候可以省略下标2,最后就成了向量外面加两个竖线,也就是上图里的样子。

关于向量范数:【数值分析】【纯干货】三分钟速成向量范数_哔哩哔哩_bilibili

box的符号距离函数_第3张图片

blue point

那个blue point,是在box中心的;它周围也是蓝色的,混在一起了,不仔细看还真看不出来……

box的符号距离函数_第4张图片 用白色画笔圈起来的,就是所谓的"bule point"

实际计算

代点实际的数字进去算一算

关于d的含义

box的符号距离函数_第5张图片

关于公式的使用

box,是对称的,所以只要考虑第一象限的就行了。

而第一象限,可以分成4个部分,如下图的1,2,3,4四个区域所示。

φx的公式,被加号分成了两个部分,在不同的区域,起作用的是不同的部分。

在区域1,起作用的是公式的第一部分,公式的第二部分在这种情况下恒为0。

在区域2,3,4,起作用的是公式的第二部分,公式的第一部分在这种情况下恒为0。

一个形式,兼容不同情况;在GPU里省略if,好像也是这么个思路。

box的符号距离函数_第6张图片

你可能感兴趣的:(碰撞检测,符号距离函数,SDF,BOX)