https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b59bef96-a60e-4153-ae41-65329b53cb40/Untitled.png

Implicit

隐式的集合,拿了空间中的一个点,为了表示集合的一个面。不会告诉点具体在哪,会告诉点所满足的关系。满足一定关系的点,都在一个表面上,把点做个归类,例如球的公式。

DIstance Function

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6c3fa8e4-5561-4f69-b07b-febd0476aac4/Untitled.png

对于一个集合,不描述表面,而表述一个点的最近距离。对距离函数做融合、Blend。

距离函数:空间中任何一个点、到表述的集合形体上的任意一个点的最小距离,距离可正可负。如果点在物体外,距离为正,如果点在物体内,则可以算出点到表面的最小距离,且距离为负。可以把空间中任意一个点都定义成一个值。

如上图,如果把两个球的距离函数都算出来,就可以做个Blending。再恢复成原来的物体。

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/9355acb2-4fbb-45f2-b384-966dd2641c93/Untitled.png

第一行假设A左边三分之一是黑的,右边是白的,B同理,左边三分之二是黑的,那么Blending之后希望得到的是左边三分之一平均后是黑的,中间三分之一是灰的,右边三分之一是白的。怎么求Blending呢?可以Blend 两个距离函数。

第二行0左边是距离为负,右边是距离为正。Blend之后,0的位置就是边界,也就是我们求出来BLend形状的边界。

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/10ea6cb6-5958-4713-ba5d-cfc4484b6936/Untitled.png

得到Blend之后的距离函数,怎么样恢复成表面呢?那就把0的位置全找出来

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6f1e9b78-ad4d-4132-bb91-4e0f133258ac/Untitled.png

距离函数可能不太好用式子来表达,还可以通过某种方法来表达,例如水平集。函数的表述写在格子上,在中间0的地方,就可以把整个函数试图描述的物体表面提出来。

函数为0可以得到一条曲线,0.1 处也可以得到一条曲线。这种概念在地理得到广泛应用:等高线。水平集关注的是在哪里等于0,例如双线性插值来求。

水平集也可以定义三维中的格子,这就和纹理联系上了。如果我们有个三维的纹理,或者是人体的不同位置、密度。那么怎么提取出物体的表面呢,我们可以根据密度等于某个密度,找到所有的对应的位置,从而找到表面。

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/bda15987-6a01-400c-87ab-47dac5a4ba8f/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/ebf1cb1d-b441-4126-ad8b-b48889dc4a9c/Untitled.png