法线贴图的创建和烘培
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.介绍
在这个教程中我将讲解一些烘培和创建法线贴图技术,这个技术现在使用非常普遍,特别是游戏制作中。
我将使用的软件
ZBrush2:可以从高模烘培法线贴图,虽然现在有ZBrush3.1可以使用,但是在烘培法线的功能上是和 2.0版本相同的,我将使用ZMapper插件来烘培贴图,这插件你可以从Pixologic站点免费下载。
3D studio max:我将使用这个程序制作低模和展UV,并且将低模以obj导出。Photoshop CS2:我将使用它创建和编辑烘培的法线贴图。
2.什么是法线贴图
法线贴图可以创建出比真正的模型更多几何体的假像,和置换贴图一样法线贴图并不能真的影响低模的几何网格。所以,如果我们的低模非常的简单和尖利,那么法线贴图将起不了作用。下图是一个高模平面模型和一个赋予了法线贴图低模平面模型的区别。
这个简单的例子显示了法线贴图是怎么作用的。
下图显示了法线贴图的通道构成
法线贴图的整体效果就在它的RGB通道,特别是在R和G通道,这两个通道往往定义了X和Y的烘培参数。如果在3Dmax或是其它3D软件(或是实时)的引擎中不能正常显示法线贴图,往往是因为引擎在解释R和G通道的错误造成的。这时你需要在烘培贴图之前交换两个通道(你也可以在Photoshp交换烘培后的法线贴图的通道)
我们将使用ZMapper来烘培法线贴图,这是一个免费的ZBrush插件有大量的预设参数供我们正确选择使用。
3.一个好的开始
在我们开始创建一个拥有大量细节的高模之前,为模型进行一些规划是非常好的主意,举例来说:如果模型有一些比较大元素象是大口袋,大块肌肉或是更大的皱痕我们就要增加一些多边形在低模。因为正如我前面所说法线贴图不会改变我们的低模,如果不为比较大的元素增加多边形,从某些摄象机角度看这些元素将看上去非常的平。这就是为什么我们要在雕刻高模之前规划模型。
而最好的办法是:在开始之前绘制详细的概念设计图,或者至少绘制一个简单的素描。在下图你可以看到,低模虽然只是一个很简单的几何体,但是已经拥有一些高模的特征。
我们还要记住,最好的法线贴图同时也可以成为很好的色彩贴图,最好的效果是,颜色、法线、高光贴图在低模上完美的匹配。
我们必须记住的关于低模的一些事情
在创建低模时,我们常常试图使用更少的面,为此我们简化了一些元素如牙齿、角、耳朵等,
这样的模型在烘培法线贴图时会导致无数的错误。所以在一些地方使用更多的面避免错误比后来在Photoshop中设法修正法线贴图更好。在下面的图中你可以看到,简化几何模型是怎么影响法线贴图的。两个模型的法线贴图都是同一个高模使用Zmapper投影得到的。
比较小的错误我们能够将它们隐藏在色彩贴图下,但如果是比较大的就很难隐藏了。在我们的低模上很可能会出现很多有问题的地方。例如手的两个手指之间的位置。在导入到ZBrush 之前我们可以将手指拉开一点来避免问题。
其它容易有问题的位置:所有锋利的锥体或者是多边形尖角。
在雕刻高模时我们要避免在模型表面创建垂直的变形和细节,就好象是显示在屏幕的下面。高模的垂直细节在法线贴图上表现出来的是暗色的点,而正确的显示应该是红色和暗蓝色。
准备导出模型
在我们将模型导出到ZBrush之前,我们要按下面的要点准备网格模型。
在通常情况下低模的一些位置由三边面组成,而我们要使用的网格尽量只包含一种边面而且
尽可能包含四边面。所以,我们需要为未来的工作做些计划,在模型的一些位置增加更多的细节。虽然现在我们新一代硬件允许低模有额外的三边面,但模型还是需要尽量的规则。既使我们的模型是规则的并且包含的主要是四边面,在导出到ZBrush并细分几次后仍然可能失去它的大致外形。
要解决这个问题,我们可以在ZBrush中重塑模型或者在导出模型之前在3Dmax中使用tessellate修改器,这个修改器不会破坏我们的UV坐标,并且在ZBrush中进行细分之后模型将保持它低模时的外形。
这里有一些我使用的tessellate修改器的参数。
另一个方法是在ZBrush中第二次细分时关闭细分模型的平滑参
数,然后到第三次细分时在重新打开。
万不要出现下图的情况。
如果我们没有保持所有元素在主映射区域,当我们使用ZMapper烘培法线贴图时将看到下面的信息:
有的时候我们在其它软件里制作了高模的第一部分,然后在
ZBrush中增加了细节,接着要烘培法线贴图贴图。这时高模不需要手动展开UV,最容易的方法是使用ZBrush的自动映射(AUV tiles或者是GUV tiles),如下图你可以在TOOL>>Texture找到它们。
放置一些展开的元素在主映射区以外有更重要的目的:这是因为即使我们能使用4096x4096的贴图尺寸,当创建高分辨率渲染时我们的法线贴图分辨率也显得低了。可是如果我们采用下图的方法,我们能够为同一个模型烘培三张不同的贴图,而且每一张的分辨率都有4096x4096(在ZBrush3中是8000x8000)
在导入模型到ZBrush后,在TOOL>>Polygroups打开UV GROUPS,结果如下图那样,模型被划分为不同的组。
当我们开始烘培法线贴图前我们需要选
择其中一个组(按下Ctrl+Shift加鼠标
左键),如果我们不这么做ZBrush也会显
示信息提示我们这样做。为一个组烘培贴
图后,我们使用相同的方法为另外的组烘
培法线贴图。最后我们得到一个模型的三
张不同法线贴图(每一张都有
8000x8000)。
如果你需要我们能够为每个模型烘培超
三张的法线贴图。
现在我们得到合适的导入和导出的格式。
在这个ZBrush例子中,这里我们能使用两种格式导入模型:obj和dxf,但是在实际工作中我们只使用obj,因为dxf格式不能保存贴图坐标。obj是一种非常受欢迎和普遍的格式,所以大多数3D软件都能导出模型为obj。下面我们看看从3d max导出的参数: