`
wjlgryx
  • 浏览: 306695 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

法线贴图

阅读更多

本文转自:http://yumi08.jimdo.com/my-word/maya/%E6%B3%95%E7%BA%BF%E8%B4%B4%E5%9B%BE/

 

(法线贴图是一种显示三维模型更多细节的重要方法,它解算了模型表面因为灯光而产生的细节。这是一种2维的效果,所以它不会改变模型的形状,但是它计算了轮廓线以内的极大的额外细节。在处理能力受限的情况下,这对实时游戏引擎是非常有用的,另外当你渲染动画受到时间限制时,它也是及其有效的解决办法。)

(法线贴图不是什么新事物,但依赖与最新的显卡,它正变得越来越重要。要达到上图的效果,通过凹凸贴图也是很容易的事。但是,凹凸贴图仅仅解算在它相对于面投射方向的垂直偏移,新的方向是两个相邻像素之间高度差异的结果。法线贴图使用颜色来表述在其他方向的偏移,这使它更有效。它无需使用它相邻的像素来测定它的角度,一个单一的像素就足够了。法线贴图中的红色通道编码了法线的左右轴,蓝色通道编码了垂直深度。)

 

(这些创造了一幅漂亮的图片,但不幸的是你不大可能用手来绘制合适的图(跟凹凸贴图不同)。这意味着你不得不生成一张法线贴图,有好几种方法可以做到,你可以烘培它,渲染它,或是从一张凹凸贴图转换而来。)

 

 (原始物体和法线贴图物体)

(烘培)

 

 --------------------------------------------------------------------------------

 

(烘培是将源物体上的表面细节捕捉并转化到目标物体的过程。在烘培法线贴图的过程中,软件将比较两个表面,并测定目标表面哪里需要哪种颜色,以补偿两个物体形态间的差异。)

(烘培是通过从低多边形物体表面(也叫目标物体,因为它最终将接受法线贴图)投射光线到高多边形表面(即源物体)来进行的,光线的方向通过定点的法线来确定,他们能被投射到多个方向,向前或向后。如果你有一个平滑的表面(或是一个光滑组),法线将被平均化。当你有一个硬边缘的表面,法线方向是垂直于表面向上的。)

(源物体和目标物体要尽量靠近)(当你开始烘培时,需要意识到这是很重要的区别,当你的边是硬边是,对一个面而言,点的法线是指向不同的方向的,而不是指向它相邻的点的法线,这意味着在光线发射的过程中你得到了“盲点”。)

另一个需要注意的是,为了烘培出一张完整的贴图,每一个在烘培中包含进来单一的多边形都必须有自己独立的UV。不能出现UV重叠,因为软件不知道哪个面是你想用在解算中的,因而会一次性的绘制出来。)

(因为目标表面是一个大的,非常复杂的放射体,你需要处理它上面的每一个面,例如在那些uv投影反转的地方,会使图像凹进去而不是凸起来。通过察看目标网格上的一个面,比如窗户那里的面,你将可以看到在你源网格的每一个多边形或多或少的指向你的方向。如果源多边形和你的目光垂直相交,或是指向远离你的方向,此时是无法捕捉到法线贴图的。还有一个需要考虑的是对每个源多边形你需要看的足够大,这样才能获取足够的像素在法线贴图上定义它。)

(检察发射方向和表面细节的可见性。)

 

(渲染)

(另一种制作法线贴图的方法是渲染它)

(通过给一个表面指定法线材质,你可以渲染一个法线贴图出来。这个材质将在渲染时,从你摄像机的角度彩色化表面。这种方法无需使用源物体和目标物体,它是一种类似于制作纹理贴图的方法。你模型上表面细节就像你在PS里画的,从上到下,仅仅有轻微的方向变化,任何垂直与摄像机的多边形将是不可见的,在渲染中那里需要有轻微的空间上变化,就想纹理贴图一样。)

(转化一个高度/凹凸贴图)

(转换一张黑白图像可以通过在PS中使用Nvidia的PS插件来实现,这允许你绘制一行黑白图像并将其编码为一张法线贴图。对渲染方法而言这是一个相当简单的办法,但不适用于复杂的形体。但是你可以用这种方式来给烘培的法线贴图添加一些额外的细节,如表面纹理,缝纫,伤痕,杂点等等,如果你厌倦于建造小至1mm的每个细小东东的话。)

(一些烘培软件允许你在你的源物体上为了类似的细节赋予一个凹凸贴图,并带图烘培,这将得到一个更精确的多的结果。)

(你不得不惊讶于法线贴图能显示这类的细节。)

(你需要记住的一件事是,无论何时在ps中你修改了法线贴图,你需要在Nvidia插件中运行“normalize only”(仅规格化)选项。这样做的目的在于法线贴图需要被正确的计算以便正常发挥作用(这涉及到复合像素值的点乘,一些非常令人厌烦的技术,在此就不深究了)。)

(相切,物体空间和世界空间)

(通过法线贴图计算出的表面细节和偏移是总是相对于多边形的投影方向或是物体的自身轴向(物体空间)或是世界(世界空间)的。)

对实时游戏引擎来说,相切空间应该算是最有价值的,但也是最灵活的。它通过顶点法线所定义的方向察看每个目标面,然后根据来自法线贴图的信息通过补偿它来计算新的灯光效果。这是惟一一种能被用与可边形物体的法线贴图类型,例如被蒙皮和绑定骨骼的角色。它也允许你重复你的贴图或是重新使用其他地方的网格元素,旋转,扭曲他们直到你觉得合适为止。这是一个在你的法线贴图里添加更多纹理空间的好方式。)

(物体空间)

(一个物体空间的法线贴图,仅从整个模型的自身朝向检视物体,并据此解算在它表面的每个像素的方向。它非常适合没有变形的物体,例如枪炮,或是箱子。它允许你复制网格上的元素,就像你没有改变他们的朝向一样。)

(当一个物体空间的法线贴图告诉一个面,它被期望接受来自物体左边的光线,它就会这样做,即使这个面实际是指向光源的。)

 

(世界空间)

 

(世界空间法线贴图适用于那些既不移动也不变形的东西,比如世界环境)

 

 

(因为这不是一个角色建模的教程,所以我将不描述建造高模的过程,但我可以给你一个小提示,这将对你建模时的一些小细节有所帮助。这样你可以将手中每个物体的多边形限制在一定数量,当你总的多边形数量达到50万时,场景就变的不可绘制了。考虑到生成法线贴图的目的,你甚至无需将几个构成组件合并焊接起来,就像它们本身是无缝的一样。)

(我以一个游戏模型中的粗糙的低多边形开始(低是相对而言的,因为它是被用于次世代平台的,它们能轻易处理6000-8000个多边形的角色模型,不管如何,它们都比源网格低,所以这里说低多边形依然是恰当的。)

(制作一个低多边形的版本能帮你开始,你能从中了解你要的细节究竟在哪里,你要如何在烘培中获取它们。)

(这当然并不是一个规则,只要结果是好的,任何方法都是正确的。)

(然后我细分了组织器官,例如手臂和腿,并开始处理它们。

 

(现在是时候开始烘培了,有趣的是并没有许多法线贴图烘培插件开发出来。对于maya,有海龟的表面变换编辑器(Surface Transfer Editor ,我一直都用它,和maya自带的工具(这个就用的少了),还有 Microwave ,这个效果也不错。max7开始,就自带了相当好的法线贴图工具,还有独立的法线贴图软件,比如Cry Tek’s Polybump 以及ATI的法线贴图工具。)

(毫无疑问,其他所有的大型三维软件包对此都有自己的解决方案,但是因为我对它们没什么了解,所以我就不推荐任何东西了。)

 

最终得到的角色的相切空间的法线贴图最终得到的角色的相切空间的法线贴图

分享到:
评论

相关推荐

    法线贴图转换工具

    法线贴图转换工具是一款专为游戏开发和3D建模设计的专业软件,它简化了法线贴图的创建和转换过程。法线贴图是一种用于在3D模型上模拟光照效果的技术,通过在2D纹理中存储表面的法线方向信息,可以使得低多边形模型...

    法线贴图的创建和烘培

    ### 法线贴图的创建与烘培:深入解析与实践指南 #### 一、引言:法线贴图在3D模型中的革命性应用 在3D图形领域,法线贴图技术作为一项关键的技术革新,极大地提升了视觉效果的真实感与细节层次,尤其是在资源受限...

    openGL法线贴图原理以及实现方法

    2.为了理解法线贴图的工作原理,我们首先注意,向量通过3 字节存储,X、Y 和Z 分量 各占1 字节,就可以达到合理的精度。 3.这样,我们就可以将法向量存储在彩色图像文件中, 其中R、G 和B 分量分别对应于X、Y 和Z。...

    法线贴图软件.rar

    法线贴图是一种在3D图形处理中广泛使用的技术,用于增强模型表面的细节和质感,使其看起来更接近真实世界。这种技术的核心在于利用一种特殊的2D纹理——法线贴图,来模拟3D物体表面的凹凸感,而无需实际增加模型的...

    Photoshop法线贴图插件

    Photoshop法线贴图插件是一款专为Adobe Photoshop设计的扩展工具,主要用于游戏开发、3D建模和视觉效果等领域。在3D图形处理中,法线贴图是一种技术,可以将高细节度的模型表面信息编码到二维纹理中,然后应用于低...

    【猫猫的Unity Shader之旅】之法线贴图的运用

    本篇文章将深入探讨“法线贴图”的概念及其在Unity Shader中的应用。法线贴图是一种增强3D模型表面细节的技术,通过在2D纹理中存储每个像素的法线方向信息,来模拟复杂的表面照明效果,而无需增加过多的多边形。 ...

    Photoshop_Plugins_8.23.1101.1715法线贴图插件.rar

    这款名为"Photoshop_Plugins_8.23.1101.1715法线贴图插件"的压缩包,显然是为了解决Photoshop原生不支持法线贴图的问题,为用户提供了方便的功能扩展。 法线贴图的工作原理是利用颜色编码来表示物体表面的法线方向...

    Unity3D教程:法线贴图2

    法线贴图是一种在3D图形渲染中广泛使用的技术,特别是在Unity3D游戏引擎中,它能够极大地提高模型的视觉效果,同时降低性能开销。本篇教程将深入讲解法线贴图的工作原理、实现方式以及在Unity3D中的应用。 首先,...

    法线贴图normal mapping

    法线贴图(Normal Mapping)是一种在三维图形渲染中广泛使用的增强表面细节的技术,它能够为模型赋予更丰富的视觉效果,而无需增加额外的几何细节。这种技术通过使用一张特殊的纹理——法线纹理,来模拟物体表面的...

    18.1为什么要使用法线贴图映射1

    法线贴图映射是一种在3D图形渲染中增加表面细节的技术,它可以在不增加几何顶点数量的情况下,显著提升模型的视觉真实感。在第8章中,我们了解到纹理贴图映射能够将图像细节应用到物体表面,但这种方法并不改变物体...

    UnityShader 法线贴图(Normal Map)与视差贴图(Parallax Map)

    法线贴图是一种存储了表面法线方向的纹理,通过颜色的不同来表示物体表面的高低起伏。蓝色代表向上,红色和绿色代表左右。在光照计算时,引擎会根据法线贴图调整光源对物体表面的影响,使得平滑的表面呈现出复杂的...

    ps法线贴图插件(QuixelnDo2)v1.1.9官方特别版

    Quixel nDo2是一款强大的PS法线插件,可以快捷地生成法线贴图,它提供多项微调参数,和预置参数模板,并且能以3D模式实时展示效果,是制作法线贴图的神器,各方面综合能力要比CrazyBump优秀得多! 安装方法: 1....

    法线贴图的创建和烘焙

    ### 法线贴图的创建和烘焙:深入解析与实践指南 #### 法线贴图:数字艺术中的魔术师 法线贴图是一种在三维图形渲染中常用的纹理映射技术,它通过模拟高精度模型的光照效果,使低分辨率模型看起来具有复杂的表面...

    UnityShader 浮雕凹凸贴图BumpMap与法线贴图NormalMap的原理及其区别

    在3D图形渲染领域,Unity Shader的浮雕凹凸贴图(BumpMap)和法线贴图(NormalMap)是两种重要的技术,用于提升模型表面的细节感和真实感。这两种贴图方法都用于模拟物体表面的微小不平,从而在视觉上增加深度和复杂...

    DDS和转法线贴图插件安装

    DDS文件可以存储多种数据类型,包括颜色信息、法线贴图、高度图等,它能有效地减少内存占用和磁盘空间,同时保持图像质量。 "DDS和转法线贴图插件安装"指的是在Adobe Photoshop中安装能够处理DDS文件和转换法线贴图...

    法线贴图.zip

    这个是一个在学习完法线贴图之后写的一个小demo 里面的地方有注解

    模型法线贴图

    文件标题“模型法线贴图”直接指向了游戏开发中的一个关键概念,即如何在3D模型上应用法线贴图以增加表面细节的视觉深度。描述部分讲述了《合金装备4》(Metal Gear Solid 4: Guns of the Patriots,简称MGS4)的...

    法线贴图(Normal mapping)演示程序

    法线贴图(Normal Mapping)是一种先进的图形技术,用于在3D模型上模拟更复杂的光照效果,即使模型本身没有那么多的几何细节。这种技术通过在2D纹理中存储每个表面的法线方向来实现,从而在低多边形模型上产生高...

    Maya法线贴图的几种烘焙方法

    Maya法线贴图的几种烘焙方法 Maya法线贴图的烘焙方法可以分为两种:一种是使用MAYA自身的高模烘培法线贴图到低模上面,还有一种是从ZB里面导出法线贴图。下面将详细介绍使用MAYA里面的接点式烘培法线贴图的方法。 ...

    (完整版)Photoshop-制作法线贴图.doc

    Photoshop 制作法线贴图的方法和技术 在 Photoshop 中制作法线贴图是一种常见的技术,用于生成高质量的法线贴图以便在 3D 模型中使用。本文将详细介绍如何使用 Photoshop 制作法线贴图,并提供了一些实用的技术和...

Global site tag (gtag.js) - Google Analytics