Skip to content

5. 功能纹理

车辆阴影

车辆的地面阴影并不是像太阳阴影那样实时生成的,但它们非常重要, 有助于改善车辆位于地面上的视觉效果,并在地面上模拟出环境光遮蔽 效果。 每辆车都有五张

p037_X0

阴影纹理。其中四张 纹理分别对应每个 车轮,另一张用于 车身。 如果车身阴影纹理不存在,游戏会自动生成一次,否则就会使用已有的纹理。车轮阴影使用一张预先制作好的纹理。所有阴影都必须放在自定义车辆 文件夹的根目录中(参见“Asset Organization”)

p037_X1

示例: 这是 FIAT 500 车辆的 BODY 阴影。在游戏中它看起来如上图 所示:该阴影会与动态阴影混合。 记得在文件夹中同样放入 4 张车轮纹理(参见左侧

p037_X2

图中的示例)。它们的工作方式与车身阴影相同,只是附着在 车轮上。你可以把自动生成的车身阴影拿出来,在 photoshop 或你喜欢的应用程序中进一步 细化它。 注意:自动生成的车辆阴影非常粗糙。必须对它进行编辑,才能 得到更平滑的结果。

车辆后视镜

要让车辆后视镜正常工作,必须创建一个材质(名称并不重要),并把它指定 给后视镜网格对象。网格必须使用名为 MIRROR_PLACEMENT 的纹理进行贴图映射。 这张纹理是

p038_X1

镜像的,并且 UV 也必须 同样进行镜像, 以确保它能 正确地 显示。 这张纹理 分为三个区域。CENTRAL 必须对应车内的中央后视镜。红色表示左侧, 蓝色表示右侧后视镜。 线条中心的 2 个点所指示的点,必须放置在后视镜的中心, 以确保能够清楚地看到后方的车辆。 注意:记得保持后视镜 UV 正确的宽高比,否则反射出的图像会发生 失真。MIRROR PLACEMENT 模板的图像比例是 4:1。 将 MIRROR_PLACEMENT 文件应用到各个后视镜网格对象上的示例:

p038_X0

注意:只在 UV 贴图映射时使用 MIRROR_PLACEMENT 纹理,编辑器中实际 使用的纹理应该是一张名为 mirror.dds 的纯色纹理。

内部前挡风玻璃与车门玻璃反射

p039_X0

车辆内部使用了一个专用的着色器,它是 专门为模拟表面不完全清澈透明时的 太阳反射效果而制作的。通过编辑所提供的玻璃纹理, 可以增强或减弱这一效果。 应用于内部玻璃的着色器是 KsWindscreen 注意:内部 GLASS 不得属于 cockpit HR 的一部分。车门上的 内部 GLASS 对象必须链接到 相应的 EXTERIOR 车门 null 上。当 cockpit LR 切换时, 内部玻璃必须仍然显示在 LOD A 上。

p039_X1

着色器 参数显示在 右侧的 图中。 这里在左侧展示了 着色器效果的一个示例。 INTERNAL GLASS 的纹理必须 保存为 DDS 格式,并且必须带有 alpha 通道和以下布局。

p039_X2

p039_X3

左图 显示玻璃纹理的 漫反射。 右图 显示 alpha 通道。 在纹理上绘制了 驾驶舱仪表台的 柔和阴影。 当太阳位于车辆前方时,这一技巧可以模拟仪表台在玻璃上的内部反射。 注意:内部玻璃网格只是玻璃外部多边形的一份副本,但它的 法线应当指向车内。所有内部车窗也都照此处理。

损坏玻璃

p040_X0

车辆可以有两种损坏形式:玻璃 对象的损坏和车身的损坏。 对于玻璃,我们要做以下工作: 复制玻璃对象,为它指定一个新材质,并 使用你在 Texture 公共文件夹中可以找到的、 名为 Glass_Crack_00.psd 的纹理 对它进行贴图映射。 然后,把它从原始玻璃处移开(0.5mm 或更少), 以避免穿插。参见此处:1 请尝试按此处所示的方式对玻璃进行大致贴图(

p040_X1

至少对于前挡风玻璃),因为破碎的玻璃必须让驾驶员在游戏中 看得到道路。裂缝在边角处必须更明显,而在中心处较弱(见上图)。 你可以把其他玻璃对象贴图到

p040_X2

UV 中的另一个区域, 比如底部。根据对象的 形状选用放射状或 碎片状裂缝。 放射状适合圆形的大灯玻璃,而 碎片状图案通常用于 方形大灯或侧窗。你可以看到 侧窗玻璃的一个示例:注意,我们也把后视镜的 镜面玻璃包含了进来,因为它属于 可能在侧面撞击中 破碎的玻璃对象之一。 提取出你的玻璃损坏网格后,你必须把它们放在使用以下命名规范的相应 null 之下。 注意:数字必须始终存在。 DAMAGE_GLASS_CENTER_1 中央玻璃,通常是前挡风玻璃 DAMAGE_GLASS_FRONT_1 前大灯玻璃或类似对象 DAMAGE_GLASS_REAR_1 尾灯/刹车灯玻璃或类似对象 DAMAGE_GLASS_LEFT_1 车门及附近的左侧车窗 DAMAGE_GLASS_RIGHT_1 车门及附近的右侧车窗

p041_X0

上面你可以看到一个关于如何分离损坏玻璃部件的示例。 对于车窗,通常你必须创建不止一个对象。当主车身上 以及前保险杠上都存在玻璃对象时,也会出现同样的情况。在这种情况下,你可以创建一个新的 dummy/null 并把它命名为 DAMAGE_GLASS_FRONT_2。把这个 dummy/null 作为 FRONT_BUMPER null 的子对象放置,以强制破碎的前保险杠灯玻璃跟随 FRONT_BUMPER 对象一起移动。对位于各种活动部件上的其他玻璃对象也照此处理。 你可以根据需要创建任意数量的 damage_glass null。(为了更好的优化,请尽量 少用……)

p041_X1

创建、UV 贴图并链接好这些对象后, 你必须为它们指定正确的材质, 并使用左图中 所示的参数。 每个损坏玻璃对象都必须在 对象设置中设为 TRANSPARENT, 并且不得投射阴影。 作为漫反射贴图和法线贴图,我们必须应用一张 PROXY TEXTURE。代理纹理是一张占位纹理, 它替代游戏自动从 公共文件夹加载的纹理。 对于 txDIFFUSE,使用名为

p041_X2

DAMAGE_GLASS_color.dds 的 DDS, 位于 Common Texture 文件夹中

p041_X3

对于 txNORMAL,使用名为 DAMAGE_GLASS.dds 的 DDS, 位于 Common Texture 文件夹中 设置好材质后,你必须更改绘制优先级。选中每一个 DAMAGE_GLASS dummy/null(而不是对象!),把优先级设置为 -2,然后按下 REORDER。 你可以检查

p042_X0

损坏玻璃是否 正常工作,方法是

p042_X1

在编辑器中 按下相应的 按钮。在编辑器中 查看 DAMAGE GLASS 的快捷键 是 F4。 在编辑器中,你应该能看到如下图所示的 DAMAGE 玻璃:

p042_X2

在为网格对象命名时,请使用一种易于遵循的命名规范,例如 MESH_DAMAGE_GLASS_FRONT_1 等。

车辆损坏

p043_X1

p043_X0

某些车身部件必须被分离出来,并放置在一个 Dummy/null 之下, 这个 Dummy/null 在元素受损时 充当该元素的轴心/旋转中心。 发生碰撞时,会激活一个脚本,根据 这些 null 的位置和轴心 使部件振动/旋转。 在 LOD B 中,保持这些 null 以及这些部件相互独立。在 LOD C 中, 这些元素可以附加到主体上,并且不必 是可移动的。如果损坏部件的尺寸相当大(方程式赛车上 巨大的前后翼,你可以把最重要的部件保留在 LOD C 上,以确保车辆受损时 不会出现可见的 LOD 切换。 请遵循以下准则:

  1. 确保你已经在车辆内部将网格封闭。你 可以放上黑色或非常暗的纹理,以确保活动物体 后面不会露出大洞。
  2. 将 dummy/null 放在对该部件而言合乎逻辑的 旋转点上。对于 MOTORHOOD,可以是铰链;对于 FRONT_BUMPER, 可以是一个允许旋转、但能避免与 主体网格相交的点。
  3. 只分离那些在移动时不会在车上留下洞的 部件,或者仔细地把洞封住。 可能会承受损伤的部件有: 前保险杠、后保险杠、前引擎盖和后引擎盖、排气管、尾翼, 以及各种 GT 车上的 Extractor(扩散器)等。这取决于 手头的模型。 部件完成后,你必须正确设置材质并编辑脚本。 损坏功能需要 4 张不同的纹理才能正常工作: 要让损坏功能正常工作,你需要以下纹理:DAMAGE_NORMAL 贴图、 DAMAGE_SCRATCHES 贴图、一张 DUST 贴图和一张 DAMAGE_MASK 贴图。 DAMAGE MASK 必须命名为 DAMAGE_Mask.dds,并且必须按以下方式创建:

p044_X0

白色部分表示车头(绘制在 alpha 通道中),红色表示 左侧,蓝色表示右侧,绿色表示车尾。我们用这个遮罩来控制 哪些区域会受到损坏的影响。 该遮罩必须按此处所示进行绘制:

p044_X1

记得让颜色相互混合,不要创建尖锐的过渡。绝不要绘制车顶和 引擎盖的顶部。 把这张纹理指定到 txDamageMask 插槽 分辨率必须为 512x512 像素,纹理可以导出为 DXT5。

p044_X2

对于 NORMAL MAP 纹理, 我们必须创建一张 如示例所示带有 金属形变的 法线贴图。 你可以使用你偏好的 工具,比如 Mudbox、Zbrush, 或任何你熟悉的其他 工具。 看看这个示例:

p045_X0

在 alpha 通道中, 你必须绘制 底盘上带有划痕的 部分,它会变得 不那么反光, 以便更好地 呈现出 残破的外观。 这张纹理必须 指定到名为 txNormal 的插槽。 纹理必须制作为 DXT5 格式,尺寸可以 是 512X512 像素。 对于 DAMAGE

p045_X1

SCRATCHES 纹理,你 必须绘制一张纹理, 它与法线贴图 配合工作,在 表面上显示出 划痕和损伤。请看 示例图像。这里的 划痕出现在红色背景之前, 但在纹理中请使用 下方纹理示例中 所示的灰色 背景。 边缘处的划痕必须有高光,并且它们在侧面也必须可见。 划痕会叠加在车漆纹理之上,因此纹理需要一个 alpha 通道来用作 不透明度的蒙版。

p045_X2

这张纹理必须 指定到名为 txDamage 的插槽。 该纹理必须 导出为 DXT5 格式, 并且尺寸 必须为 2048x2048 像素。 最后一张纹理是 DUST 纹理,用于显示车辆在越野行驶后车身上的污垢。

p046_X1

我们必须绘制一层 尘土来表现干燥的灰尘。 纹理必须制作为 DXT5 格式,尺寸必须 为 2048x2048 像素;如果车辆的 纹理负担较重, 也可以是 1024x1024。 这张纹理必须 放置在名为 txDust 的插槽中。

p046_X0

要查看损坏的整体效果,你可以使用编辑器中的 show damage 按钮:

p046_X2

p046_X3