渲染到纹理
3ds Max 中的“渲染到纹理”工具可以将各种场景元素渲染或“烘焙”到纹理中,包括照明和阴影。可以在实时 3D 应用程序(如游戏)中使用这些特殊纹理,以减少渲染器的负担,从而提高帧速率。
注意:本教程的所有必需文件都可以在 3ds Max 附带的教程文件光盘上找到。在执行教程之前,请将 \tutorials 目录从光盘复制到您的 \3dsmax 本地安装目录中。
检查设置:
-
加载文件 tut_texturebake_start.max。该文件位于 \tutorials\vertex_color 文件夹中。
该场景由一个带有纹理贴图的双翼飞机模型和一个投影阴影的泛光灯组成。首先,您将看到该场景在 3ds Max 中渲染后的样子。
-
确保“透视”视口处于活动状态。在工具栏上单击“快速渲染”,或按 Shift+Q 组合键,以渲染场景。
注意,在渲染的图像中出现了阴影,尤其是由螺旋桨叶片以及上下机翼之间的垂直支柱所投射的阴影。可是这些阴影没有出现在“透视”视口中。
-
Fuselage 使用“UVW 展开”修改器进行复杂而精确的纹理贴图设置。因为这是该场景中唯一一个进行了纹理贴图的对象,所以本课程将集中处理这个对象。首先,看一下纹理。
-
这会打开“编辑 UVW”对话框。可以看到纹理贴图如何被拆分为各个部分,不同的面簇彼此叠加。这些面簇是对应于 Fuselage 网格的不同部分的 UVW 贴图坐标。
烘焙纹理:
-
在“烘焙对象”卷展栏中,注意 Fuselage 是列出的唯一一个对象。还要注意“选定对象设置”组 >“启用”复选框已启用,并且“所有选定的”处于选定状态。这意味着“渲染到纹理”将使用任意选定的对象。
如果愿意,可以尝试在“透视”视口中选择不同的对象,您会注意到“烘焙对象”列表将动态更新。最后,只选择 Fuselage 对象。
-
这会打开“添加纹理元素”对话框,其中列出了可以渲染的不同类型的纹理元素。通常,您会将所有元素合并为一个纹理,所以要使用 CompleteMap。
-
在“添加纹理元素”对话框列表中双击 CompleteMap,或高亮显示 CompleteMap,然后单击“添加元素”按钮。
-
使用“渲染到纹理”时,软件会创建一个新材质。必须指定渲染的纹理在此新材质中将出现的位置。在“选定元素通用设置”组中,单击“目标贴图位置”旁边的下拉列表,并选择“漫反射颜色”。
CompleteMap 出现在“输出”卷展栏列表中,同时出现的还有要生成的默认纹理大小:256x256。原始纹理贴图相当大,所以您很可能要将它渲染为一个较大的大小。
-
-
将短暂地出现警报,显示展平 UV 和烘焙纹理的进度,然后将打开一个虚拟帧缓冲区窗口,其中显示新渲染的 CompleteMap 纹理。这个图像与您在“编辑 UVW”窗口中看到的图像很相似,但是纹理以不同方式细分了。
查看结果:
-
名为“自动展平 UVs”的第二个修改器已添加给 Fuselage。这是一个“UVW 展开”修改器,但它是由“渲染到纹理”功能自动创建和应用的。
Fuselage 对象仍然获得了很精确的贴图效果,但是此时在视口中出现了投影阴影。例如,如果移动光源,可以看到从螺旋桨投射到机身上的阴影不会随着光源的移动而改变,因为它们已被烘焙到纹理中。
还可以看到在视口中应用到机身的纹理贴图的质量较低,但是如果渲染该图像,纹理又具有其原始的高质量。在下面几个步骤中,将介绍出现这种情况的原因。
-
在“材质/贴图浏览器”对话框 >“浏览自”组中,选择“选定对象”。
现在列表中只出现了一个材质。它的名称为 Fuselage(来自于它应用到的对象),而类型(即“壳材质”)出现在名称旁边。此材质由“渲染到纹理”自动生成,然后被应用到 Fuselage 对象。
基本上,壳材质可用于将两种材质合并为一种材质;您可以在视口中看到一种材质,同时使用另一种材质进行渲染。当“渲染到纹理”生成一种壳材质时,它将原始材质用于渲染,将烘焙材质用于在视口中显示。
-
在列表中双击该纹理,以将其添加到“材质编辑器”中。关闭“材质/贴图浏览器”对话框。
在 tut_texturebake_finish.max 中可以找到处于当前状态的场景。
该材质只有一个卷展栏:“壳材质参数”。它显示原始材质 (orig_Fuselage) 将用于渲染,而烘焙材质(baked_Fuselage,由“渲染到纹理”生成)将在视口中可见。
渲染其他元素:
除了 CompleteMap,还可以渲染单个元素,每次渲染一个或多个。
-
打开“渲染到纹理”对话框,在“输出”卷展栏中删除 MyCompleteMap 元素,然后添加 ShadowsMap 元素。将“目标贴图位置”设置为“漫反射颜色”。
-
新的材质是未着色的,除了出现阴影的地方。如果目标渲染引擎支持合成多个纹理,则可以使用这种类型的纹理。
注意,渲染帧窗口仍然显示 CompleteMap,即使“渲染到纹理”并没有对其进行保存。无论渲染哪种类型的元素,都总是出现这种情况。可以在“常规设置”卷展栏上禁用帧窗口的自动显示。
-
在“渲染到纹理”对话框中,删除 ShadowsMap 纹理元素,然后同时添加 DiffuseMap 和 LightingMap 元素。
-
单击“渲染”。当出现“缺少贴图目标”警告时,单击“继续”按钮。
“缺少贴图目标”对话框显示所有未指定到目标贴图示例窗的纹理元素。
新的壳材质只针对列表中的第一个元素创建,如“透视”视口所示。但是,所有纹理都保存在目标目录中。通过删除 DiffuseMap,可以在视口中看到 LightingMap 纹理。
-
删除 DiffuseMap 列表项,将 LightingMap 的“目标贴图位置”设置为“漫反射颜色”,然后单击“渲染”按钮。
“渲染到纹理”生成一个新材质并将其应用到 Fuselage,所以它现在在视口中可见。LightingMap 元素包括所有着色和阴影,但是没有漫反射颜色。
注意:每次只能将一个纹理元素设置为任意给定的目标贴图类型。同样,如果添加一个先前指定了目标贴图类型的纹理元素,软件会自动指定它最近使用的目标贴图类型(如果没有其他活动纹理元素正在使用该目标贴图类型)。如果有其他活动纹理元素正在使用该目标贴图类型,则新指定的纹理元素的目标贴图示例窗为空。
“渲染到纹理”是一个用途广泛的工具,可以在为实时应用程序生成纹理贴图时节省时间。在本教程中,您学习了如何烘焙不同类型的纹理,以及如何使用由“渲染到纹理”生成的壳材质。请尝试生成其他纹理元素,然后将它们导出到实时 3D 引擎中。
转载自:http://www.ddove.com/3dmax/sl/tut_rendering_to_texture.html