L10 纹理和其他的映射技术 Texture and Other Mapping Techniques

学习目标

  1. 能够应用像素顺序扫描以生成纹理
  2. 描述并应用其他高级映射方法

纹理映射: 就像贴墙纸一样,我们需要把所需纹理贴到想贴的物体上。其基本思想其实就是:图元中的每个顶点指定恰当的纹理座标,然后通过纹理座标在纹理图中可以确定选中的纹理区域,最后将选中纹理区域中的内容根据纹理座标映射到指定的图元上
纹理的座标系,叫纹理座标系(s,t),他的范围只有[0,1],如下图:在这里插入图片描述

两种纹理映射方法

  1. 纹理扫描(texture scanning):将纹理座标系(s,t)中的纹理图案映射到像素(x,y)。(一般不用)下图从左到右
  2. 像素顺序扫描(pixel order scanning ):将像素(x,y)映射到(s,t)中的纹理图案。下图从右到左

在这里插入图片描述
在这里插入图片描述

  • 从纹理空间到对象空间的映射通常使用线性函数在这里插入图片描述
  • 从对象空间到投影空间是 视角变换和投影变换的串联。

举例

假如我们想把上面的那张纹理图,贴在下面这个圆柱体的表面,我们先正着推:
在这里插入图片描述
该圆柱体的参数方程为
在这里插入图片描述

  1. 则从纹理空间到对象空间的映射 texture-surface transformation Mt :
    在这里插入图片描述
  2. 假设没有几何变换并且投影在X方向上正交。那么Y- Z是投影平面。那么视角和投影转换Mvp为:
    在这里插入图片描述
  3. 因为像素顺序扫描中,我们要求的是从(Y,Z)—>(s,t) 。所以我们要先求Mvp的逆矩阵,在求Mt的逆矩阵,他们分别是:在这里插入图片描述在这里插入图片描述
  4. 综合起来就是
    在这里插入图片描述
  5. 使用此变换,像素(Y,Z)的像素区域将被反变换为纹理空间(s,t)中的区域。该区域中的强度值被平均以获得像素强度。

凹凸贴图 bump mapping

  1. 纹理贴图可用于为平滑的表面添加精细的表面细节。但是,由于纹理图案中的照明细节通常不与场景中的照明方向相对应,所以对像草莓 橘子这样的粗糙表面而言 不是个好法子。
  2. 凹凸贴图是一种用于创建表面凹凸感的方法。表面法线用微扰函数perturbation function。而扰动法线用于照明模型计算中。
  • P(u,v) 是在参数表面上的位置
  • N (u,v)的表面法线
  • N=Pu✖️ Pv
    在这里插入图片描述
  • 我们在P(u,v)上添加一个小的凹凸函数b(u,v)。他就变成了变成P(u,v)+ b(u,v)*n
  • n 是 单位(向外)表面法线
  • b(u,v) 一般是查表得到

环境贴图 environmental mapping

  • 是一种使用纹理映射概念的简化射线跟踪方法。

  • 环境图是在封闭的Universe的表面上定义的。信息包括光源,天空或其他背景物体的强度值。

  • 通过将像素区域投影到表面来渲染表面,然后将其反射到环境贴图上。如果表面是透明的,则也可以折射到地图上。

  • 通过对环境图的相交区域内的强度值求平均来确定像素强度。在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章