关于材质和贴图,我们在DirectX中也介绍过。在3ds max中也是通过材质和贴图来表现物体模型的表面纹理。在3ds max中物体模型的材质主要包括颜色,透明度,高光等等,其中贴图用于替换颜色部分,以增强物体表面的真实特征,贴图就是材质的一个属性而已。在工具栏中点击“材质编辑器”(快捷键M)就能打开材质编辑界面:
大家可以看到,每个材质都是以一个球体的方式呈现,因此3ds max中的材质也称之为“材质球”。每一个材质球就代表一个材质,可以为模型赋予多个材质球。在每个材质球下面都有一个“Blinn 基本参数”,我们可以看到,他们主要是环境光,漫反射,高光反射,自发光以及不透明度,这跟我们之前通过DirectX去创建一个材质的数据结构是一致的。我们之前也讲过,物体的漫反射就是物体的颜色。在3ds max中,如果需要使用贴图来代表物体的颜色话,只需要在漫反射后面的空白按钮选择一张“BitMap”(位图)贴图即可。BitMap”贴图就是一张四边形贴图图片而已。我们之前直接将一张图片拖拽到模型上面,本质就是将这张贴图赋予材质的漫反射颜色属性上面。
3ds max的材质编辑器主要有两种,一种就是上图中默认的“精简材质编辑器”,另一种就是“Slate材质编辑器”。两种形式的编辑器可以通过材质编辑器菜单栏“模式”来回切换。精简材质编辑器对于初学者来说,操作比较简单且易懂。Slate材质编辑器虽然复杂一些,但是它根据线框的方式来呈现不同的材质,不论是显示还是操作,也都比较方便和实用的。关于材质编辑器的更多参数的意义,我们不在详细介绍,这里主要介绍贴图。
贴图主要用于表现物体模型的表面纹理,位图(BitMap)是最常用的贴图类型。
创建一个BitMap贴图如下,首先点击漫反射后面的空白按钮,
在弹出的列表中,双击选择位图,
然后选择本地电脑上一张图片,接下来就是位图编辑界面,在“位图:”的位置,我们可以看到图片的地址,如果想要更换一张图片,也是在这个位置进行操作。请注意,此时的操作界面是位图的操作界面,不是材质的操作界面,如果想要返回材质编辑器的界面,需要点击“转到父对象”,就能返回材质编辑器了。
返回到材质编辑器后,我们看到漫反射后面的按钮变成了“M”,表示我们的贴图对象。
如果想要再次回到贴图编辑界面,点击“M”按钮即可。创建贴图材质之后,可以直接拖动材质到模型上进行赋予,也可以选择材质和模型后点击“将材质指定给选定对象”。此时模型并不会立即显示贴图,而是需要在材质编辑中点击“视口中显示明暗处理材质”才行。我们重新回到贴图的编辑页面,默认情况下,我们的贴图材质赋予立方体的话,贴图会完整的铺在立方体的每一个面上:
如果我们调整偏移下方的UV值,就会发现贴图位置移动,本质是调整其UV坐标。默认瓷砖下方的数值都是1.0,也就是一个平面显示一张完整贴图,如果我们调整其数值,能够达到多张贴图平铺的效果。需要注意的是,当设置的数值为奇数的时候,平铺后的贴图在平面上才能完整显示。例如我们设置3,这样在平面上就会显示3X3个贴图:
其实这种效果,在我们DirectX中的“寻址模式”中提到过!角度就是控制图片的旋转,通常更改W数值,例如我们改为30,如下图:
关于位图的其他参数,我们不在介绍。贴图的操作中,我们经常使用的是“UVW 贴图”修改器
贴图作用于模型的表面,本质就是UV坐标,但是我们不可能逐一的一个点一个点的去设置这个UV坐标,我们需要可视化的操作工具帮助我们完成这项工作。“UVW 贴图”修改器可以控制贴图的覆盖方式、方向、大小等等。首先,我们介绍贴图的覆盖方式,在上图中我们可以看到贴图:平面,柱形,球形,收缩包裹,长方体,面等等。
平面:从对象上的一个平面投影贴图,在某种程度上类似于投影幻灯片。在需要贴图对象的一侧时,会使用平面投影。它还用于倾斜地在多个侧面贴图,以及用于贴图对称对象的两个侧面。
柱形:从圆柱体投影贴图,使用它包裹对象。位图接合处的缝是可见的,除非使用无缝贴图。圆柱形投影用于基本形状为圆柱形的对象。
封口:对圆柱体封口应用平面贴图坐标。
球形:通过从球体投影贴图来包围对象。在球体顶部和底部,位图边与球体两极交汇处会看到缝和贴图奇点。球形投影用于基本形状为球形的对象。
收缩包裹:使用球形贴图,但是它会截去贴图的各个角,然后在一个单独极点将它们全部结合在一起,仅创建一个奇点。收缩包裹贴图用于隐藏贴图奇点。
长方体:从长方体的六个侧面投影贴图。每个侧面投影为一个平面贴图,且表面上的效果取决于曲面法线。从其法线几乎与其每个面的法线平行的最接近长方体的表面贴图每个面。
面:对对象的每个面应用贴图副本。使用完整矩形贴图来贴图共享隐藏边的成对面。使用贴图的矩形部分贴图不带隐藏边的单个面。
XYZ 到 UVW:将 3D 程序坐标贴图到 UVW 坐标。这会将程序纹理贴到表面。如果表面被拉伸,3D 程序贴图也被拉伸。
在我们之前的立方体案例中,我们将贴图赋予立方体的时候,默认使用“长方体”的覆盖方式,也就是将贴图平铺在立方体的6个面上,每个面上是一张完整的贴图。
我们可以从上面两个图片中看到两种覆盖方式的不同。
“UVW 贴图”修改器使用场景:首先模型是一个基本几何体的形状(立方体,球形或圆柱体等等),其次我们有做好的纹理贴图(木质纹理贴图,草地纹理贴图,石头纹理贴图等等)。我们就可以使用“UVW 贴图”修改器可视化的调整纹理在模型上面的表现效果了。接下来,我们介绍长度,宽度和高度的参数说明,该参数用于指定“UVW 贴图”gizmo 的尺寸。“高度”尺寸对于平面 gizmo 不适用。当我们试图去修改长度,宽度和高度的数值时候,我们就会发现它的效果,同时会在立方体的外围生成一个立方体线框。如下图:
同时,如果我们展开“UVW 贴图”修改器的加号,就能看到下面的“Gizmo”子按钮,点击“Gizmo”的话,我们发现在立方体线框中间出现轴心坐标系,同时自动选中移动工具。如果我们移动x/y/z轴向的话,就会发现贴图也在移动。其实,我们还可以旋转和缩放。
Gizmo其实就是一个变换控制器,我们可以通过长度,宽度和高度的参数指定它的尺寸,同时还可以通过x/y/z三个轴向进行移动,旋转和缩放操作。这种可视化的操作方式可以帮助我们对一些简单的几何模型进行纹理映射,也就是纹理坐标的指定。当然,复杂的人物模型不能按照这种方式来操作了,它需要另一个修改器“UVW 展开”。
备注:材质编辑器中的材质球可以删除,但不影响物体的材质显示。也就是说,材质的删除并不是真正的删除。我们可以使用“从对象拾取材质”滴管工具来重新获取模型身上的材质。
UV贴图路径问题:菜单“参考”->“资源追踪”,也可以使用快捷键Shift + T,在“资源追踪”的弹窗中可以看到场景中所有的贴图列表,选择一个贴图,右击选择“设置路径…”,在“指定资源路径”的弹框中,可以修改新路径和贴图名称。
备注:这是我们游戏开发系列教程的第三个课程,这个课程主要讲解3ds max建模的基础知识。学习目标主要通过3ds max的操作来加深对游戏基础知识的了解。如果有兴趣的同学,可以通过其他方式来学习3ds max的专业知识。本课程中如果有一些错误的地方,请大家留言指正,感激不尽!