论文部分内容阅读
摘要:法线贴图(Normal Mapping)是三维设计中最常用的工具之一,被广泛使用在动画、影视和游戏等多个领域之中,是增加材质表面细节的重要方法。美术人员只需针对同一个模型制作一个高模和一个低模,烘焙出一张法线贴图,在游戏中使用低模+法线贴图即可。
关键词:渲染、三维、法线、贴图、Normal、Mapping
法线贴图(Normal Mapping)是三维设计中最常用的工具之一,被广泛使用在动画、影视和游戏等多个领域之中,是增加材质表面细节的重要方法。法线贴图是在原物体的凹凸表面的每个点上均作法线,通过RGB颜色通道来标记法线的方向,你可以把它理解成与原凹凸表面平行的另一个不同的表面,但实际上它又只是一个光滑的平面。对于视觉效果而言,它的效率比原有的凹凸表面更高,若在特定位置上应用光源,可以让细节程度较低的表面生成高细节程度的精确光照方向和反射效果。
在三维计算机图形学中,法线贴图(英语:Normal mapping)是一种模拟凹凸处光照效果的技术,是凸凹贴图的一种实现。法线贴图可以在不添加多边形的前提下,为模型添加细节。常见的使用场景是为低多边形模型改善外观、添加细节,此时的法线贴图一般根据高多边形模型或高度贴图生成。法线贴图通常以普通RGB图像的形式存储,其中的R、G、B分量分别对应法线的X、Y、Z坐标。法线贴图有时也称为“Dot3(仿立体)凸凹纹理贴图”。凸凹与纹理贴图通常是在现有的模型法线添加扰动不同,法线贴图要完全更新法线。与凸凹贴图类似的是,它也是用来在不增加多边形的情况下在浓淡效果中添加细节。但是凸凹贴图通常根据一个单独的灰度图像通道进行计算,而法线贴图的数据源图像通常是从更加细致版本的物体得到的多通道图像,即红、绿、蓝通道都是作为一个单独的颜色对待。法线贴图通常有两个变体,即物体空间与tangent-space法线贴图,它们的不同之处在于法线测量与储存所用坐标系统。
这项技术的一个有趣的应用是使用高分辨率模型的法线贴图表大幅度地提高low poly低面模型的显示效果。尽管这种利用该分辨率模型细节创建位移贴图取代非均匀有理B样条的方法早在1996年由Krishnamurthy与Levoy在Proc. SIGGRAPH 1996的文章“在密集多边形网格上使用光滑曲面”中已经提出,但是直到后来才开始用到更加普通的三角形网格。1998年另外两篇论文提出了从高分辨率向低分辨率多边形网格转换细节作为法线贴图的论文:Cohen et al.在SIGGRAPH 1998的“保留外观的简化”以及Cignoni et al. IEEE Visualization ’98在“在简化的网格上恢复属性值的通用方法”。第一篇论文提出了一个特殊的约束简化算法,在化简过程中跟踪如何将丢失的细节映射到简化的网格。第二篇论文提出了分离高低精度多边形网格的简单方法,以及不受低精度模型构建方法影响的丢失细节恢复方法。后一种方法及其变体目前仍然是目前大多数可用工具使用的方法之一。
在制作3D游戏时,我们常常遇到这样一个问题:一个平面,这个平面在现实中并不是一 个“平”面,例如砖墙的表面带有石质浮雕等等。这种情况下如果只是简单的做一个平面,则让人感觉严重失真。而如果用很密集的三角形去表示这类略有凹凸的表面,则性能上大大下降。研究人员发现,人眼对物体的凹凸感觉,很大程度上取决于表面的光照明暗变化,如果能通过一张贴图在一个平面上表现出由凹凸造成的明暗变化,则可以让人眼感觉这个平面是凹凸不平的(虽然这个平面还是平的)。法线贴图正是为了这个目的而产生的。准确的说,法线贴图是Bump Mapping(凹凸贴图)的其中一种。第一个Bump Mapping由Blinn在1978年提出,目的是以低代价给予计算机几何体以更丰富的表面信息。30年来,这项技术不断延展,尤其是计算机图形学成熟以后,相继出现了不少算法变体,法线贴图就是其中很重要的一种。法线贴图中存储的法线最初是定义在世界空间中,但在实际中,这种方式很少见,因为只要物体移动,法线贴图则不再有效。另一种方式就是将法线存储在物体的局部空间中,物体可以进行刚体变换(平移,旋转,缩放),法线贴图依旧有效,但是这种方法并不能应对任何方式的变换,并且法线贴图不能在不同物体进行复用,增加了美工的负担。所以,现在现在普遍采用的解决方案是将法线存储在切线空间中。
简单的来说,切线空间可以理解为纹理空间的u,v方向和法向量n,这3个方向构成了切线空间,一般使用T、B和N表示。
在三维设计的制作流程中,法线贴图经常由高低模的烘焙产生。通过对比高模和低模的差异,生成法线贴图,在运行时使用法线贴图+低模即可表现出接近高模的效果,但是大大降低了显卡的负担。计算法线贴图的算法在常见的三维软件已经普及,美术人员只需针对同一个模型制作一个高模和一个低模,烘焙出一张法线贴图,在游戏中使用低模+法线贴图即可。当然法线贴图也不是万能的,它也有它的缺点。因为它只是改变了物体表面的光照计算方式,所以它不適合用在凹凸起伏较大的物体上,这些物体会有遮挡的效果,这是法线贴图无法实现的。这种情况我们通常可以通过置换贴图去实现。
综上所述,在三维制作流程中,法线贴图(Normal Mapping)在节约计算资源的前提下,为我们提供了一种增加材质细节的方法,可以在使用低模时模拟高模的渲染效果,在次世代游戏和影视动画的渲染中都有广泛的应用领域,值得我们深入研究和使用。
参考文献:
[1] Krishnamurthy V , Levoy M . Fitting smooth surfaces to dense polygon meshes[C]. Proceedings of the 23rd annual conference on Computer graphics and interactive techniques,1996.
关键词:渲染、三维、法线、贴图、Normal、Mapping
法线贴图(Normal Mapping)是三维设计中最常用的工具之一,被广泛使用在动画、影视和游戏等多个领域之中,是增加材质表面细节的重要方法。法线贴图是在原物体的凹凸表面的每个点上均作法线,通过RGB颜色通道来标记法线的方向,你可以把它理解成与原凹凸表面平行的另一个不同的表面,但实际上它又只是一个光滑的平面。对于视觉效果而言,它的效率比原有的凹凸表面更高,若在特定位置上应用光源,可以让细节程度较低的表面生成高细节程度的精确光照方向和反射效果。
在三维计算机图形学中,法线贴图(英语:Normal mapping)是一种模拟凹凸处光照效果的技术,是凸凹贴图的一种实现。法线贴图可以在不添加多边形的前提下,为模型添加细节。常见的使用场景是为低多边形模型改善外观、添加细节,此时的法线贴图一般根据高多边形模型或高度贴图生成。法线贴图通常以普通RGB图像的形式存储,其中的R、G、B分量分别对应法线的X、Y、Z坐标。法线贴图有时也称为“Dot3(仿立体)凸凹纹理贴图”。凸凹与纹理贴图通常是在现有的模型法线添加扰动不同,法线贴图要完全更新法线。与凸凹贴图类似的是,它也是用来在不增加多边形的情况下在浓淡效果中添加细节。但是凸凹贴图通常根据一个单独的灰度图像通道进行计算,而法线贴图的数据源图像通常是从更加细致版本的物体得到的多通道图像,即红、绿、蓝通道都是作为一个单独的颜色对待。法线贴图通常有两个变体,即物体空间与tangent-space法线贴图,它们的不同之处在于法线测量与储存所用坐标系统。
这项技术的一个有趣的应用是使用高分辨率模型的法线贴图表大幅度地提高low poly低面模型的显示效果。尽管这种利用该分辨率模型细节创建位移贴图取代非均匀有理B样条的方法早在1996年由Krishnamurthy与Levoy在Proc. SIGGRAPH 1996的文章“在密集多边形网格上使用光滑曲面”中已经提出,但是直到后来才开始用到更加普通的三角形网格。1998年另外两篇论文提出了从高分辨率向低分辨率多边形网格转换细节作为法线贴图的论文:Cohen et al.在SIGGRAPH 1998的“保留外观的简化”以及Cignoni et al. IEEE Visualization ’98在“在简化的网格上恢复属性值的通用方法”。第一篇论文提出了一个特殊的约束简化算法,在化简过程中跟踪如何将丢失的细节映射到简化的网格。第二篇论文提出了分离高低精度多边形网格的简单方法,以及不受低精度模型构建方法影响的丢失细节恢复方法。后一种方法及其变体目前仍然是目前大多数可用工具使用的方法之一。
在制作3D游戏时,我们常常遇到这样一个问题:一个平面,这个平面在现实中并不是一 个“平”面,例如砖墙的表面带有石质浮雕等等。这种情况下如果只是简单的做一个平面,则让人感觉严重失真。而如果用很密集的三角形去表示这类略有凹凸的表面,则性能上大大下降。研究人员发现,人眼对物体的凹凸感觉,很大程度上取决于表面的光照明暗变化,如果能通过一张贴图在一个平面上表现出由凹凸造成的明暗变化,则可以让人眼感觉这个平面是凹凸不平的(虽然这个平面还是平的)。法线贴图正是为了这个目的而产生的。准确的说,法线贴图是Bump Mapping(凹凸贴图)的其中一种。第一个Bump Mapping由Blinn在1978年提出,目的是以低代价给予计算机几何体以更丰富的表面信息。30年来,这项技术不断延展,尤其是计算机图形学成熟以后,相继出现了不少算法变体,法线贴图就是其中很重要的一种。法线贴图中存储的法线最初是定义在世界空间中,但在实际中,这种方式很少见,因为只要物体移动,法线贴图则不再有效。另一种方式就是将法线存储在物体的局部空间中,物体可以进行刚体变换(平移,旋转,缩放),法线贴图依旧有效,但是这种方法并不能应对任何方式的变换,并且法线贴图不能在不同物体进行复用,增加了美工的负担。所以,现在现在普遍采用的解决方案是将法线存储在切线空间中。
简单的来说,切线空间可以理解为纹理空间的u,v方向和法向量n,这3个方向构成了切线空间,一般使用T、B和N表示。
在三维设计的制作流程中,法线贴图经常由高低模的烘焙产生。通过对比高模和低模的差异,生成法线贴图,在运行时使用法线贴图+低模即可表现出接近高模的效果,但是大大降低了显卡的负担。计算法线贴图的算法在常见的三维软件已经普及,美术人员只需针对同一个模型制作一个高模和一个低模,烘焙出一张法线贴图,在游戏中使用低模+法线贴图即可。当然法线贴图也不是万能的,它也有它的缺点。因为它只是改变了物体表面的光照计算方式,所以它不適合用在凹凸起伏较大的物体上,这些物体会有遮挡的效果,这是法线贴图无法实现的。这种情况我们通常可以通过置换贴图去实现。
综上所述,在三维制作流程中,法线贴图(Normal Mapping)在节约计算资源的前提下,为我们提供了一种增加材质细节的方法,可以在使用低模时模拟高模的渲染效果,在次世代游戏和影视动画的渲染中都有广泛的应用领域,值得我们深入研究和使用。
参考文献:
[1] Krishnamurthy V , Levoy M . Fitting smooth surfaces to dense polygon meshes[C]. Proceedings of the 23rd annual conference on Computer graphics and interactive techniques,1996.