9、计算机图形学——纹理的应用(环境贴图、凸凹贴图、法线贴图以及位移贴图)

一、环境贴图

比如下面的这张图,左边的是一张表示环境光的纹理,这个纹理表示屋子内部四面八方都是啥样,右边是一个茶壶, 将纹理映射到这个茶壶上,就能茶壶上渲染出周围的环境

还有这样的球形环境贴图(sphere map)

左边依然是环境贴图,就像地球仪把地球表面展开成右边的平面。随着球的移动,环境贴图的内容也会发生改变,所以,球形环境贴图只能表示一部分环境, 比茶壶的环境贴图表达的信息要少

球形环境贴图通常也叫材质球

但是,由于球形贴图展开后,边缘部分会产生一定程度的畸变,所以就产生了立方盒纹理贴图(cube map),cube map就是将球形贴图分成六块,然后每一块分别投影到一个正方体上

这样,当贴图展开始,相比球形贴图会产生较少的畸变

二、法线贴图

法线贴图就是一张存储每个片元法线向量的纹理。用以对物体表面的法线添加扰动,从而改变物体表面的明暗

法线贴图如上图所示

法线贴图的存储方法有两种:一种是直接存储三角形面的法线向量,这种方法使用法线向量时可以直接使用,但是如果模型发生变化,该法线向量就不正确了。所以就有了第二种方法:通过切线空间存储法线向量切线空间由副切线B所在的轴和切线T所在的轴以及法线向量N所在的轴共同构成,如果想计算法线N,那么就需要先计算出B和T

计算方法如下图所示

在纹理坐标系中取三个点P1,P2,P3,三个点不一定在轴上,可得向量E1和E2

而这两个向量均可以有切线和副切线的线性组合来表示

根据三角形法则,可知abcd对应的系数是

写成矩阵形式就是

上述矩阵中的uv均是已知,所以,可以计算出T和B的向量,进行二者的叉积就是法线向量

三、凸凹贴图(bump map)

凸凹贴图就是通过贴图对物体表面的高度进行了一个虚拟,从而得到了一个新的法线,通过该发现计算光照强度,从而改变物体表面的明暗

虚拟高度后,新的法线得计算方式如下

首先,以p点为坐标系原点,其对应的法线向量为(0,1),当虚拟了一个高度后,该点的导数dp如下图中的第二行,因此,下图中蓝色的切线向量是(1, dp),将其旋转90度之后,就是虚拟店的法线向量

结果是图中的第三行

类似可以推广到三维空间中

上述方式计算出来的法线向量是在局部坐标系下,因为是使用切线空间存储法线,所以最终的法线向量是n左乘二中[T, B, N]所组成的矩阵,将其转化到切线空间下

四、位移贴图(displacement map)

位移贴图与凸凹贴图的区别就在于:凸凹贴图并没有真正改变物体表面的高度,只是对物体表面的高度进行了一个虚拟,从而计算出新的法线。

而位移贴图是直接将物体表面进行修改得到新的法线,如下图所示,阴影可以看出两种贴图方式的差别

参考:

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值