法线贴图的基本概念 您所在的位置:网站首页 法线贴图颜色是彩色 法线贴图的基本概念

法线贴图的基本概念

2024-03-13 20:40| 来源: 网络整理| 查看: 265

1.法线贴图的定义

法线贴图就是在原物体的凹凸表面的每个点上均作法线,通过RGB颜色通道来标记法线的方向,你可以把它理解成与原凹凸表面平行的另一个不同的表面,但实际上它又只是一个光滑的平面。对于视觉效果而言,它的效率比原有的凹凸表面更高,若在特定位置上应用光源,可以让细节程度较低的表面生成高细节程度的精确光照方向和反射效果。

用来进行凹凸映射。

凹凸映射的目的是使用一张纹理来修改模型表面的法线,以便为模型提供更多的细节。这种方法不会真的改变模型的顶点位置,只是让模型看起来好像是“凹凸不平”的,但可以从模型的轮廓处看出“破绽”。

有两种主要的方法可以用来进行凹凸映射:一种方法是使用一张高度纹理(height map)来模拟表面位移(displacement),然后得到一个修改后的法线值,这种方法也被称为高度映射(height mapping);另一种方法则是使用一张法线纹理(normal map)来直接存储表面法线,这种方法又被称为法线映射(normal mapping)。尽管我们常常将凹凸映射和法线映射当成是相同的技术,但要知道它们之间的不同。

3.种类

首先按照不同的坐标系得到了不同类型的法线贴图。模型顶点的法线根据所处坐标系的不同,在成图后表现也是不同的。

A、世界空间下的法线纹理world space normal map

一旦从贴图里解压出来后,就可以直接用了,效率很高.但是有个缺点,这个world space normal 是固定了,如果物体没有保持原来的方向和位置,那原来生成的normal map就作废了。

世界坐标下的顶点的法线是现成的,因此好用。不过如果进入模型在U3D里面进行了位置或者方向的转换,那么在没有转换矩阵的情况下,法线信息就是错误的,也就无法使用了。进一步思考如果场景中存在大量的静态模型,可以考虑用这个。

B、模型空间下的法线纹理object space normal map

对于模型顶点自带的法线,它们是定义在模型空间中的,因此一种直接的想法就是将修改后的模型空间中的表面法线存储在一张纹理中,这种纹理被称为模型空间的法线纹理(object-space normal map)。

对象空间的法线贴图,这个贴图中记录的法线信息是基于模型空间的,因此数值是相对的,这样模型在场景中是可以位移和旋转的,只要在计算的时候乘上对应的矩阵即可。而且从上面的图里可以看到贴图是彩色的,因为模型上的顶点法线在这个空间中是朝各个方向的。

对象空间的法线贴图比起世界空间的在使用了已经有了很大的进步,不过它仍旧有自己的局限性,就是这样的贴图还是依赖于模型本身。从其定义也可以看出来,它也是一种“绝对位置”。如果模型发生了形变,则这个贴图的信息就是错误的。从目前来看,我只能想到模型在场景中存在动画这个问题。

C、切线空间下的法线纹理 tangent space normal map

对于模型的每一个顶点,它都有一个属于自己的切线空间,这个切线空间的原点就是该顶点本身,而z轴是顶点的法线方向(n),x轴是顶点的切线方向(t),而y轴可由法线和切线叉积而得,也被称为副切线(bitangent, b)或副法线。这种纹理被称为是切线空间的法线纹理(tangent-space normal map)。

定义很好理解,从本质上讲切线空间的法线贴图解决了模型变形的问题。因为在另一个模型上的顶点的切线空间坐标系里面,法线贴图中的信息是可以使用的,它不依赖于模型本身、也不依赖于模型所处的坐标系。

以MAYA为例,法线贴图需要高模和低模配合,具体过程不说了,网上大把的视频。

重点是法线贴图的生成需要高模和低模,因为没有高模就不知道法线方向,没有低模,就不知道高模上某点的法线对应于低模上哪个点。

低模上的这个切线空间,也必须与高模上的坐标系切线空间。因为低模上的一个面,可能对应了高模上的几个面(精度高),按照新方法每个面都有一个局部坐标系,那对于低模上的每个面,高模因为存在好几个面,就会出现好几个局部坐标系,这肯定是不行的。所以高模所用的切线空间,就是低模上的。生成法线贴图,必定会确认高模上哪些面都对应低模上的哪个面,然后高模上的这几个面的法线,都会转换为低模这个面上所构建的切线空间的坐标。这样,当低模变形时,即三角面变化时,它的切线空间也会跟着变化,保存在贴图里的法线乘以低模这个面的切线空间到外部坐标系的转换矩阵即可得到外部坐标。顺便再提一点,高模保存的这个法线,是高模上object space里的法线。

4如何将高模的法线贴图用在低模上

对于模型空间法线,低模的模型空间坐标系与高模中的模型空间坐标系是重合的。所以不需要构建,所以低模上某点才能直接用高模的法线替换自己的法线。

如果需要下载软件或其他相关教程可以点击http://www.dcgart.cn/articles。

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有