A Academy Software Foundation disponibilizou o OpenVDB 13.1.0, uma das bibliotecas de código aberto mais utilizadas pela indústria de efeitos visuais para manipulação de dados volumétricos. O foco desta versão recai sobre o desempenho bruto em processadores x86, além de aprimoramentos significativos na alocação de recursos em GPUs por meio do NanoVDB.
A principal novidade é a introdução de um framework SIMD (Single Instruction, Multiple Data) focado em vetorização direcionada. Para implementar a otimização no x86, os mantenedores incorporaram a VectorClass Library (VCL), desenvolvida pelo pesquisador Agner Fog.
O que isso muda na prática
O OpenVDB é o padrão da indústria para representar elementos como fumaça, nuvens, fogo e simulações complexas de fluidos em 3D. Quando a biblioteca processa esses dados, ela precisa calcular milhões de pontos simultaneamente.
Com a adoção das instruções SIMD, o processador pode executar a mesma operação matemática em vários blocos de dados ao mesmo tempo. Na prática, estúdios e pesquisadores que lidam com renderizações pesadas terão tempos de processamento menores em hardware compatível, gastando menos tempo na conversão e transferência de pontos geométricos para a grade volumétrica.
Suporte a instruções até AVX-512

A integração da VCL permite o uso explícito de intrínsecos SIMD em processadores Intel e AMD, suportando arquiteturas que utilizam até o conjunto de instruções AVX-512. O suporte vem desativado por padrão. Administradores e desenvolvedores precisam compilar a biblioteca com a flag USE_VCL=ON para habilitar a vetorização e extrair o desempenho máximo do hardware.
Segundo as notas de atualização, a equipe instrumentalizou os algoritmos de PointTransfer com instruções SIMD. Operações envolvendo análise de componentes principais (PCA) e métodos de rasterização de pontos apresentaram um ganho de desempenho que varia entre duas a quatro vezes em relação às versões anteriores.
O framework de transferência de pontos também recebeu suporte para definição de tamanhos de lote (batch size) em potências de dois para a rasterização em buckets. Essa alteração específica melhora a eficiência de todos os métodos de rasterização de pontos, mesmo nos casos em que os intrínsecos SIMD da VCL não estiverem ativados no momento da compilação.
Melhorias no NanoVDB e vdb_tool
O NanoVDB, a implementação do projeto voltada para aceleração em hardware gráfico, recebeu atualizações no gerenciamento de recursos via CUDA. As mudanças corrigem falhas de exatidão (correctness) apontadas em versões anteriores e entregam kernels de execução mais rápidos, otimizando o fluxo de dados durante simulações em placas de vídeo.
Por fim, o utilitário de linha de comando vdb_tool teve suas capacidades expandidas. A ferramenta agora suporta diagnósticos detalhados, geração de estatísticas, processamento avançado baseado em expressões e maior flexibilidade no suporte a diferentes formatos de arquivo. O binário também ganhou novas rotinas voltadas para a conversão direta entre malhas poligonais e volumes.