UltKit

PNG转TGA转换器

把PNG纹理、精灵图和UI素材转换为Truevision TGA文件,供以Targa作为纹理输入格式的游戏引擎和工具使用。透明像素会写入Alpha通道,抠图和遮罩照常生效。

图片格式转换

或将JPG, JPEG, JPE … 文件拖放到此处 ·

单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除

输出

文件在我们的服务器上处理,并在 30 分钟后删除。

使用方法

  1. 1

    添加PNG纹理

    最多选择 20 个 PNG 文件,每个不超过 95 MB。一整套贴图(漫反射、法线、粗糙度、遮罩)可以放在同一批中处理。

  2. 2

    引擎纹理不要开启调整大小

    将调整输出图片尺寸保持为保持原始尺寸,这样 1024 × 1024 或 2048 × 2048 等 2 的幂次尺寸就不会改变。

  3. 3

    转换为TGA

    点击转换为 TGA,逐个下载文件或打包为 ZIP 下载,然后放入引擎的导入文件夹。

为什么游戏引擎和纹理工具仍要求TGA

TGA 格式由 Truevision 于 1984 年为其 TARGA 视频采集卡设计,1989 年的修订版 TGA 2.0 增加了文件尾和扩展区,如今大多数软件读取的就是这一版本。这种格式非常简单,几十行代码就能加载:一个很短的文件头、可选的颜色表,然后是原始或游程编码的像素数据。正是这种简单性,让游戏公司在 1990 年代采用了它,也让许多流程至今没有改用其他格式。

实际原因在于 Alpha 和可预测性。32 位 TGA 始终在颜色旁带有直通的 8 位 Alpha 通道,没有伽马块或色彩配置文件块让导入器做出不同解读。贴图美术师相信,从 Photoshop、Substance 或 Blender 导出到引擎中,数值会完全一致。

适用于Unreal、Source、Unity和Blender的PNG转TGA

机构要求来源
Unreal Engine可导入 TGA、PNG、PSD 等格式;贴图边长需为 2 的幂次,才能使用 Mipmap 和流送—
Source 引擎(vtex)Valve 的贴图编译器读取 TGA 并输出 VTF;Alpha 用于控制半透明和遮罩—
Unity可直接导入 TGA,并在构建时按目标平台进行压缩—
Blender可读取和写入 Targa,输出提供 RLE 压缩的“Targa”和未压缩的“Targa Raw”两种选项—

PNG

便携式网络图形(PNG)

PNG 是 PNG 开发组于 1996 年发布的无损位图格式,后来由 W3C 和 ISO 标准化。它精确保留每个像素,支持完整的 Alpha 透明度,处理文字、锐利边缘和纯色块时不会产生伪影。这种精确度使它非常适合截图、徽标、图标和界面图形。代价是体积:保存为 PNG 的照片往往比同一张照片的 JPEG 或 WebP 大好几倍。所有浏览器、操作系统和编辑器都能打开 PNG 文件。

压缩方式
无损
透明度
支持
动画
不支持
发布年份
1996 · PNG Development Group
PNG 转换器

TGA

Truevision TGA(Targa)

TGA 又称 Targa,由 Truevision 于 1984 年为其显卡创建。它以未压缩或无损游程编码的方式保存位图图像,并支持 8 位 Alpha 通道。结构简单,使它长期受游戏贴图、3D 渲染和视频图形青睐。与 PNG 相比文件较大,浏览器和手机也无法显示 TGA。大多数图像编辑器、游戏引擎和 3D 程序都能读取。

压缩方式
无损
透明度
支持
动画
不支持
发布年份
1984 · Truevision
TGA 转换器

当游戏引擎、模组工具或渲染流程以带 8 位 Alpha 通道的 Targa 贴图为基础时,需要把 PNG 转为 TGA;当贴图需要在浏览器中预览或在该流程之外分享时,再把 TGA 转回 PNG。

TGA的Alpha通道、RLE压缩与32位输出

RLE(游程编码)压缩 TGA · TGA 图像类型 10
TGA 定义的唯一压缩方式。连续相同的像素只存储一次并记录重复次数,这对纯色的界面图和遮罩效果明显,对照片类贴图几乎没有作用。文件头中的图像类型 2 表示未压缩真彩色,类型 10 表示同样的数据经过游程编码。

所有能读取 TGA 的引擎和编辑器都同时支持普通和 RLE 两种变体,所以导入时通常无所谓选哪种。对版本控制来说区别更大:未压缩的 TGA 差异比较和存储都更可预测,因此一些工作室在资源规范中禁用 RLE。Photoshop 在 Targa 保存对话框中提供同样的选择,即“压缩 (RLE)”复选框。

转换前要检查一下 PNG 的 Alpha。许多导出工具即使对不透明的图也会写入完整的 Alpha 通道,引擎就会把贴图当作半透明处理,增加排序和过度绘制的开销。如果 Alpha 没有实际意义,请先在编辑器中将其移除。关于 PNG 本身的格式背景,请参阅 JPG、JPEG 和 PNG 的区别;当 TGA 需要回到浏览器中预览时,可用 TGA转PNG 执行相反的转换。

PNG转TGA纹理常见问题

转出的TGA是24位还是32位?

带 Alpha 通道的 PNG 会变成 32 位 TGA:红、绿、蓝和 Alpha 各 8 位。不透明的 PNG 只需 24 位。如果引擎要求没有透明度的贴图也必须是 32 位,请在转换前给 PNG 添加一个完全不透明的 Alpha 通道。

PNG转TGA是无损的吗?

对于普通的 8 位 PNG,是无损的:每个颜色值和 Alpha 值都会被原样复制。每通道 16 位的 PNG(常见于雕刻工具导出的高度图)会被降为 8 位,因为 TGA 没有更高位深的真彩色模式。如果引擎支持,这类贴图请保留为 PNG 或 EXR。

为什么TGA在某个软件里显示是上下颠倒的?

TGA 可以按从下到上或从上到下存储像素行,并在文件头中用一个标志位说明。多数工具会读取该标志,但少数老旧的查看器和手写的加载器会忽略它,导致图片上下颠倒。请在加载器或编辑器中翻转图片,而不是重新转换。

游戏纹理该用TGA还是DDS?

TGA 是你保存并反复导入的源文件;DDS 存放的是显卡可直接读取的 GPU 压缩数据。Unreal 和 Unity 都支持 TGA,并会在导入时自行压缩。没有导入步骤就加载贴图的模组和旧引擎通常需要 DDS,可以用 PNG转DDS 生成。

为什么TGA比PNG大这么多?

PNG 使用 Deflate 压缩;TGA 最多只用简单的游程编码,只对大片纯色区域有效。一张带 Alpha、细节丰富的 2048 × 2048 贴图,未压缩的 TGA 约为 16 MB。引擎在构建游戏时会再次压缩,所以磁盘上的大小只影响你的项目文件夹。