序
能用解析的方法算的,叫符号距离函数。只能数值解的,叫符号距离场。
它就是横平竖直的几个平面,点到平面的距离是很好算的。
初步认识
有个网页,可以玩一玩:
About | Physics Simulation in Visual Computing (interactivecomputergraphics.github.io)
Signed Distance Function - Box (interactivecomputergraphics.github.io)
计算方法
理论公式
底下还有计算公式的。关于这个公式,有两点要说的,都用红线标出来了:
向量的二范数
向量外面加两个竖线,乍一看,比较生疏;但是,仔细看看,也还行。
这是向量的范数。【不是矩阵的范数,矩阵的范数是另外的定义】然后由于2范数很常用,所以写2范数的时候可以省略下标2,最后就成了向量外面加两个竖线,也就是上图里的样子。
关于向量范数:【数值分析】【纯干货】三分钟速成向量范数_哔哩哔哩_bilibili
blue point
那个blue point,是在box中心的;它周围也是蓝色的,混在一起了,不仔细看还真看不出来……
实际计算
代点实际的数字进去算一算
关于d的含义
关于公式的使用
box,是对称的,所以只要考虑第一象限的就行了。
而第一象限,可以分成4个部分,如下图的1,2,3,4四个区域所示。
φx的公式,被加号分成了两个部分,在不同的区域,起作用的是不同的部分。
在区域1,起作用的是公式的第一部分,公式的第二部分在这种情况下恒为0。
在区域2,3,4,起作用的是公式的第二部分,公式的第一部分在这种情况下恒为0。
一个形式,兼容不同情况;在GPU里省略if,好像也是这么个思路。