Skip to main content

4. 为标准着色器创建镜面反射/金属贴图

使用标准着色器时,它期望金属贴图和光滑度贴图是同一纹理的元素。你还可以将遮挡贴图和细节遮罩组合到同一纹理中。将所有这些元素作为同一纹理的一部分可以节省内存,因此这是一个很好的优化。

  • 作为参考,标准着色器期望红色通道中的金属,绿色通道中的遮挡,蓝色通道中的细节遮罩,以及Alpha通道中的光滑度。
  • 使用标准(镜面反射)着色器时,它同样期望镜面反射和光滑度是同一纹理的一部分,但没有空间放置其他东西。对于镜面反射材质,保持遮挡和细节贴图分开!

根据你使用的工具,这可能难以管理。例如,Photoshop保存半透明图像时会将透明像素替换为纯白色——破坏了镜面反射贴图!由于Windows中的一个古老错误,许多处理图像的工具也可能对导入的图像做同样的处理。

使用SmartTexture创建组合贴图

使用SmartTexture,你可以在Unity中创建自动将几种不同纹理合并为一个的纹理文件。只需将你的材质属性存储为单独的纹理,然后创建一个SmartTexture资产,将它们全部链接在一起。

安装SmartTexture,请按照这里的说明操作:https://github.com/s-ilent/SmartTexture

安装后,你可以通过创建一个新的SmartTexture资产并将项目中的单独分离的纹理拖入其中,在Unity内创建新的SmartTextures。

使用chaiNNer合并纹理

ChaiNNer是一个方便的纹理操作工具。你甚至可以使用它通过神经网络对纹理进行放大!但在这里,它的主要用途是将纹理合并在一起。

你可以从这里获取chaiNNer:https://chainner.app/

你可以将纹理拖到板上,并使用Seperate RGBA节点将它们分解成各自的组成部分,然后使用Combine RGBA重新组合它们。ChaiNNer还支持各种类型的过滤器,并可以批量处理图像。

使用ImageMagick合并镜面反射和光滑度

ImageMagick是一种简单有效的方法,在Unity外部仅需几个简单步骤即可合并你的贴图——只要你能使用命令行。

首先,下载ImageMagick(推荐兼容HDRI的版本):https://imagemagick.org/script/download.php#windows

ImageMagick是一个历史悠久的开源命令行工具集,用于编辑图像。人们使用IM和批处理脚本完成了惊人的事情。我们的脚本虽然不那么惊人,但同样有用。

这是脚本:

magick convert %1 %2 -alpha off -compose CopyOpacity -composite PNG32:%1_result.png

或者,这里有一个做好的批处理文件:

_JoinRGBAlpha.bat

使用它,只需选择两个相同大小的图像,然后将主图像拖到批处理文件中。在这种情况下,你应选择你的镜面反射贴图和光滑度贴图,然后将镜面反射贴图拖到批处理中来。结果是两者的结合,第二个图像添加到了Alpha通道——为Unity创建了一个准备好的镜面反射和光滑度贴图!然后你可以将生成的文件用于Unity。