Repolode
zeux

zeux/meshoptimizer

Biblioteca C/C++ para otimizar malhas de triângulos, acelerar a renderização em GPUs e reduzir o tamanho do armazenamento e da transmissão das malhas.

Estrelas
8,606
Forks
730
Issues abertas
7
Último commit
há 8 dias

O que é?

meshoptimizer é uma biblioteca C e C++ com algoritmos para processar malhas de triângulos. Ela reorganiza buffers de vértices e índices para melhorar a eficiência do cache de vértices da GPU e do acesso à memória, reduz o overdraw e quantiza atributos de vértice em formatos menores.

A biblioteca também oferece simplificação de malhas para gerar versões com menos detalhes, além de geração de meshlets e clusters para mesh shaders, ray tracing em clusters e culling de clusters. Seus codecs de vértices e índices comprimem os dados da malha sem perdas e permitem decodificá-los rapidamente; os dados resultantes também podem ser comprimidos por compressores de uso geral, como zstd ou LZ4.

O núcleo é distribuído como um header e arquivos-fonte C++ que podem ser compilados com CMake ou adicionados diretamente ao build de um projeto. A biblioteca também está disponível como a ferramenta de linha de comando gltfpack, para otimizar arquivos glTF, e por meio de bindings para Rust e JavaScript.

Recursos principais

  • 01Reorganiza índices e vértices para melhorar o cache de vértices da GPU e a localidade dos acessos.
  • 02Oferece simplificação de malhas para gerar malhas com menos detalhes.
  • 03Gera meshlets e limites de clusters para mesh shading e culling de clusters.
  • 04Oferece codificação sem perdas de vértices e índices para reduzir o tamanho do armazenamento e da transmissão.
  • 05Inclui funções auxiliares de quantização para normais, posições e coordenadas de textura.
  • 06Disponibiliza interfaces em C e C++, que podem ser usadas por outras linguagens via FFI.

Casos de uso

  • Pré-processar assets de jogos ou de renderizadores em tempo real para reduzir cache misses de vértices e overdraw.
  • Criar sequências de LOD com simplificação de malhas para objetos distantes.
  • Reduzir o tamanho de modelos glTF para distribuição na web ou em dispositivos móveis usando gltfpack.
  • Preparar meshlets para GPUs compatíveis com mesh shaders ou ray tracing em clusters.

Início rápido

  1. 1

    Clone o repositório da versão v1.3

    git clone -b v1.3 https://github.com/zeux/meshoptimizer.git
  2. 2

    Compile a biblioteca com CMake ou adicione os arquivos de código-fonte necessários ao sistema de compilação do seu projeto

Em coleções

Tópicos

Perguntas frequentes

O que é meshoptimizer?
Biblioteca C/C++ para otimizar malhas de triângulos, acelerar a renderização em GPUs e reduzir o tamanho do armazenamento e da transmissão das malhas. meshoptimizer é uma biblioteca C e C++ com algoritmos para processar malhas de triângulos. Ela reorganiza buffers de vértices e índices para melhorar a eficiência do cache de vértices da GPU e do acesso à memória, reduz o overdraw e quantiza atributos de vértice em formatos menores.
meshoptimizer é gratuito? Qual é a licença?
meshoptimizer é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
meshoptimizer ainda é mantido?
Manutenção ativa. O último commit de meshoptimizer foi em 14 de out. de 2026.
Para que posso usar meshoptimizer?
Pré-processar assets de jogos ou de renderizadores em tempo real para reduzir cache misses de vértices e overdraw. Criar sequências de LOD com simplificação de malhas para objetos distantes. Reduzir o tamanho de modelos glTF para distribuição na web ou em dispositivos móveis usando gltfpack. Preparar meshlets para GPUs compatíveis com mesh shaders ou ray tracing em clusters.
Como instalar meshoptimizer?
Clone o repositório da versão v1.3: git clone -b v1.3 https://github.com/zeux/meshoptimizer.git Compile a biblioteca com CMake ou adicione os arquivos de código-fonte necessários ao sistema de compilação do seu projeto
Onde consigo meshoptimizer?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/zeux/meshoptimizer

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados