3ds max 6烘焙优化教程
来源:
作者:
时间:2007-12-28
点击:
| 【前言】 |
|
|
|
看过入门教程后,相信您对VRP一定有了些初步的概念。在粗略地从三维模型建立到实时交互 场景生成演示的全过程中,您可能已经意识到:有了VRP,制作虚拟现实场景已经不再是个难题,画面效果好坏的关键也不再是实时软件,仍然取决于传统的非实 时三维软件,又回到了您早已熟知的3ds max。而重点就是烘焙工具。
接下来我们着重介绍烘焙工具的使用,以及提高烘焙质量等相关问题。如我们所 知,3ds max的烘焙工具或插件有很多,有从5.0版本开始加入的烘焙工具Render To Texture,有插件FinalRender提供的tBaker,还有VRay带来的Bake3D等等。这些都可以完成纹理烘焙的工作并被高效地应用到 VRP中间去。
在下面的教程里我们就来进一步讲讲3ds max 6.0自带的Render To Texture。3ds max 6.0版本的烘焙工具相对5.0版本作了一定的改进,面板排步的顺序作了些调整,并添加了一些实用的功能,我们会在下面详细向您介绍。这里我们只挑选了其 中比较重要的参数进行讲解,对于其它参数您可以参看3ds max的手册或其它相关书籍。如果您使用的是3ds max 5,就可以参阅我们提供的另一篇教程:《3ds max 5优化烘焙教程》。
该教程的实例文件位于: [VRPlatform目录] \ samples\ 3ds max 6-tut-01 \ 包括了max6场景模型,和vrp工程文件。
|
| |
|
|
| 【目录】 |
|
|
|
|
| 【教程详解】 |
| 烘焙纹理并导出 |
|
|
|
打开场景
|
|
|
|
打开本教程所提供的max场景angel-max6.max。灯光、材质、相机、渲染参数等已经设置好。如下图。
|
|
|
|
使用默认参数烘焙并导出
|
|
|
|
接下来的工作就是烘焙,烘焙步骤完全按照入门教程里介绍的进行,在此不再重复。 本例使用CompleteMap作为烘焙类型,烘焙类型Light Map的使用方法跟CompleteMap是完全一样的,唯一要注意的是Light Map纹理对应的Target Map Slot必须是Self-Illumination。烘焙完毕并导出至VRP-Builder,结果如下图。 默认参数如被更改,请参照入门教程中的参数进行调整。
我们看到导出的效果并不理想。小天使的脸上、鼻翼、翅膀等部位出现了不同程度的黑斑。这是因为在烘焙时没有对一些参数作调整造成的。原因之一是:当物体被烘焙时首先会被烘焙工具进行UV平铺,而平铺的质量会直接影响到烘焙的质量。
|
|

|
| |
|
|
| 调试烘焙参数 |
|
|
|
新增功能
|
|
|
|
回到3ds max,打开Render To Texture面板,选择需要烘焙的物体。3ds max 6.0在这里作了一个改进,当需要对单个物体分别设置不同的纹理名称、格式,指定烘焙纹理各自的大小或其它参数的时候,完全不必象在3ds max 5.0里逐一选择物体,可以先全选或多选场景中的物体。
选完后Objects to Bake栏里将出现这些物体的名称。在该栏下面有三个选项,分别是Individual(个别的)、All Selected(所有被选择的)、All Prepared(所有已准备好的)。默认的是All Selected,此时Render To Texture中的所有参数的修改是针对所有被选物体的。改选第一项Individual,可以看到被选物体名单中第一个物体被激活,我们可以在这里分别选择物体。 第三项是用于烘焙所有已经设置完毕的物体,在此不用多说,下面重点演示前两种方式。
先选用默认的第二项All Selected,通过在Output栏中点击Add可以添加任何烘焙纹理的纹理类型。但无论添加哪一种,在下面的Selected Element Common Settings中File Name and Type都是灰色的,不可调节。这时它使用的是3ds max默认的文件名和文件格式TGA。
改用第一项Individual,在Objects to Bake栏里选择一个物体,File Name and Type被激活,这样就可以更改该物体烘焙的纹理名称和格式了。
对于文件名称我们不建议对它进行修改,文件格式可以在VRP支持的类型中按需更换。VRP支持包括BMP,JPG,PNG,TGA,DDS等众多图像格式,完全能够满足各种需要。
这两个选项的区别在于Individual可以对每个物体的烘焙参数进行单个调节,而All Selected可以同时设置烘焙参数并且同时烘焙以提高烘焙的效率,减少重复操作。
您可以根据自己的实际需要来使用其中一种方式,在本例中我们不必修改物体各自的烘焙参数或文件格式,因此我们切换回All Selected状态,并添加好烘焙类型CompleteMap。
|
|

|
|
调节参数
|
|
|
|
全选所有物体,修改General Settings全局设置栏里的第二项Automatic Unwrap Mapping。将Threshold Angle的值改为60。
这 个参数可以调节自动平铺UV纹理的角度域,提高它可以让更多的多边形片面放置在同一个簇里。增大平铺的簇从而减少平铺簇的碎片。由于渲染精度有限,过小的 碎片渲染时会被忽略掉,这样就会出现黑斑。但Threshold Angle也不能过高,过高会造成多边形过度扭曲引起失真,出现图像拉伸的情况,具体介绍和其它参数大家可以参看3ds max的手册或其它相关书籍。
改完后再次烘焙。
|

|
|
再次烘焙
|
|
|
|
再次烘焙时由于保存路径中已经存在上一次烘焙的纹理文件,所以会弹出提示,如右图。可以勾选Don’ t show again,表示以后再遇到纹理重复的时候不再需要提示了,这样可以减少工作量。当多个物体同时烘焙时,它能自动覆盖掉以前的重复文件而不用停下来等候您的指示。
这时 自定义烘焙文件输出路径所带来的便利就体现出来了,由于针对每个项目设置专门烘焙纹理保存目录,所以它就不会把其它项目中同名物体烘焙的图给替换掉。然后按Overwrite Files继续进行。
|
|

|
|
烘焙完毕后导出查看结果如下图。这次的效果要好很多,黑斑基本上没有了,不过并没全部去除,而且纹理依然显得很模糊。这时再调 节Threshold Angle就不管用了。我们来调另一项参数。
|
|

|
|
进一步调节参数
|
|
|
|
众所周知,纹理图越大渲染的效果就越好。烘焙纹理也是一样。烘焙纹理的大小直接影响最终效果。
Render To Texture里默认大小是256×256。我们将它改成512×512,如右图。
大 家也同样知道,纹理越大,对计算机系统资源的消耗也越大,渲染也会变得很慢,因此我们只能适当地选择,在一个复杂场景中我们要有计划地将重要的,表面积比 较大的,多边形面复杂的优先考虑用较大的纹理,次要的其它的物体可以适当降低它们的纹理面积以节约有限的系统资源,找到它们的平衡点来获得高质高效的结 果。
再次烘焙,导出看效果。这次的结果就可以了。如下图,黑斑看不到了,纹理也清晰了。
|

|
|

|
| 其它注意事项 |
|
|
|
关于手动调节
|
|
|
|
当然,还有更多的方法能让烘焙的纹理质量更好,手动编辑物体的UV平铺参数也是一 种不错的方式。自动UV平铺从操作上来说是非常便捷的,但它的平铺结果总不能让人很满意,簇与簇之间的间隙虽然可以通过Render To Texture面板General Settings全局设置栏里的Spacing参数进行调节,如右图。
但并不能从根本解决问题,烘焙后就结果可以看出,纹理图的很多空间被浪费了, 如下图。
|

|
|
|
|
而且当物体多边形很复杂且非常细小时,总是不可避免的产生一些过小的簇,这些簇在烘焙时常常被忽略,造成最终的黑块黑斑。通过手工调节就可以解决这一问题,并能有效地合理地利用面积有限的烘焙纹理图。
点选需要修改的物体,进入修改命令面板,编辑Automatic Flatten UVs堆 栈。编辑方式跟3ds max的Unwrap UVW命令是一样的。建议您参看3ds max的手册或其它相关书籍。要注意的是,修改完后回到Render To Texture面板,不要再改动Automatic Unwrap Mapping栏中的任何参数,或者将其先关闭后再进行烘焙。否则烘焙工具会重新对物体进行自动平铺,这样,辛辛苦苦手动调节的工作就白干了。如图。
|
|

|
|
关于纹理通道
|
|
|
|
还有一点值得注意的是纹理通道Map Channel。烘焙设置面板里的Map Channel就是烘焙纹理所在的通道。UV自动平铺工作将在这一通道中完成,最终确立烘焙纹理的纹理坐标。一个物体可以有多个通道,而且每个通道都可以 设置一个独立的纹理坐标,这些坐标可以相同也可以不同。在范例中我们使用的是默认值3,一般情况下我们不需要改变它,但如果您在烘焙之前已经对该物体设置过其它的纹理通道,那就一定要注意各个通道之间的关系,不能让它们发生冲突。纹理图如果放置在错误的贴图纹理通道内就有可能出现贴图错误,如下图。
|
|

|
| |
|
|
| 总结 |
|
|
|
最后总结一下,烘焙能把在非实时环境中渲染完成的灯光材质等效果转换到实时交互的环境中去,因此烘焙纹理的质量直接影响最终效果,提高烘焙技术非常重要。而影响烘焙质量的有几个因素:
1. 物体的UV平铺。烘焙选项Automatic Unwrap MappingUV能自动将物体的UV进行平铺。自动的,成批量的平铺是它带给我们最大的好处,但其效果往往不好,多边形面细密的物体在被自动平铺时会产 生很多非常小的簇,渲染时受精度影响会忽略掉过小的簇,结果出现了很多黑斑黑块。解决它的方法一是适当提高Threshold Angle值,可以在一定程度上减少零散的簇,二是使用其它的UV平铺方法或工具,比如手工对簇进行调节,效果也会好很多。不过手工调节确实是一件耗费时 间和精力的事情,对于速度和质量的平衡只有大家在实际工作中去把握了。当然,使用其它方便快捷的平铺工具或插件或许能得到更好的结果。
2. UV簇在烘焙纹理中的面积。纹理的大小是有限的,簇的面积越大,空隙越少,利用率越高,纹理的相对精度也就提高了。降低Render To Texture面板General Settings全局设置栏里的Spacing参数固然能够减小簇间的间隙,但从根本改善的方法仍是手工调节或使用其它工具或方式。
3. 纹理大小。默认大小是256×256,对于次要的较小的物体是够了,但重要的,大体积的物体就需要高精度纹理了,要使用512×512甚至1024× 1024或更高。精度提高,文件量也随之急剧增长,但设备资源有限,巨大的纹理虽然让画面质量提高了,但无法进行流畅的交互也是惘然。VRP对纹理大小原 则上没有限制,完全取决于用户的硬件设备,而且还提供了高效的纹理压缩方案,可以在硬件设备不足的情况下提供合适的解决方案,但考虑到各方面的兼容性,我 们建议不要超过1024×1024。
3ds max烘焙对模型是有一定的要求的,比如它不支持NURBS物体,自动平铺时对过于细小的面容易出错产生黑斑或图像扭曲拉伸等等。这些要求我们在建模初期 就要作必要的处理,尽量避免过于密集地分布多边形,避免过于狭长的多边形,以便烘焙工作能高质高效地完成而不必做过多的调整。
| |
| 【结束语】 |
|
有一点需要指出,烘焙纹理只是作为创造好效果高品质纹理的一种方式,脱离烘培工具使用其它方式方法绘制的纹理贴图VRP同样是兼容的。VRP会极尽全力地兼容更多的绘制纹理和改善纹理质量的方式或工具,我们的目标就是让您的工作更简单更轻松。
|
|
图腾CG联盟免责声明:本网站转载纯粹出于为网民传递更多信息之目的,无任何商业目的。如本网站转载稿件涉及版权等问题,请作者速来函admincg3000@163.com联系,在此,我们首先向您表示诚挚的歉意,并将尽快予以改正。本网站上发表的内容只代表作者本人之观点,本网站只出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。