UltKit

PNG转VTF转换器

用PNG制作Valve纹理格式(VTF)文件,可用于Source引擎游戏中的自定义喷漆、武器皮肤或地图贴图。先把PNG调整为2的幂次方尺寸,在这里转换,引擎即可加载生成的文件。

图片格式转换

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

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

输出

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

使用方法

  1. 1

    上传尺寸为2的幂次方的PNG

    最多添加 20 张 PNG,每张不超过 95 MB。Source 引擎需要 256 × 256 或 512 × 256 px 这类尺寸,透明区域可以保留。

  2. 2

    检查尺寸设置

    调整输出图片尺寸默认为保持原始尺寸。如果方形 PNG 需要调整,请选择设置宽度并输入 256、512 或 1024。

  3. 3

    点击“转换为 VTF”

    下载 .vtf 文件,在游戏需要时添加 VMT 文件,然后复制到游戏的 materials 文件夹中。上传的文件会在 30 分钟后删除。

Source 引擎游戏只加载 VTF 格式的贴图,并且要求图片两边都是 2 的幂。

为什么Source游戏需要VTF而不是PNG

VTF 是 Valve 为 Source 引擎开发的格式。Source 引擎随 2004 年的 Half-Life 2 发布,至今仍驱动 Garry's Mod、Team Fortress 2、Counter-Strike: Source、Left 4 Dead 2 和许多模组。引擎在运行时不解码 PNG 或 JPG,它需要已经按显卡要求排列好的贴图数据,通常经过 DXT 压缩,并带有一串供远处表面使用的较小副本(mipmap 链),VTF 就是存放这些数据的容器。

2 的幂这条规则也源于同一设计。Mipmap 每一级都把图片缩小一半,而 GPU 压缩格式以 4 × 4 像素的块为单位工作,所以 512 或 1024 这样的尺寸可以一路整除到最小。500 × 500 px 的 PNG 会打破这一规律,工具要么拒绝处理,要么把它拉伸到下一个有效尺寸,导致细节变模糊。

喷漆、皮肤和贴图的PNG转VTF尺寸

1:1

128 × 128 px

小喷漆

适合有严格大小限制的服务器

1:1

256 × 256 px

标准喷漆

最常见的喷漆尺寸

2:1

512 × 256 px

宽幅贴花或标牌

两边可以不同

1:1

1024 × 1024 px

武器或道具皮肤

与原贴图尺寸保持一致

1:1

2048 × 2048 px

精细的场景贴图

文件较大,请少量使用

PNG

便携式网络图形(PNG)

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

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

VTF

Valve 贴图格式

VTF 是 Valve 的 Source 引擎的贴图格式,用于《半条命 2》《反恐精英:起源》《军团要塞 2》和《Garry's Mod》等游戏。它可包含 mipmap、Alpha 透明和动画贴图的多帧,可用 GPU 格式压缩或未压缩保存。模组作者用 VTF 制作喷漆、皮肤和地图材质。除 Source 工具和插件外,几乎没有软件能打开它。

压缩方式
有损或无损
透明度
支持
动画
支持
发布年份
2004 · Valve
VTF 转换器

当成品图需要变成 Source 引擎游戏可加载的喷漆、皮肤或地图贴图时,就要把 PNG 转换为 VTF;VTF 转 PNG 则是把游戏中现有的贴图提取出来,用于查看或编辑。

如何把VTF放进游戏

  1. 准备 PNG

    裁剪成最终形状,并把两边尺寸都调整为 2 的幂。

  2. 转换为 VTF

    在此上传并点击转换为 VTF,透明度会保留。

  3. 放入 materials

    把 VTF 及其 VMT 复制到对应的文件夹,或者将其作为喷漆导入。

制作喷漆时,大多数 Source 多人游戏在选项菜单的“多人游戏”标签页中有导入按钮,游戏会自动为你生成 VMT。喷漆不宜过大:较旧的 Source 版本会拒绝大约 120 KB 以上的喷漆文件,所以通常选择 256 × 256 px 的设计,服务器还可能另有自己的规定。

如果要重绘贴图,先用 VTF 转 PNG 打开游戏的原始贴图,以相同尺寸在上面绘制,这样仍能对应模型的 UV 贴图,然后再回到这里把 PNG 转换回去。如果原图是宽幅照片,请先用图片裁剪裁成方形再调整尺寸,因为调整输出图片尺寸会保持宽高比,无法把 1920 × 1080 直接变成两个 2 的幂。如果你的项目面向 DirectX 游戏,可以用 PNG 转 DDS 生成对应的贴图文件。

PNG转VTF常见问题

PNG转VTF之前,图片尺寸应该是多少?

两边都必须是 2 的幂:64、128、256、512、1024 或 2048 px。两边不必相等,512 × 256 也是有效尺寸。制作喷漆时,大多数社区教程推荐 256 × 256 px,因为较旧的 Source 游戏会限制喷漆文件的大小。

PNG的透明背景在VTF中能保留吗?

可以,Alpha 通道会写入 VTF。用于喷漆时,设计图以外的区域在墙上保持透明,不会显示出一个彩色方框。

除了VTF,还需要VMT文件吗?

地图贴图、模型和贴花都需要 VMT。VMT 是一个简短的文本文件,用来指定着色器,并通过 $basetexture 指向贴图。通过游戏选项菜单导入的喷漆,其 VMT 由游戏自动生成。

这里可以选择DXT1或DXT5压缩吗?

本页面没有压缩格式选项。如果游戏或服务器要求特定格式,例如用 DXT1 让喷漆文件更小,请用 VTFEdit 打开 VTF,并按需要的格式和 mipmap 设置重新保存。

为什么我的自定义贴图显示为紫黑棋盘格?

这种图案是 Source 引擎的缺失贴图标记。引擎在 VMT 指定的路径下找不到 VTF,或者缺少 VMT。请检查 materials 下的文件夹,以及 $basetexture 中的拼写,注意这里不写 .vtf 扩展名。

可以用PNG文件制作动态喷漆吗?

动画 VTF 在一个文件中存放多帧,需要能够合成帧的工具,例如 VTFEdit 导入带编号的图片序列。本页面会把每张 PNG 转换为单帧 VTF。