图形学 - 纹理的应用

1.环境贴图

环境贴图(Environment Map)指的是环境中四面八方的情况。可以使用纹理来描述环境光的样子。我们假设环境光来自于无穷远处,没有深度意义。环境光纹理可以看作一个光滑镜面的球表面在环境中所记录的信息。我们需要将球表面展开成一个平面,可以使用两种展开方式:

图形学 - 纹理的应用_第1张图片

1.1 墨卡托投影

墨卡托投影法(Mercator Projection):通过将球面映射到一个平面上,我们可以使用墨卡托投影法。墨卡托投影法应用于目前地球仪的投影。它的特点是靠近南北极的地方会发生较大的畸变,这不是一个均匀地描述。
图形学 - 纹理的应用_第2张图片

1.2 立方体映射

立方体映射(Cube Map):我们为光滑球定义一个包围盒,将球的平面投影到立方体的六个平面上。这样做就可以得到 6 张纹理,并且畸变比较小。但是在计算纹素时需要计算球面上的点对应哪一张纹理,判断点和方向的位置关系。
图形学 - 纹理的应用_第3张图片

2. 凹凸贴图

凹凸贴图是指用纹理的方式得到物体表面凹凸不平的感觉,相比于直接通过做出物体凹凸不平的方式,这种方法更加的简单。对于任何一个点,我们只需要改变这个点的法线方向就可以表达出这个点高度的变化。因此这个贴图也被称作法线贴图(Bump mapping)。纹理上的点定义的是点高度的移动,通过纹理上信息我们可以求出新的法线方向。凹凸贴图实际上改变了shadingPoint的法线方向,再加上光线的作用(bling-phong), 凹的地方会显得暗但,凸的地方较为明亮,通过这种光线的作用来模拟出凹凸不平的效果

在二维的情况下,我们假设原物体是一条直线,原始法线方向为 (0, 1)。对于任意一个点 ,我们定义 点的导数是 = ⋅ [ℎ( + 1) − ℎ()]。常数 定义了凹凸贴图对于法线的影响。那么该点切线的方向是(1, )。法线的方向和切线的方向成 90 度角,法线的方向向量是 (−, 1) 正则化后的结果。
图形学 - 纹理的应用_第4张图片
推广到三维情况,对于一个原始法线是 (0, 0, 1) 的平面,我们在 u 方向和 v 方向上各做一次求导,结果是 / = 1 ⋅ [ℎ( + 1) − ℎ()], / = 2 ⋅ [ℎ( + 1) − ℎ( )]。法线的方向是 (−/, −/, 1) 的正则化结果。
对于任意方向的原始法线,我们都可以先按照局部坐标系计算法线后通过变换变换到世界坐标系上。
除了凹凸贴图之外,还有另外一种贴图称作位移贴图。位移贴图会移动所有顶点位置。因此使用顶点贴图的时候模型三角形分的越细越好。凹凸贴图并没有实际改变物体的形状,所以在物体的边上依旧可以看到光滑的曲线。

图形学 - 纹理的应用_第5张图片
当然,贴图可以推广到三维空间,我们可以使用三维贴图。计算三维空间中任意一个点对应的纹理。

3.阴影贴图

贴图还可以直接加入一些阴影,直接计算好贴在纹理上,这样会使得阴影计算变得很快。纹理可以记录一些已经计算好阴影的信息。

你可能感兴趣的:(计算机图形学,图形渲染)