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)等。