10、计算机图形学——几何介绍(曲面的分类以及示例)

一、隐式曲面及示例

隐式曲面顾名思义就是不能直接看到曲面的形状,而是通过表达式的方式来表示曲面。所以,该曲面的优势就是查找某个点是否在曲面上比较快,而该类型曲面缺点就是曲面的表达不直观

比如下面这三个就是典型的隐式曲面

10、计算机图形学——几何介绍(曲面的分类以及示例)

表达式很不直观,但是很容易判断出点是否在曲面上

除了几何表示之外,隐式曲面还可以通过其他隐式曲面的交并补得到对应的隐式曲面

比如下图

10、计算机图形学——几何介绍(曲面的分类以及示例)

还有下图

10、计算机图形学——几何介绍(曲面的分类以及示例)

通过对隐式曲面的交并补操作,可以得到稍微复杂的曲面。

除了上述两种方式外,还可以使用符号距离函数和水平集来表示隐式曲面

距离函数表示空间中任何一个点到物体表面的最小距离,如果SDF为正,则表示点在物体外部,反之,则在物体外部。因此,SDF为0的点就是物体的表面。

在图形学中,一般先通过数学的方法混合两个物体的符号距离函数,然后将混合后得到的SDF恢复成形状。

下图表示的就是两个圆球进行混合的不同状态,从而得到不同的形状

10、计算机图形学——几何介绍(曲面的分类以及示例)

10、计算机图形学——几何介绍(曲面的分类以及示例)

水平集和SDF类似,水平集也是得到水平集函数为零的一系列的点,类似于地理中的等高线

10、计算机图形学——几何介绍(曲面的分类以及示例)

二、显示曲面及示例

显示曲面与隐式曲面正好相反,显示曲面没什么固定的表达式,只是给出了映射关系,所以表面长啥样非常直观,缺点就是很不好判断点是否在显示曲面上

10、计算机图形学——几何介绍(曲面的分类以及示例)

比如上图中的点云,还有下图中的多边形网格曲面

10、计算机图形学——几何介绍(曲面的分类以及示例)

除了这两个例子之外,还有一种后缀为.obj的文件表示法

10、计算机图形学——几何介绍(曲面的分类以及示例)

3-10行表示立方体8个顶点。 12-25行表示每个顶点在不同面上的纹理坐标。 27-34表示6个面的法线向量

36-47行了,f是face的缩写,表示一个网格面单元,其中x/x/x的第1位表示是顶点,第2位表示使用哪个顶点纹理,第3位表示使用哪个法线向量。

3个x/x/x表示正好构成一个三角形网格面。

以36行为例:表示第5,1,4个顶点坐标构成一个三角形面,对应的纹理坐标分别是第1,2,3个,该三角形免得法线向量是第一个(27行)

参考

GAMES101-现代计算机图形学入门-闫令琪_哔哩哔哩_bilibili

现代计算机图形学入门(几何) - 知乎 (zhihu.com)

欢迎大家评论交流,作者水平有限,如有错误,欢迎指出

上一篇:MySQL设计表结构


下一篇:JAVA字符串转日期或日期转字符串