Skip to content

Lecture 10: Geometry 1(Introduction)

Implicit Representation

隐式表示法使用一个函数来表示几何图形。如一个球,可以表示为:

\[ f(x, y, z) = x^2 + y^2 + z^2 - r^2 = 0 \]

隐式表示难以进行渲染,但很方便进行布尔运算,如两个球的并集、交集等,也可以方便地判断点是否在图形内部。

Explicit Representation

显式表示法使用顶点、边、面等基本元素来表示几何图形。常见的显式表示法有多边形网格(polygon mesh)、曲面(surface)等。

所有的点都是直接给出或者通过参数映射给出。

如:

\[ f(u, v) = (x(u, v), y(u, v), z(u, v)) \]

显式表示法便于渲染,但不方便进行布尔运算,也不方便判断点是否在图形内部。

实际应用中要根据实际需求选择合适的表示法。

Constructive Solid Geometry (CSG)

构造实体几何(CSG)使用布尔运算来构建复杂的几何图形。常见的布尔运算有并集、交集和差集。

Distance Function

距离函数(Distance Function)用于表示几何图形的距离信息。对于一个点\((x, y, z)\),距离函数\(f(x, y, z)\)表示该点到几何图形表面的最短距离。

可以用于混合一个移动的边界。比如A情况下,边界移动了\(\frac{1}{3}\),B情况下,边界移动了\(\frac{2}{3}\),那么可以通过距离函数来混合这两种情况,得到一个新的边界,结果为边界移动了\(\frac{1}{2}\)

找到距离函数的零点即可得到边界。

Level Sets

水平集(Level Sets)用于表示几何图形的等值面。对于一个距离函数\(f(x, y, z)\),其水平集\(f(x, y, z) = c\)表示距离为\(c\)的等值面。

在CT扫描中,可以通过水平集来重建三维图像。

Fractals

分形(Fractals)是自相似的几何图形,可以通过递归的方法来生成。常见的分形有曼德布罗集(Mandelbrot Set)、朱利亚集(Julia Set)等。