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。