Pular para o conteúdo principal
A família de consoles XBOX Series X|S conta com uma unidade de descompactação de hardware capaz de descompactar dados diretamente do armazenamento NVMe para a memória com assistência insignificante da CPU. Dois algoritmos de compactação têm suporte. O primeiro é um novo algoritmo de compactação baseado em rANS, projetado especificamente para dados de textura BC_n_, que chamamos de BCPack. O segundo é o conhecido algoritmo Deflate (ou seja, Zlib), agora com uma janela completa de 32 KB. O pipeline de descompactação permite que ambos os algoritmos sejam usados em série sem perda de taxa de transferência. Há duas unidades de descompactação que atuam em paralelo, com uma velocidade de gravação combinada que pode exceder 6 GB por segundo. Para usar as unidades de descompactação, os desenvolvedores devem aproveitar a API DirectStorage. Essa API assíncrona de baixo nível foi projetada para minimizar a sobrecarga da CPU ao emitir solicitações de leitura NVMe e expõe funcionalidades fixas, como operações de descompactação e swizzling de texturas. Para obter mais informações, consulte o exemplo: Graphics\TextureCompression

Ferramenta XBOX Texture Compressor (XBTC)

Para aproveitar a descompactação de hardware integrada do XBOX Series X|S, oferecemos uma ferramenta de compactação de software chamada XBTC.exe. Atualmente, a ferramenta só oferece suporte à compactação de texturas BC_n_, mas texturas que não são BC_n_ podem ser codificadas em BC sob demanda (quando você fornece um formato BC_n_ de destino). O XBTC está disponível na forma de uma ferramenta de linha de comando para processamento de texturas offline. A ferramenta gera um arquivo de pacote XBTC projetado especificamente para interação eficiente com o DirectStorage. Também é fornecido um arquivo de cabeçalho (XBTC.h) a ser incluído pelo seu título do XBOX Series X|S. Isso facilita o consumo do formato de arquivo de pacote. A ferramenta também pode emitir um arquivo DDS compactado em blocos se você utilizar o codificador BC e o caminho de saída tiver a extensão .dds. O XBTC.exe consome um arquivo de textura e o compacta em um arquivo de pacote de textura única. Dependendo das preferências de streaming (páginas de memória ou níveis de mip), o número de fluxos compactados pode variar. O sumário (TOC) do arquivo de pacote permite buscar fluxos compactados individuais. Um arquivo de pacote pode conter várias texturas (e buffers) de modo que o TOC possa ser mantido na memória, permitindo a recuperação eficiente de subfluxos específicos com o DirectStorage. O XBTC.exe também pode processar um lote de texturas e compactá-las em um arquivo de pacote de várias texturas. Para usar essa funcionalidade, você define o conteúdo do arquivo de pacote e as opções de compactação em um arquivo JSON, que é fornecido como entrada em vez de um arquivo de imagem.

DLL de ferramenta personalizada do XBTC

Outra forma de utilizar a compactação do XBTC é escrever suas próprias ferramentas em C++ e aproveitar o XBTC a partir de uma DLL. O XBTC.dll está disponível como um binário do Windows. As exportações são definidas em XBTC.h e contêm funcionalidades para compactação em blocos (codificação BCn), tiling/detiling e compactação/descompactação. Adicione XBTC.lib às entradas do vinculador da sua ferramenta para importar a DLL.

Nesta seção

Ferramenta XBOX Texture Compressor (XBTC.exe) Descreve o XBTC.exe como uma ferramenta para compactar texturas DDS codificadas em BC para uso no XBOX Series X|S. Especificação do arquivo de pacote XBTC Descreve a especificação do arquivo de pacote usada pela ferramenta XBOX Texture Compressor (XBTC). Configuração de lote em JSON Descreve a configuração de lote em JSON. Uma série de texturas pode ser compactada em um único arquivo de pacote usando um arquivo de configuração JSON. O arquivo JSON contém uma seção para opções globais, bem como uma lista de texturas com suas opções associadas.

Documentação de referência da API

Consulte também

Visões gerais dos recursos gráficos do XBOX Series X|S Visão geral de gráficos Gráficos Otimizando conteúdo compactado usando DirectStorage e XBTC
Última modificação em 6 de outubro de 2026