从漫反射纹理映射中的过滤样本中找到对应点

从漫反射纹理映射中的过滤样本中找到对应点

让颜色 T 代表纹理图中与表面上的点相对应的过滤后的样本。 使用此颜色来调整漫反射颜色将产生漫反射照明方程的扩展版本:

注:漫射照明方程为:

正如纹理映射可用于调整照明方程的漫反射部分一样,我们也可以使用纹理映射来调整镜面反射。 这种纹理有时称为光泽度贴图,它确定表面上每个点的镜面光泽度。 使用颜色来表示镜面反射图中的过滤样本,我们可以像这样扩展镜面反射方程:

注:镜面反射光照方程为:

纹理映射得到的样本的真实颜色是由其对应的物体纹理坐标决定的。 纹理坐标要么预先计算并存储在三角形网格的每个顶点,要么在运行时计算以产生一些特殊效果。渲染三角形面片时,纹理坐标使用以下公式

unity投影器_投影纹理映射金字塔_unity 纹理投影映射

插值纹理坐标。 对于纹理图的每个顶点,可能有1到4个坐标,标记为s、t、p和q。 接下来的几章将介绍几种不同的纹理贴图,以及在每种纹理贴图中,我们如何使用纹理坐标来查找纹理贴图中的对应点。

标准纹理映射

在一维、二维或三维纹理映射中,我们使用相应的纹理坐标来查找纹理像素。 如下图所示unity 纹理投影映射,纹理图的整个宽度、高度和深度分别对应s、t、p方向上0到1之间的坐标值。

纹理映射原理的介绍和标准纹理映射等的方程详细资料概述

一维纹理图可以被认为是仅在单个高度方向上具有像素的二维纹理图。 同样,二维纹理图可以被认为是仅具有单个深度方向像素的三维纹理图。 如果 t 和 p 坐标没有特别标记,那么我们假设它们是 0。

投影纹理映射

第四个纹理坐标将用于投影纹理映射,本节将介绍其应用。 q 坐标值与齐次坐标中的 w 非常相似。 除非另有说明音乐,其值一般为1。 坐标s,t,p的值将除以q的坐标值。对于两个端点纹理坐标分别为(s1,t1,p1,q1)和(s2,t2,p2,q2)的扫描线,我们可以使用方程

unity 纹理投影映射_投影纹理映射金字塔_unity投影器

计算插值值 s3 和 q3,其中这两个值与中间参数的商给出了纹理贴图样本中的 s 坐标:

类似的表达式可以用来计算投影t、p的纹理坐标。

一些投影坐标映射是点光源投影周围环境图像的模拟。 如下图所示,图像的投影随着距点光源的距离而增大。 这种效果是通过使用4X4矩阵将物体的顶点位置坐标映射到纹理坐标(s,t,0,q)来获得的。 然后除以 q 以生成投影图像的正确 2D 纹理映射。 坐标(s,t)。

纹理映射原理的介绍和标准纹理映射等的方程详细资料概述

假设P点的点光源的方向为Z,令单位向量S和T位于垂直于向量Z的平面上,并令它们与投影纹理图像的s、t坐标方向一致。 点光源照射的表面上的每个顶点位置(x,y,z,1)首先必须转换到以点光源为原点的坐标系中,其中x,y,z坐标对应于S 、T 和 Z 向量方向。 这可以通过使用列为向量 S、T、Z 和 P 的矩阵的逆来实现。如果向量 S 和 T 彼此垂直(即投影图像不倾斜),则可以将变换写为:

unity 纹理投影映射_unity投影器_投影纹理映射金字塔

注意这个矩阵转换为左手坐标系,

因为SXT = - Z

现在,我们需要将上面的矩阵与第二个矩阵相乘来完成投影。 正如我们定义视锥体的焦距一样,我们以顶角a的形式定义点光源投影的焦距:

设a为纹理贴图的纵横比unity 纹理投影映射,等于其高度除以宽度。 每个顶点位置需要投影到距点光源距离为 e 的平面上。 这里我们要将x方向上[-1,1]区间内的点映射到[0,1]2d游戏素材,将y方向上[-a,a]区间内的点映射到[0,1] .这个矩阵

unity投影器_unity 纹理投影映射_投影纹理映射金字塔

这样的映射就完成了,将s,t坐标除以q后就完成了投影过程。 结合前面给出的两个矩阵(M1M2),我们可以使用矩阵M=M2M1来导出投影的点光源图像。

立方体纹理映射

映射对象纹理的另一种方法是使用立方体纹理映射。 立方体纹理映射通常用于近似模型表面上环境光的反射。 如下图所示,立方体纹理贴图包含六个二维分量,分别对应立方体的六个面。 s、t 和 p 坐标表示从立方体中心向样本像素发出的方向矢量。

纹理映射原理的介绍和标准纹理映射等的方程详细资料概述

样本对应哪一个面取决于绝对值最大的坐标的符号。 其他两个坐标将除以最大坐标值,然后使用下表重新映射到 [0,1] 范围以生成 2D 纹理坐标 (s',t')。 该坐标将用于对相应立方体纹理映射面的 2D 纹理贴图进行采样。 下图显示了立方体映射坐标以及六个面的相应方向。

纹理映射原理的介绍和标准纹理映射等的方程详细资料概述

纹理映射原理的介绍和标准纹理映射等的方程详细资料概述

纹理坐标和立方体纹理映射的组合通常是在运行时生成的。 例如,环境映射可以通过计算相机方向的反射并将其存储到三角形网格中每个点的(s,t,p)坐标中来实现。 反射方向的计算通常在硬件中完成,因此可以非常有效地完成。

立方体纹理映射在某些图形硬件中用作归一化向量。 标准化立方体贴图是一种立方体纹理贴图,它在六个面上存储一组 RGB 颜色编码向量,而不是存储彩色图像。 它存储的向量数组的形式为:

在立方体映射中,每个面像素处存储的向量是像素样本的单位长度向量(s,t,p)。 在执行一些逐像素光照时,使用归一化立方体贴图非常合适,因为在三角形表面上法线插值可以产生一些长度小于1的法线向量。

文章来源:http://www.elecfans.com/d/672630.html