USD (Universal Scene Description, ou Descrição de Cena Universal) é um formato de arquivo desenvolvido pela Pixar para intercambiar cenas de computação gráfica 3D entre aplicativos de criação de conteúdo digital. É um formato de arquivo extensível de código aberto que pode armazenar informações sobre geometria 3D, sombreamento, iluminação, física e outras áreas relacionadas a gráficos. Ele também pode compor e substituir dados de várias fontes, criando um único grafo de cena que pode ser editado de forma não destrutiva.
O USD é usado em muitos setores, como design, arquitetura, animação e jogos, e é suportado por muitos aplicativos de software, como Blender, Cinema 4D, Houdini, Maya e SceneKit da Apple. O USD também é o núcleo do pipeline de gráficos 3D da Pixar e a base da plataforma Omniverse da Nvidia.
A especificação Universal Scene Description (USD) usa vários formatos de arquivo:
- .usd – Pode ser codificado em ASCII ou binário
- .usda – Codificado em ASCII
- .usdc – Codificado em binário
- .usdz – Um arquivo de pacote formatado como um arquivo zip não criptografado e com compressão zero. Pode conter arquivos .usd, .usda, .usdc, .png, .jpeg, .m4a, .mp3 e .wav.
O Blender (ou qualquer outro software 3D) facilita sua vida, permitindo que você execute muitas tarefas usando apenas sua interface, mas, uma vez que você começa a introduzir outros softwares em seu pipeline, os problemas começam a surgir de todos os lados. Então, vamos falar sobre os maiores problemas que você provavelmente já está enfrentando hoje e como a Pixar criou a solução para superá-los ao infinito e além.
O Problema
Se você já texturizou um modelo no Substance, importou seu trabalho para o Unreal ou tentou compartilhar um projeto com alguém que trabalha em um software diferente, provavelmente percebeu o quão irritante isso pode ser. Ter que lidar com diferentes tipos de arquivo, fluxos de trabalho de exportação adequados para cada software individual e perder dados valiosos no processo pode fazer você se sentir como se estivesse batendo a cabeça na parede de propósito repetidamente.
E acredite quando digo que isso é algo que todos os artistas 3D em todos os lugares experimentam – quer você esteja trabalhando como um criador solo com seu próprio pipeline personalizado ou em um grande estúdio como a Pixar, tendo que se conformar com restrições de pipeline rigorosas para manter um fluxo de trabalho adequado para todas as outras 1.232 pessoas que trabalham lá. O problema permanece o mesmo.
Por Que Isso Acontece
Faz sentido, no entanto, certo? Cada software usa um tipo de arquivo proprietário que funciona para suas necessidades. Portanto, um arquivo do Blender, por exemplo, foi codificado para funcionar no Blender, mas não no Substance. Obviamente, em uma empresa, cada artista precisa que um arquivo seja compatível com sua própria ferramenta de escolha para facilitar e, às vezes, até mesmo tornar possível continuar o trabalho em um projeto.
É por isso que ter que exportar para um tipo de arquivo mais universal como FBX ou OBJ é uma obrigação ao mudar para um software diferente ou entregar seu projeto para a próxima pessoa. Mas mesmo esses tipos de arquivo têm muitas limitações, como a incapacidade de armazenar adequadamente simulações, iluminação e muitos outros aspectos de seus projetos do Blender.
Apresentando o USD
Então, qual é a resposta para esse problema? Universal Scene Description (USD) para abreviar! Publicado pela primeira vez como software de código aberto pela Pixar em 2016 como seu novo pipeline principal, o USD era principalmente uma forma de seus artistas facilitarem a movimentação de dados entre si e as ferramentas que usam.
Desde o seu lançamento, o USD está constantemente passando por mudanças e melhorias, o que é comum para softwares de código aberto, assim como o Blender, que também é constantemente atualizado e expandido.
O Que É USD?
USD é muitas coisas e, se eu me aprofundar muito nisso, pode realmente ser uma coisa muito técnica e complicada de descrever. Mas, simplificando, USD é uma forma de fazer com que aplicativos como Blender, Unreal, Houdini, Substance, Maya, Nvidia Omniverse e muitos outros conversem e se entendam.
Dentro da indústria de computadores, existe realmente uma palavra sofisticada para isso – interoperabilidade. Um pouco difícil de dizer! No entanto, por mais sofisticado que isso pareça, na verdade não é tão complicado quanto você pode pensar. Você pode começar a usá-lo hoje em seu próprio computador ou mesmo com vários amigos ou colegas em todo o mundo.
Como o USD É Diferente
Tradicionalmente, um pipeline é uma coisa muito unidirecional, onde cada pessoa só pode trabalhar em algo depois que a pessoa anterior termina. Ou, para você pessoalmente, você só pode ir para a próxima etapa do processo, como texturização, se a modelagem estiver completamente concluída.
Você pode comparar isso com assar um bolo – ao construir e criar este bolo, você tem que terminar cada etapa antes de poder começar a próxima. Você não pode assar o bolo antes de misturar a massa e não pode construí-lo antes de assar os bolos no forno. Cada etapa depende da conclusão da anterior.
Mais importante ainda, uma vez que você coloca a cobertura e o recheio ou decide que o bolo precisa ser de chocolate, não há como voltar atrás. Você não pode desassar o bolo, mudar o sabor para baunilha ou tirar a cobertura. E é isso que chamamos de fluxo de trabalho destrutivo.
O USD, no entanto, é mais como Legos. Cada bloco representa uma parte de uma cena 3D – personagens, objetos, ambientes, o que for – e você pode montar, desmontar e modificar esses blocos independentemente.
Em um pipeline tradicional, mudar um bloco envolveria ter que ajustar o resto da estrutura. Mas com o USD, cada bloco de construção pode ser trabalhado independentemente e eu posso simplesmente mudar um bloco para uma cor diferente, por exemplo, sem a necessidade de reconstruir todo o modelo.
É uma abordagem não destrutiva que permite experimentação e fluxos de trabalho colaborativos sem ser prejudicado pelas limitações do pipeline.
O Objetivo do USD
O objetivo em tudo isso com o USD é criar uma maneira para que os dados se movam livremente entre os aplicativos, para dar aos artistas e equipes a liberdade de se concentrarem na criação e não na exportação e ficarem presos esperando que uns aos outros consigam continuar trabalhando. Os artistas não devem ter que recomeçar se a equipe de conceito decidir mudar as coisas mais tarde. E não deve haver problemas com os formatos de arquivo vindos de outros programas que não funcionam em seu software de escolha.
Em um nível de serviço, é isso que o USD parece ser – um formato de arquivo altamente interoperável que é facilmente intercambiável entre diferentes softwares. E para ser justo, é isso que será para a maioria dos usuários do Blender, já que muitos de nós tendem a trabalhar sozinhos. Mas o USD é mais do que apenas um tipo de arquivo…
É uma forma de montar e organizar qualquer número de ativos em conjuntos virtuais, cenas, tomadas e mundos – usando-os de aplicativo para aplicativo e editando-os de forma não destrutiva, muitas vezes em tempo real.
Como Trabalhar com USD
Então, vamos ver como podemos trabalhar com o USD em um fluxo de trabalho do Blender. Em sua forma mais básica, o USD tem sido uma opção de exportação no Blender desde a versão 3.6. Portanto, se você tiver um arquivo em que está trabalhando e quiser salvá-lo como um arquivo USD, você pode ir para Arquivo > Exportar > Universal Scene Description e ele lhe dará uma janela para salvar o arquivo.
Tem algumas opções, mas as principais a serem observadas são:
- Somente Seleção – Incluirá apenas os objetos selecionados em sua exportação
- Animação e Cabelo – Incluirá/excluirá dados de animação e partículas de cabelo para seus objetos
Aqui está um ótimo exemplo de como o USD funciona. Este é um arquivo da biblioteca de amostra USD da Nvidia que foi feito em uma série de softwares como 3ds Max e Substance. Se você abrir isso no Blender importando-o, funciona quase 100% imediatamente!
Como você pode ver, ele contém todos os dados, incluindo luzes, profundidade de campo, a câmera, materiais e muito mais. A única coisa que não é exportada corretamente é a iluminação HDRI que temos que configurar nós mesmos. Mas é incrível pensar que isso parece quase idêntico dentro do renderizador Arnold do 3DS Max, e acabou de ser exportado para o Blender e funciona tão bem usando um único tipo de arquivo!
Tem hierarquia adequada, materiais e basicamente tudo está configurado. É realmente, muito legal! De qualquer forma, isso mostra como o USD funciona entre diferentes aplicativos e que ele funciona como um formato de arquivo interoperável.
Um Exemplo Prático de USD
Mas vamos dar uma olhada em um exemplo mais prático. Para este exemplo de pipeline, estarei usando um fluxo de trabalho típico de usar o Blender para modelar um objeto para um jogo.
O pipeline tradicional seria algo como isto:
- Criar modelo no Blender
- Desembrulhar UV do modelo
- Exportar como FBX, pois o Painter não pode usar arquivos do Blender
- Importar FBX para o Substance Painter
- Adicionar materiais no Substance
- Exportar texturas como imagens
- Importar FBX para o motor de jogo
- Configurar texturas manualmente
- Criar renders
Com o USD, podemos simplificar significativamente este processo e reter um fluxo de trabalho não destrutivo em grande parte. O pipeline permanece muito semelhante, com Blender e Substance sendo os principais componentes.
Mas como o USD não funciona nativamente em tempo real entre esses aplicativos (principalmente porque o Blender ainda tem suporte limitado ao USD), estarei usando o Nvidia Omniverse para criar essa conexão para nós.
Através do Omniverse, posso ter acesso a uma ramificação mais compatível com USD do Blender construída pela Nvidia. Posso habilitar o conector Omniverse para o Substance Painter para realizar o LifeLink. E posso usar o USD Composer para preencher a lacuna entre os aplicativos e visualizar o produto final.
Com isso configurado, agora podemos abrir nosso projeto Blender na ramificação Blender personalizada. Se então pressionarmos N e formos para o lado direito aqui, obtemos o add-on Nucleus, permitindo-nos exportar isso como um arquivo USD.
Se então formos para o USD Composer e abrirmos esse arquivo USD, obtemos uma espécie de link ao vivo entre os aplicativos. Agora posso fazer qualquer alteração na malha, reexportá-la e ter isso automaticamente captado dentro do USD Composer.
Fica melhor! Depois de importarmos o modelo, podemos abrir o Substance Painter, habilitar o conector Omniverse e ir para Importar Malha para importar automaticamente nosso objeto do USD Composer para o Substance. Neste ponto, se fizermos alterações no Blender, ainda podemos reexportar e captar isso no USD Composer, que se conecta automaticamente ao Substance Painter.
No entanto, uma vez que adicionamos texturas dentro do Substance Painter, fazer isso novamente removerá essas texturas. Então, uma vez que você esteja feliz, adicione seus materiais no Substance Painter e, com o Life Link habilitado, estes aparecerão automaticamente no USD Composer.
Quaisquer alterações que você fizer automaticamente exportam e atualizam no USD Composer. Realmente, muito legal!
Para mim, este fluxo de trabalho é praticamente alucinante. Ser capaz de fazer alterações no Blender e no Substance Painter em tempo real e ter tudo isso funcionando automaticamente e refletindo na renderização final é algo mais.
Se você estiver interessado em experimentar tudo o que o Nvidia Omniverse tem a oferecer, pode baixá-lo gratuitamente através do link na descrição. E se você quiser aprender mais sobre todos os casos de uso técnico que o USD e o Omniverse juntos fornecem, você pode encontrar outro link de download gratuito para isso, bem como um link para participar das sessões abertas do dia USD virtualmente ou pessoalmente no GTC em março.
Eu realmente recomendo verificar isso porque este é verdadeiramente o futuro dos fluxos de trabalho 3D.
Mais Sobre USD
Além deste exemplo divertido, o USD tem muito mais a oferecer. E se você fizer bom uso de suas capacidades, você se tornará muito mais eficiente como artista. Então, o que mais ele pode fazer?
Bem, além do fato de que um formato de arquivo universal tornaria sua vida muito mais fácil, é absolutamente o futuro. Desde agosto de 2023, o USD se tornou uma organização oficial sem fins lucrativos chamada The Alliance of Open USD (AO USD) para abreviar – com Pixar, Apple, Adobe, Autodesk e Nvidia como seus membros fundadores.
Eu acho que isso realmente mostra o quão investidas essas empresas estão e como elas realmente veem isso como o futuro de um formato de arquivo interoperável – que todos deveriam ser capazes de usar muito facilmente.
Além de ser um formato de arquivo, o USD armazena quase tudo – de luzes e câmeras a caches de simulação e dados de cena – em uma estrutura semelhante a camadas chamada “prims” (abreviação de primitivos). Ele contém todos os dados para descrever cenas e ativos complexos em um formato legível por uma ampla gama de aplicativos.
Agora, sabendo disso, o nome “Universal Scene Description” realmente faz muito sentido!
Se você está familiarizado com as coleções do Blender, o USD funciona de forma semelhante. Você pode aninhar qualquer coisa dentro de várias coleções aninhadas, com o benefício adicional de que o USD trata todas essas camadas como instâncias. Portanto, ele é capaz de carregar e ler muito rapidamente todos os dados de forma otimizada.
Isso funciona de forma semelhante à instanciação de coleções no Blender, o que é bom porque as instâncias exigem menos computação do que objetos duplicados reais. É também muito semelhante à pré-compilação no After Effects ou à composição no Nuke – você basicamente agrupa coisas dentro de grupos/camadas aninhadas, o que torna mais fácil e rápido para o computador trabalhar com o arquivo.
Um ótimo exemplo dessa otimização é o projeto de amostra USD mais recente da Nvidia chamado “Da Vinci’s Workshop”. Usando seu aplicativo USD Composer (que é perfeito para visualizar projetos USD com iluminação em tempo real), posso reproduzir esta enorme biblioteca de 67 GB de ativos, texturas e luzes com milhões de polígonos a cerca de 120 FPS sem qualquer atraso ou problemas. Isso é possível por causa de quão eficientemente o USD carrega os arquivos e texturas de uma forma extremamente otimizada.
Da mesma forma, para animações que costumavam ser exportadas como arquivos Alembic, o cache USD agora é muito mais rápido. Os arquivos Alembic são geralmente enormes, muito não otimizados e lidos lentamente pelo seu computador – geralmente resultando em reprodução instável. Com o USD, alcançar um FPS estável não é problema algum e o tamanho do arquivo é muito menor.
Mais Benefícios
Outro recurso muito legal é que você pode acessar as camadas dentro do seu projeto USD de fora do arquivo com bastante facilidade. Por exemplo, se houver uma camada prim contendo os dados de que uma esfera é verde dentro de um arquivo USD, simplesmente mudando essa cor para vermelho em um editor compatível com USD como o USD Composer, podemos mudar a cor da esfera sem nunca abrir o arquivo no Blender! Agora isso é incrivelmente poderoso.
Embora esse seja obviamente um exemplo básico, ele mostra o potencial. Outro grande benefício é que o USD ainda permite que você trabalhe apenas em uma única camada de um arquivo complexo em um determinado software. Portanto, mesmo que seu arquivo contenha um projeto completo com câmeras, luzes, etc., você ainda pode abrir apenas uma parte dele – por exemplo, um único modelo – dentro do Substance Painter e trabalhar apenas nessa parte do projeto sem afetar mais nada.
Isso também vale para se várias pessoas estiverem trabalhando no mesmo arquivo – outra grande força do USD. Dez pessoas poderiam trabalhar no mesmo arquivo para que as mudanças feitas pelo artista número um sejam imediatamente visíveis para o artista número dois, permitindo que eles adaptem seu trabalho de acordo. Ser capaz de colaborar com pessoas remotamente é incrivelmente poderoso.
O Futuro dos Pipelines 3D
É seguro dizer que o USD é muito mais do que apenas um formato de arquivo. É uma plataforma de tecnologia abrangente e um ecossistema que em sua missão realmente se alinha com o Blender: a liberdade de criar sem limitações.
O USD ainda está em desenvolvimento. O sonho é real – um formato de arquivo de software universal utilizável por qualquer software na indústria, editável em tempo real por vários artistas.
Todos nós devemos ser gratos à Pixar por abrir o caminho com este desenvolvimento incrível e por empresas como Nvidia e Apple contribuírem com sua parte.