计算机图形学GAMES101(九)几何(基本表示方法)

本文最后更新于 2024年5月26日 下午

本节涉及内容:

  • 纹理的应用
  • 几何

在现代GPU中可以将纹理理解为:
纹理=内存区域+范围查询(过滤)

  • 纹理不仅仅可以用作物体的贴图,还可用来记录环境光照。

在这里插入图片描述

凹凸贴图、法线贴图

  • 纹理还可以用作凹凸贴图,存储高度值。
    右边原本是一个球,凹凸贴图其实是保存了三角形任意一个点的相对高度,凹凸贴图可以在不在几何形体变复杂的情况下,应用了一个复杂的纹理,使其相对高度发送变化(法线发送了变化),从而改变着色的结果。由于着色结果发送了变化从而产生了明暗对比,实现了凹凸效果。(球的模型并没有改变)

在这里插入图片描述
凹凸贴图或者法线贴图的实质是为了改变任意一个点的法线。

在这里插入图片描述

位移贴图

位移贴图也是用纹理来改变几何物体表面的相对高度,相对于凹凸贴图,位移贴图会把几何形体表面的三角形顶点位置进行移动。左别凹凸贴图,右边位移贴图。
但是要求几何形体表面的三角形足够精细才行。
在这里插入图片描述
纹理贴图还可以记录一些提前算好的信息,比如模型自己本身互相遮挡产生的阴影
在这里插入图片描述

几何

分为:
Implicit geometry:隐式几何
Explicit geometry:显式几何

隐式几何(Implicit geometry)

表示一些关系,并不会给你实际的点
例如表示一个球,会这么表示X^2^+Y^2^+Z^2^=1

更加通用的情况:
对于任意一个点,只要满足f(x,y,z)=0,就认为这一点是在该表面上的,只要找到这个表面上所有的点就可以得到该表面
在这里插入图片描述

隐式几何的缺点

得到一个函数,很难直观的看出来它表示的图形。
例如函数
在这里插入图片描述
它表示的几何图形是
在这里插入图片描述

隐式几何的优点

判断一个点在不在这个几何形状上面是很容易的。
在这里插入图片描述

显式几何

显式几何:把所有点都表示出来,如三角形把面上的点都表示出来。

另一种显式的方法是通过参数映射。定义一个uv空间,上面有任意一个点用坐标uv表示,对应每一个uv值都可以映射到三维空间上的某一个点,把uv上所有的点都遍历一遍,转换为XYZ的形式,在三维空间中得到一个完整的几何体。
在这里插入图片描述

显式几何的优点

显示几何的表现形式:
在这里插入图片描述
表示的图形:
在这里插入图片描述
我们只需要把每一个uv都测试一遍就可以知道表示的几何形状,所以显式几何很容易知道其表示的图形

显式几何的缺点

判断一个点是在表面上或者在里面还是外面用显式几何就很难了。
在这里插入图片描述

隐式几何的其他例子

在这里插入图片描述

  1. Constructive Solid Geometry (CSG):通过一系列几何的基本运算来定义复制的几何。

在这里插入图片描述

  1. Distance Functions 距离函数
    对于任何一个几何都不直接去描述它的表面,而去表述任何一个点到这个表面的最近距离。
    距离函数是指空间中任何一个点到需要表达的几何形体之间的最小距离。如果有一个点在几何形体的外面则距离是正数,如果有一个点在几何形体的里面则计算出最小距离后加一个负号。空间任何一个点都有一个距离值,把这两个物体各自的距离函数都算出来之后,把两个距离函数做一个融合,再把他恢复成原来的物体。
    在这里插入图片描述
    举例:
    在这里插入图片描述
    有AB两张图,A的1/3是黑色的,B的2/3是黑色的,我们希望的到左边是黑色右边是白色的图。如果我们直接blend(A,B)那么结果是1/3黑色(左侧),1/3灰色(中间),1/3白色(右侧)。

那么我们就需要使用距离函数SDF(A)来计算每个点到边界的距离,边界的值认为是0,越靠近边界值越接近0,如果点在边界右边则值为正数,如果点在边界左边则值为负数。可以理解为值越小则越黑,值越大则越白,这样就将A变为一个从黑渐变到白色的图片了。

对B用使用距离函数SDF(B)

将SDF(A)和SDF(B)做一次blend,然后就可以得到这两张图渐变的中间位置。那么这个blend后的图像中间即为0,向右(白)为正,向左(黑)为负。如果通过SDF回复成原来的形状,就可以知道,0的地方就是他们的边界,非0的地方不是,blend两个对应的SDF,就是在blend它们的边界。

使用距离函数的示意图:
在这里插入图片描述

水平集方法

距离函数blend之后得到一个函数,这么样才能恢复成表面呢
我们只需要把距离函数f(x)=0的位置全部找出来就行了

水平集方法:
水平集方法就是把距离写在不同的格子里面,只需要找到在中间值是0的地方,然后就可以把整个函数试图表示的物体提取出来,类似于地理上的等高线。
在这里插入图片描述

几何的另一个概念:分形

分形类似于递归
例如雪花是六边形的,放大后每一条边上还有六边形,六边形里面仍然还有六边形。
在这里插入图片描述
隐式函数的有点总结:

  • 描述起来比较简单
  • 某些查询很容易(对象内部,到表面的距离)
  • 适合于光线和表面的求交
  • 对于简单的形状,精确描述/无采样误差
  • 适合用来描述拓扑结构(如流体)

计算机图形学GAMES101(九)几何(基本表示方法)
http://example.com/2024/05/26/计算机图形学GAMES101(九)几何(基本表示方法)/
作者
莫予
发布于
2024年5月26日
许可协议