计算机图形学笔记九:Geometry1(几何基本表示方法)

几何基本表示方法

  • 1.几何类型
    • 1.1隐式几何(Implicit)
    • 1.2显式几何(Explicit)
  • 2.隐式几何的表示方法
    • 2.1数学公式法(Algebraic Surfaces)
    • 2.2实体几何法(CSG)(Constructive Solid Geometry)
    • 2.3距离函数法(Distance Functions)
    • 2.4水平集法(Level Set)
    • 2.5分型几何法(Fractals)
  • 3.显式几何的表示方法
    • 3.1点云(Point Cloud)
    • 3.2多边形网格(Polygon Mesh)
    • 3.3The Wavefront Object File (.obj)

1.几何类型

1.1隐式几何(Implicit)

定义:不会具体告诉点的位置,只给出几何中的点的关系,满足该关系的就是该几何图形。
优势:可以很方便推出一个点和几何图形的关系(能够轻松判断光线与物体是否相交)如下图:
计算机图形学笔记九:Geometry1(几何基本表示方法)_第1张图片
劣势:难以根据方程式推断出几何图形的位置样貌,如下图:
计算机图形学笔记九:Geometry1(几何基本表示方法)_第2张图片

1.2显式几何(Explicit)

方法一,直接给出几何的位置;
方法二,通过via parameter mapping(参数映射)的方式给出:
计算机图形学笔记九:Geometry1(几何基本表示方法)_第3张图片
没有直接给出点x,y,z的坐标,但是已知u,v的取值范围以及映射关系( u , v ) → ( x , y , z ) ,那么只需要将所有的u,v代入就可知道所有位于图形上的点的坐标。
优势:采样很简单,将所有的UV代入就能得到所有的点了,如下图:
计算机图形学笔记九:Geometry1(几何基本表示方法)_第4张图片
劣势:不易于判断一个点和几何图形之间的关系,如下图:
计算机图形学笔记九:Geometry1(几何基本表示方法)_第5张图片

2.隐式几何的表示方法

2.1数学公式法(Algebraic Surfaces)

容易判断一个点和几何图形之间的关系
计算机图形学笔记九:Geometry1(几何基本表示方法)_第6张图片

2.2实体几何法(CSG)(Constructive Solid Geometry)

即布尔运算,通过对简单的图形计算出更为复杂的图形
计算机图形学笔记九:Geometry1(几何基本表示方法)_第7张图片

2.3距离函数法(Distance Functions)

为空间中的任意一点到几何中的点定义一个最小距离(该距离可+可-),就是将两个图先逐渐融合之后,再恢复到原图像空间
计算机图形学笔记九:Geometry1(几何基本表示方法)_第8张图片
定义空间中一点到几何上一点的最小距离,这个距离为正,则代表在几何外;为负,则代表在几何内;为0,则代表在物体表面:
计算机图形学笔记九:Geometry1(几何基本表示方法)_第9张图片
上面一行是需要融合的两个图像,下面一行是各自对应的SDF图像,通过一系列运算后(本例为加法)可以得到最右侧图像,对应的SDF也是,生成新的内外位置和表面位置(正的新范围,负的新范围,0的新位置)
计算机图形学笔记九:Geometry1(几何基本表示方法)_第10张图片

2.4水平集法(Level Set)

思想和距离函数其实是一致的,只不过使用了网格图的形式来表示,其中f(x)=0的地方就是表示物体的表面,同理可以寻找f(x)=0.3等等的边界线,只不过表示的不是物体表面:
计算机图形学笔记九:Geometry1(几何基本表示方法)_第11张图片

2.5分型几何法(Fractals)

即物体的一部分和整体十分相似(可以理解成递归操作,亦或是雪花的构成,细看六边形的雪花的其中一边,其仍然是较小的六边形构成的,再细看仍然由由更小的六边形构成
计算机图形学笔记九:Geometry1(几何基本表示方法)_第12张图片

3.显式几何的表示方法

3.1点云(Point Cloud)

用一堆点来组成物体,只要点与点之间的距离足够小,就不容易看到缝隙,进而组成一个连续的物体表面(用一个列表存储这些点的坐标)
计算机图形学笔记九:Geometry1(几何基本表示方法)_第13张图片

3.2多边形网格(Polygon Mesh)

在图形学中最为广泛的应用,由若干个三角形面或四边形面组成物体表面。
计算机图形学笔记九:Geometry1(几何基本表示方法)_第14张图片

3.3The Wavefront Object File (.obj)

区别于编译软件编译出来的.obj文件。在3D中的.obj文件是一个文本文件,只是把一堆点、法线、纹理坐标分开表示,然后再组织起来形成的模型。
如下图描述了一个立方体:
计算机图形学笔记九:Geometry1(几何基本表示方法)_第15张图片

你可能感兴趣的:(计算机图形学,unity,图形学,着色器,游戏引擎,图形渲染)