forge-pipeline-texture-compression

Compress GPU textures into BC7/BC5 and .ftex blocks via basisu.

36|6|Updated Mar 25, 2026
One-click install
npx skills add https://github.com/Nebulavenus/forge-gpu --skill forge-pipeline-texture-compression-nebulavenus
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: forge-pipeline-texture-compression
Source: https://github.com/Nebulavenus/forge-gpu/tree/main/.claude/skills/forge-pipeline-texture-compression
Command: npx skills add https://github.com/Nebulavenus/forge-gpu --skill forge-pipeline-texture-compression-nebulavenus

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Efficiently loading and rendering GPU texture assets requires block compression, transcoding, and correct GPU formats. This Skill documents the end-to-end pipeline for BC7/BC5 compression, UASTC transcoding, and generating .ftex assets that upload directly to the GPU without runtime transcoding.

Core Features & Use Cases

  • Basisu-based compression for base color, normal maps, and metallic/roughness textures
  • UASTC transcoding and .ftex generation for fast, deterministic GPU uploads
  • D3D12 alignment handling for texture uploads and cross-platform compatibility
  • Sidecar metadata support to switch between compressed and uncompressed textures at load time
  • Guidance for integrating into existing asset pipelines and build workflows

Quick Start

Run the forge texture tool to compress a source texture into a .ftex asset and load it into the scene.

Frequently Asked Questions about forge-pipeline-texture-compression

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I compress textures for fast GPU loading in an asset pipeline?

To compress textures for fast GPU loading, you transcode source images into pre-compressed blocks using basisu, generating .ftex assets that upload directly to the GPU without runtime overhead. This pipeline handles BC7/BC5 and UASTC formats.

What is UASTC transcoding and when do I need it for .ftex generation?

UASTC transcoding is a basisu encoding process that creates high-quality intermediate compressed blocks for .ftex generation. You need it when you want deterministic, fast GPU uploads across D3D12 and Vulkan without runtime transcoding.

Do I need the basisu toolchain to generate .ftex assets for D3D12?

Yes, you need the basisu toolchain for encoding and a forge texture tool for .ftex generation. These tools handle D3D12 alignment for texture uploads and cross-platform compatibility, ensuring sidecar metadata can switch between compressed and uncompressed textures.

What's the best way to handle D3D12 texture upload alignment for compressed assets?

The best way to handle D3D12 texture upload alignment is by generating pre-transcoded .ftex assets using the forge texture pipeline. This process ensures correct GPU formats and alignment handling for fast, deterministic uploads across D3D12 and Vulkan.

Can I use sidecar metadata to switch between compressed and uncompressed textures at load time?

Yes, the pipeline supports sidecar metadata to switch between compressed and uncompressed textures at load time. This allows flexible asset management during D3D12 or Vulkan rendering without modifying the underlying .ftex asset data.

Does basisu compression work for normal maps and metallic roughness textures?

Yes, basisu compression works for base color, normal maps, and metallic/roughness textures. The pipeline applies BC7/BC5 compression and UASTC transcoding to these source textures, outputting optimized .ftex assets for direct GPU loading.