microsoft/texture-assembler
>- Guide for using the texassemble command-line tool to create cubemaps, volume maps, texture arrays, and other assembled DDS textures from individual images. Use this skill when asked about creating cubemaps, volume textures, texture arrays, merging channels, converting animated GIFs to textures, or extracting cubemap faces to cross/strip layouts.
npx skills add https://github.com/microsoft/DirectXTex --skill texture-assembler
This skill provides guidance for using the texassemble command-line tool to create DDS files containing cubemaps, volume maps, or texture arrays from individual images.
Invoke this skill when:
winget install Microsoft.DirectXTex.Texassemble
vcpkg install directxtex[tools]
texassemble <command> [options] [--file-list <filename>] <file-name(s)>
Input files can be dds, tga, hdr, or any WIC-supported format (bmp, jpg, png, jxr, heif, webp, etc.).
The command-line uses Windows-style - or / for options. It also supports --version, --help, and GNU long-option style parameters with --.
| Command | Description |
| --- | --- |
| cube | Creates a cubemap from six face images (ordered: +X, -X, +Y, -Y, +Z, -Z) |
| volume | Creates a volume (3D) texture from two or more images (depth = image count) |
| array | Creates a 1D or 2D texture array from two or more images (requires FL 10.0+) |
| cubearray | Creates a cubemap array from a multiple of six images (requires FL 10.1+) |
| h-cross | Extracts cubemap faces into a horizontal cross layout image |
| v-cross | Extracts cubemap faces into a vertical cross layout image |
| v-cross-fnz | Same as v-cross but flips the negative-Z face |
| h-strip | Extracts cubemap faces into a horizontal strip image |
| v-strip | Extracts cubemap faces into a vertical strip image |
| h-tee | Extracts cubemap faces into a horizontal "T" layout image |
| cube-from-hc | Creates a cubemap from a horizontal cross layout image |
| cube-from-vc | Creates a cubemap from a vertical cross layout image |
| cube-from-vc-fnz | Creates a cubemap from a vertical cross layout (flipped -Z) image |
| cube-from-ht | Creates a cubemap from a horizontal tee layout image |
| cube-from-hs | Creates a cubemap from a horizontal strip image |
| cube-from-vs | Creates a cubemap from a vertical strip image |
| array-strip | Extracts a 1D/2D array into a horizontal strip image |
| merge | Creates a texture by merging channels from two input images |
| gif | Converts an animated GIF into a texture array |
| from-mips | Creates a 2D mipmapped texture from individual mip images |
| cube-from-mips | Creates a cubemap texture from individual mip images |
texassemble cube -w 256 -h 256 -o cubemap.dds posx.jpg negx.jpg posy.jpg negy.jpg posz.jpg negz.jpg
texassemble volume -w 256 -h 256 -o volume.dds slice0.png slice1.png slice2.png slice3.png
texassemble array -o array.dds frame0.png frame1.png frame2.png frame3.png
texassemble h-cross cubemap.dds
texassemble cube-from-vc -o cubemap.dds cross_layout.png
texassemble merge -o combined.png color.png alpha_source.bmp
texassemble merge --swizzle rgbR -o packed.png albedo.png roughness.png
texassemble gif -o animation.dds animated.gif
texassemble from-mips -o texture.dds mip0.png mip1.png mip2.png mip3.png
See reference/options.md for the complete options reference.
| Option | Description |
| --- | --- |
| -o <file> | Output filename (default: DDS based on first input, BMP for cross/strip) |
| -f <format> | Output DXGI format (e.g., R8G8B8A8_UNORM, B8G8R8A8_UNORM) |
| -w <n> / -h <n> | Output width / height in pixels |
| -if <filter> | Image filter (POINT, LINEAR, CUBIC, FANT, BOX, TRIANGLE) |
| -srgb | Input and output are sRGB |
| -y | Overwrite existing output file |
| -dx10 | Force DX10 header extension |
| -fl <level> | Target feature level (default: 11.0, max texture size: 16384) |
| --swizzle <mask> | Channel swizzle for merge command |
| --strip-mips | Strip mipmaps from input textures |
| -r | Recursive wildcard search |
| -nologo | Suppress copyright message |
By default, texassemble writes DDS files. The output filename is derived from the first input file with a .dds extension. For cross/strip extraction commands, the default output is a .bmp file and you can specify any supported image extension.
exr) format requires building from source with USE_OPENEXR defined.Take microsoft/texture-assembler from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.