GAMES101-10:Geometry - Implicit Representations


Ways to Represent Geometry

Implicit Representations

含义

这种方法不会具体描述集几何物体上的每个点,而是描述所有的点满足的数学关系。

Based on classifying points: Points satisfy some specified relationship.

$$
f(x, y, z) = 0
$$

例如球体:

$$
f(x) = x^2 + y^2 + z^2 - 1
$$

优点

  • Inside/Outside Tests Easy 容易判断内外

缺点

  • Sampling Can Be Hard:可能很难看到该表示对应的具体几何形状是什么; $$
    f(x, y, z)=\left(2-\sqrt{x^{2}+y^{2}}\right)^{2}+z^{2}-1
    $$ 难以判断几何形状

Explicit Representations

All points are given directly or via parameter mapping

Explicit: Parameter mapping

优点

  • Sampling Is Easy 容易采样

缺点

  • Inside/Outside Test Hard 难以判断几何内外

总结

  • No “Best” Representation
  • Best Representation Depends on the Task!

不同类型的Implicit Representations

Algebraic Surfaces

Surface is zero set of a polynomial in $x, y, z$ .

使用数学公式表示:

  • 不直观,无法判断具体形状;

Algebraic Surfaces

Constructive Solid Geometry (CSG)

Combine implicit geometry via Boolean operations.

Constructive Solid Geometry

Distance Functions

Instead of Booleans, gradually blend surfaces together using Distance functions.

Distance function giving minimum distance (could be signed distance) from anywhere to object.

对任何几何物体,不直接描述其表面,而是描述空间上任意一点到这个集合物体表面的最小距离。

这个最小距离是有符号的:

  • 当空间上的点在物体内部,则到该物体表明的距离为负值;
  • 当空间上的点在物体外部,则到该物体表明的距离为正值;

Blending

对于每个几何物体都可以计算出其对应的距离函数,这种函数一般将任意一点当做参数,同时定义对应的几何物体表面(这个表面只是一种泛化的说法,其可以是球体的球心,圆的圆心),例如定义球的距离函数如下:

float sdf_sphere (float3 p, float3 c, float r)
{
    return distance(p,c) - r;
}

参考资料:

例子:Blending a moving boundary

Blending a moving boundary

上图中,将A中阴影部分的右边界定义为物体表面,则得到其对应的距离函数在其下方所示。通过对A和B两个物体的距离函数进行融合,可以得到融合后的物体的拓扑结构。

对于任意两个几何物体的blending的操作示意图如下:

利用距离函数对任意物体融合

Level Set Methods

问题

Closed-form equations are hard to describe complex shapes.

这种方法针对的问题是:不是任何几何图形都有对应的数学解析形式,面对这种情况,可以通过grid的方式将距离函数表示出来。

解决方法

store a grid of values approximating function.

Level Set Methods

Surface is found where interpolated values equal zero.

优点

Provides much more explicit control over shape (like a texture).

应用

  • 与texture结合:Level sets encode, e.g., constant tissue density. 将相同密度的部分连接起来形成平面结构; 医学图像
  • Level set encodes distance to air-liquid boundary:将不同的水珠连接起来; 水珠效果

Fractals

Exhibit self-similarity, detail at all scales.

类似编程中的递归过程,是同一图形在不同scale上的展示。

Fractals例子

问题

Hard to control shape.

因为频率很高,因此很容易造成走样。

总结

Implicit Representations的优点

  • compact description (e.g., a function)
  • certain queries easy (inside object, distance to surface)
  • good for ray-to-surface intersection
  • for simple shapes, exact description / no sampling error
  • easy to handle changes in topology (e.g., fluid)

Implicit Representations的缺点

  • difficult to model complex shapes

文章作者: alex Li
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 alex Li !
  目录