PNG to VMT Generator

A VMT is the small text file that tells a Source game which shader to use and where its VTF texture is, so a PNG becomes a material in two files. Drop your PNG below, pick the shader and transparency, set the material path, and download the .vtf and .vmt together in a ZIP that already has the materials/ folder layout. It all runs in your browser.

Free · no signup · your files stay in your browser

Loading the tool...

How to make a VMT from a PNG

  1. 1

    Add your PNG

    Drop a PNG (or a JPG, WebP, GIF or BMP) on the box. The tool converts it to a VTF, because a VMT points at a VTF, not at a PNG.

  2. 2

    Set the material

    Choose the VMT shader and transparency, then type the material path inside materials/, for example custom/brick_wall. The VMT text updates as you change them, so you can read it before you download.

  3. 3

    Download the pair

    Click "VTF + VMT as ZIP" to get both files under materials/ with your path, or download the .vmt and .vtf one by one.

VTF formats you can write

FormatSizeTypical useAlpha
DXT10.5 byte per pixelOpaque world and model textures (smallest file)No
DXT51 byte per pixelTextures and sprays with smooth transparencyYes
BGRA88884 bytes per pixelLossless sprays, HUD and pixel artYes
RGBA88884 bytes per pixelLossless, same as BGRA8888 with another channel orderYes
BGR8883 bytes per pixelLossless opaque texturesNo
I81 byte per pixelGreyscale masks and detail mapsNo

The VTF to PNG tab also opens DXT3, RGB565, IA88, A8, ABGR8888, ARGB8888, BGRX8888, BGRA4444, BGRA5551, UV88 and RGBA16161616F files.

More free texture tools

Frequently Asked Questions

VMT (Valve Material Type) is a plain-text material file. It names a shader such as LightmappedGeneric and sets parameters like $basetexture, the path of the VTF inside the materials folder without the .vtf extension.
No. Source games load textures from VTF files, so $basetexture must name a VTF. That is why this generator makes the VTF and the VMT together from your PNG.
LightmappedGeneric for brushes and map surfaces such as walls and floors, VertexLitGeneric for models and props, and UnlitGeneric for sprays, HUD images and unlit decals.
$translucent blends smooth, soft-edged transparency, for glass, smoke or sprays. $alphatest makes each pixel fully solid or fully clear, for fences, grates and leaves. With Auto, the VMT gets $translucent when your PNG has see-through pixels and neither when it is opaque.
It is the folder and name inside materials/. If you type custom/brick_wall, the files are named brick_wall.vtf and brick_wall.vmt, $basetexture becomes custom/brick_wall, and the ZIP puts both in materials/custom/. Hammer lists the material by that same path.
The Spray HD and Spray classic presets write an UnlitGeneric VMT with $translucent, $ignorez, $vertexcolor and $vertexalpha, and put the files in materials/vgui/logos.
No. Reading the image, resizing, DXT compression and writing or reading the VTF all happen in your browser, so your files stay on your device. It is free and needs no signup.

Valve, Source, Garry's Mod, Team Fortress 2 and Counter-Strike are trademarks of Valve Corporation, named only to describe file compatibility; The3DAI is not affiliated with or endorsed by Valve.