导入图像

支持的图像格式

Godot 可以导入以下图像格式:

  • BMP (.bmp) - 不支持每像素16位的图像。只支持每像素1位、4位、8位、24位和32位图像。
  • DirectDraw Surface(.dds) -如果纹理中存在mipmap,则直接加载。可以使用自定义mipmap制作特效。
  • OpenEXR (.exr) - 支持HDR (强烈推荐使用在全景天空上)。
  • 光辉HDR(.hdr) - 支持HDR (强烈推荐使用在全景天空上)。
  • JPEG (.jpg, .jpeg) - 不支持每个格式的限制透明度。
  • PNG(.png) - 导入时精度限制为每个通道8位(无HDR图像)。
  • Truevision Targa (.tga)
  • SVG (.svg, .svgz) - SVG在导入时使用 NanoSVG 进行栅格化。支持并不完善,复杂向量可能无法正确渲染。对于复杂的向量,使用Inkscape将其渲染成PNGs往往是更好的解决方案。这个操作可以通过Inkscape的 命令行界面 来自动完成。
  • WebP (.webp)

注解

如果你从源代码编译Godot编辑器时禁用了特定的模块,某些格式可能无法使用。

导入纹理

Godot 中的默认操作是将图像导入为纹理。纹理存储在显存中,不能直接访问。这就是使得绘制它们变得高效的原因。

导入选项非常多:

../../../_images/image_import1.png

检测3D

这个选项让 Godot 知道在 3D 中何时使用纹理(默认情况下导入为 2D)。如果开启这个选项,设置会发生改变,所以纹理标记对 3D 更友好(贴图(mipmap)过滤器(filter)重复(repeat) 变为启用,压缩(compression) 变为 显存(VRAM))。纹理也自动重新导入。

压缩

图像是游戏中最大的素材之一。为了有效地处理它们,它们被需要压缩。Godot根据使用情况提供了几种压缩方法。

压缩模式

  • VRAM压缩: 这是3D素材最常见的压缩方式。可以减小磁盘文件的大小,同时大大减少显存使用量(通常是4到6倍)。但 2D 素材应该避免使用此模式,因为它会出现明显的失真。
  • 无损压缩: 这是 2D 素材最常用的压缩方式。显示的素材不会失真,并且磁盘压缩率也不错。但是,它占用的显存比VRAM压缩多得多。这是像素画的推荐设置。
  • Lossy Compression: This is a good choice for large 2D assets. It has some artifacts, but less than VRAM and the file size is several times lower compared to Lossless or Uncompressed. Video memory usage isn’t decreased by this mode; it’s the same as with Lossless Compression or Uncompressed.
  • Uncompressed: Only useful for formats that can’t be compressed (such as raw float images).

在这张表中,四个选项中的每一个都描述了它们的优缺点( good = 最好的, bad = 最差的):

 未压缩无损压缩(PNG)有损压缩(WebP)VRAM压缩
描述存储为原始像素存储为 PNG存储为 WebPStored as S3TC/BC or PVRTC/ETC depending on platform
磁盘占用bad 巨大regulargood 非常小regular
内存占用bad 巨大bad 巨大bad 巨大good
性能regular 普通regular 普通regular 普通good
质量损失goodgoodregular 轻微bad 中等
加载时间regular 普通badbadgood

HDR 模式

Godot支持高动态范围纹理(如 .HDR.EXR)。这些在高动态范围等矩形全景天空中很有用(如果您要搜索,则互联网上有很多),它代替了Godot 2.x中的立方体贴图。现代个人电脑支持 BC6H VRAM 格式,但仍有很多电脑不支持。

如果您希望 Godot 确保完全兼容各种纹理,请启用 强制 RGBE 选项。

法线贴图

将纹理用作法线贴图时,仅需要红色和绿色通道。鉴于常规纹理压缩算法产生的失真在法线贴图中看起来不太好,RGTC 压缩格式最适合这种数据。将此选项强制为 已启用 将使Godot导入 RGTC 压缩的图像。默认情况下,它被设置为 Detect,这意味着如果纹理一旦被用作法线贴图,则会将其更改为 Enabled 并自动重新导入。

请注意,RGTC压缩会影响生成的法线贴图图像。您必须在调整使用法线贴图的自定义着色器时,考虑到这一点。

注解

Godot需要法线贴图使用X +,Y-和Z +坐标。换言之,如果你导入了用于其他引擎的材质,就需要转换法线贴图,将它的Y轴翻转过来。否则,法线贴图显示的Y轴方向会相反。

可以在 这里 找到关于法线贴图(包括常见引擎的坐标顺序表)的更多信息。

标志

根据使用情况,很多设置在将图像作为纹理导入时,可以被切换。

重复

此设置最常用于3D,因此通常在2D中被禁用。它将超出 0,0 -1,1 范围的UV坐标设置为 循环

可以选择将重复设置为镜像模式。

过滤器

当像素大于屏幕像素时,此选项可为它们启用线性插值。结果是更平滑的(更少块状)纹理。此设置通常可用于2D和3D,但在制作像素完美游戏时通常会禁用此设置。

Mipmaps

当像素变得比屏幕小时,mipmap 会启用。这有助于减少纹理收缩时的颗粒感效应。请记住,在较旧的硬件(GLES2,主要是移动设备)中,使用 mipmap 需要满足一些要求:

  • 纹理宽度和高度必须是2的幂
  • 必须启用 Repeat

在制作手机游戏和应用程序时,希望完全兼容并使用 mipmap,请牢记以上内容。

在 3D 模式下,应该打开 mipmap,因为这也会提高性能(更小大小的纹理用于更远的对象)。

各向异性

当纹理几乎与视图平行时(如地板),该选项通过减少模糊程度使它们具有更多细节。

SRGB

渲染 3D 图像时,Godot使用线性色彩空间。映射到 albedo (反照率)或细节通道的纹理需要打开此选项,才能使颜色看起来正确。当设置为 Detect 模式时,纹理当在反照率通道中使用时,将被标记为 SRGB 。

过程

当作为纹理导入时,某些特殊过程可以应用于图像。

修复 Alpha 边界

这样会使周围颜色相同的像素从透明过渡到非透明。从Photoshop等导出图像时,它有助于减轻轮廓效果。

../../../_images/fixedborder.png

除非需要特定的值,否则最好在保持默认值。

预乘Alpha

修复深色边界的替代方法是使用预乘alpha。通过启用此选项,纹理将被转换为此格式。请记住,在画布物体上使用预乘 ALPHA 混合模式需要创建一个材质。请记住,在画布上的使用PREMULT ALPHA混合模式的项目,需要创建一个材质,而该材质需要它。

HDR 转为 SRGB

一些HDR文件已损坏,并包含sRGB颜色数据。建议不要使用它们,但是在最坏的情况下,启用此选项会使它们看起来正确。

反转颜色

反转图像的颜色。例如,将外部程序生成的高度图转换为深度图以用于 空间材质,将非常有用。

Svg

Scale(大小)

该选项仅适用于 SVG 文件。它控制 SVG 图像的缩放。默认比例 (1.0) 表示使导入的 SVG 保持原始设计大小。