Partilhar via


Crie modelos 3D para uso em casa

A página inicial do Windows Mixed Reality é o ponto de partida onde os usuários pousam antes de iniciar aplicativos. Ao projetar seu aplicativo para fones de ouvido Windows Mixed Reality, use um modelo 3D como um inicializador de aplicativos e coloque links profundos 3D na página inicial do Windows Mixed Reality. Este artigo descreve as diretrizes para a criação de modelos 3D compatíveis com o Windows Mixed Reality home.

Visão geral dos requisitos de ativos

Ao criar modelos 3D para o Windows Mixed Reality, há alguns requisitos que todos os ativos devem atender:

  1. Exportação - Os ativos devem ser entregues no formato de arquivo .glb (binário glTF), .obj ou .fbx
  2. Modelagem - Os ativos devem ter menos de 10k triângulos, não ter mais de 64 nós e 32 submalhas por LOD
  3. Materiais - As texturas não podem ser maiores que 4096 x 4096 e o menor mapa mip não deve ser maior que 4 em nenhuma das dimensões
  4. Animação - As animações não podem ter mais de 20 minutos a 30 FPS (36.000 quadros-chave) e devem conter <= 8192 vértices de destino morfo
  5. Otimização - Os ativos devem ser otimizados usando o WindowsMRAssetConverter. Necessário em versões <do sistema operacional Windows = 1709* e recomendado em versões >do sistema operacional Windows = 1803

Nota

A aplicação 3D Viewer suporta diferentes formatos e resoluções, mas acaba por converter modelos para .glb/glTF antes de os apresentar na página inicial de Realidade Mista.

O restante deste artigo inclui uma visão geral detalhada desses requisitos e diretrizes extras para garantir que seus modelos funcionem bem com o Windows Mixed Reality home.

Orientações pormenorizadas

Exportação de modelos

A página inicial do Windows Mixed Reality espera que os ativos 3D sejam entregues usando o formato de arquivo .glb com imagens incorporadas e dados binários. Glb é a versão binária do formato glTF, que é um padrão aberto livre de royalties para entrega de ativos 3D mantido pelo grupo Khronos. À medida que o glTF evolui como um padrão da indústria para conteúdo 3D interoperável, o mesmo acontecerá com o suporte da Microsoft para o formato em aplicativos e experiências do Windows. Se você não criou um ativo glTF antes, você pode encontrar uma lista de exportadores e conversores suportados na página github do grupo de trabalho glTF.

Diretrizes de modelagem

O Windows espera que os ativos sejam gerados usando as seguintes diretrizes de modelagem para garantir a compatibilidade com a experiência doméstica de Realidade Mista. Ao modelar em seu programa de sua escolha, tenha em mente as seguintes recomendações e limitações:

  1. O eixo para cima deve ser definido como "Y".
  2. O ativo deve estar voltado para a frente em direção ao eixo Z positivo.
  3. Todos os ativos devem ser construídos no plano de terra na origem do local (0,0,0)
  4. As Unidades de Trabalho devem ser definidas como medidores e ativos para que os ativos possam ser criados em escala mundial
  5. Todas as malhas não precisam ser combinadas, mas é recomendável se você estiver direcionando dispositivos com restrição de recursos
  6. Todas as malhas devem compartilhar um material, com apenas um conjunto de textura sendo usado para todo o ativo
  7. Os UVs devem ser dispostos em uma disposição quadrada no espaço 0-1. Evite texturas de azulejos, embora elas sejam permitidas.
  8. Multi-UVs não são suportados
  9. Materiais de dupla face não são suportados

Contagens de triângulos e níveis de detalhe (LODs)

A página inicial do Windows Mixed Reality não suporta modelos com mais de 10.000 triângulos. É recomendável triangular suas malhas antes de exportar para garantir que elas não excedam essa contagem. O Windows MR também oferece suporte a níveis opcionais de geometria de detalhes (LODs) para garantir uma experiência de alto desempenho e qualidade. O WindowsMRAssetConverter irá ajudá-lo a combinar 3 versões do seu modelo em um único modelo .glb. O Windows determina qual LOD exibir com base na quantidade de espaço de tela que o modelo está ocupando. Apenas 3 níveis de LOD são suportados com as seguintes contagens de triângulos recomendadas:

Nível LOD Contagem de triângulos recomendada Contagem máxima de triângulos
LOD 0 10.000 10.000
LOD 1 5.000 10.000
LOD 2 2500 10.000

Contagens de nós e limites de submalha

A página inicial do Windows Mixed Reality não suporta modelos com mais de 64 nós ou 32 submeshes por LOD. Nós são um conceito na especificação glTF que define os objetos na cena. As submalhas são definidas na matriz de primitivos na malha do objeto.

Funcionalidade Description Max suportado Documentação
Nós Objetos na cena glTF 64 por LOD aqui
Submalhas Soma de primitivos em todas as malhas 32 por LOD aqui

Diretrizes de materiais

As texturas devem ser preparadas usando um fluxo de trabalho de rugosidade de metal PBR. Comece criando um conjunto completo de texturas, incluindo Albedo, Normal, Oclusão, Metálica e Rugosidade. O Windows Mixed Reality suporta texturas com resoluções de até 4096x4096, mas é recomendável que você crie em 512x512. As texturas devem ser criadas em resoluções em múltiplos de 4. Este é um requisito para o formato de compactação aplicado a texturas nas etapas de exportação descritas abaixo. Ao gerar mapas de mip ou uma textura, o mínimo de mip deve ser um máximo de 4x4.

Tamanho de textura recomendado Tamanho máximo da textura Mip mais baixo
512 x 512 4096x4096 máx4 máximo 4x4

Albedo (cor base) mapa

Cor crua sem informações de iluminação. Este mapa também contém as informações de refletância e difusa para superfícies metálicas (brancas no mapa metálico) e isolantes (pretas no mapa metálico), respectivamente.

Normal

Mapa do Espaço Tangente Normal

Mapa de rugosidade

Descreve a microsuperfície do objeto. Branco 1.0 é áspero Preto 0.0 é liso. Este mapa dá ao ativo o maior caráter, pois descreve verdadeiramente a superfície. Por exemplo, arranhões, impressões digitais, manchas, sujeira e assim por diante.

Mapa de oclusão ambiente

Mapa da escala de valores mostrando áreas de luz ocluída, que bloqueia reflexos

Mapa metálico

Diz ao sombreador se algo é metal ou não. Raw Metal = 1,0 branco Não-metal = 0,0 preto. Pode haver valores de cinza de transição que indicam algo cobrindo o metal bruto, como sujeira, mas em geral este mapa deve ser apenas preto e branco.

Otimizações

O Windows Mixed Reality home oferece uma série de otimizações sobre as especificações principais do glTF definidas usando extensões personalizadas. Essas otimizações são necessárias em versões <do Windows = 1709 e recomendadas em versões mais recentes do Windows. Você pode facilmente otimizar qualquer modelo glTF 2.0 usando o Windows Mixed Reality Asset Converter disponível no GitHub. Esta ferramenta executará o empacotamento de textura correto e otimizações, conforme especificado abaixo. Para uso geral, recomendamos o uso do WindowsMRAssetConverter, mas se você precisar de mais controle sobre a experiência e quiser criar seu próprio pipeline de otimização, consulte a especificação detalhada abaixo.

Nota

Para obter uma lista definitiva de quais são as possibilidades de limites exatos do modelo, consulte o artigo de otimização de modelo 3D para uso em aplicativos do Dynamics 365.

Materiais

Para melhorar o tempo de carregamento de ativos em ambientes de Realidade Mista, o Windows MR oferece suporte à renderização de texturas DDS compactadas de acordo com o esquema de empacotamento de textura definido nesta seção. As texturas DDS são referenciadas usando a extensão MSFT_texture_dds. Comprimir texturas é altamente recomendado.

HoloLens

As experiências de realidade mista baseadas em HoloLens esperam que as texturas sejam embaladas usando uma configuração de 2 texturas usando a seguinte especificação de embalagem:

Propriedade glTF Textura Esquema de embalagem
pbrMetallicRoughness baseColorTexture Vermelho (R), Verde (G), Azul (B)
MSFT_packing_normalRoughnessMetallic normalRugosidadeTextura metálica Normal (RG), Rugosidade (B), Metálica (A)

Ao comprimir as texturas DDS, espera-se a seguinte compressão em cada mapa:

Textura Compressão esperada
baseColorTexture, normalRugosidadeMetallicTexture BC7

Auriculares imersivos (VR)

As experiências do Windows Mixed Reality baseadas em PC para fones de ouvido imersivos (VR) esperam que as texturas sejam embaladas usando uma configuração de 3 texturas usando a seguinte especificação de embalagem:

SO >Windows = 1803

Propriedade glTF Textura Esquema de embalagem
pbrMetallicRoughness baseColorTexture Vermelho (R), Verde (G), Azul (B)
MSFT_packing_occlusionRoughnessMetallic oclusãoRugosidadeTextura metálica Oclusão (R), rugosidade (G), metálica (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normal (RG)

Ao comprimir as texturas DDS, espera-se a seguinte compressão em cada mapa:

Textura Compressão esperada
normalTexture BC5
baseColorTextura, oclusãoRugosidadeMetallicTexture BC7
SO <Windows = 1709

Propriedade glTF Textura Esquema de embalagem
pbrMetallicRoughness baseColorTexture Vermelho (R), Verde (G), Azul (B)
MSFT_packing_occlusionRoughnessMetallic rugosidadeOclusão metálicaTextura Rugosidade (R), Metálica (G), Oclusão (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normal (RG)

Ao comprimir as texturas DDS, espera-se a seguinte compressão em cada mapa:

Textura Compressão esperada
normalTexture BC5
baseCorTextura, rugosidadeOclusão metálicaTextura BC7

Adicionando LODs de malha

O Windows MR usa LODs de nó de geometria para renderizar modelos 3D em diferentes níveis de detalhes, dependendo da cobertura na tela. Embora esse recurso não seja tecnicamente necessário, ele é recomendado para todos os ativos. Atualmente, o Windows suporta 3 níveis de detalhe. O LOD padrão é 0, que representa a mais alta qualidade. Outros LODs são numerados sequencialmente, por exemplo, 1, 2 e ficam progressivamente mais baixos em qualidade. O Windows Mixed Reality Asset Converter suporta a geração de ativos que atendem a essa especificação de LOD, aceitando vários modelos glTF e mesclando-os em um único ativo com níveis de LOD válidos. A tabela a seguir descreve a ordem LOD esperada e os alvos do triângulo:

Nível LOD Contagem de triângulos recomendada Contagem máxima de triângulos
LOD 0 10.000 10.000
LOD 1 5.000 10.000
LOD 2 2500 10.000

Ao usar LODs sempre especifique 3 níveis de LOD. A falta de LODs fará com que o modelo não seja renderizado inesperadamente à medida que o sistema LOD muda para o nível de LOD ausente. glTF 2.0 atualmente não suporta LODs como parte da especificação principal MSFT_LOD.

Cobertura do ecrã

Os LODs são exibidos no Windows Mixed Reality com base em um sistema orientado pelo valor de cobertura de tela definido em cada LOD. Os objetos que atualmente estão consumindo uma parte maior do espaço na tela são exibidos em um nível de LOD mais alto. A cobertura de tela não faz parte da especificação principal do glTF 2.0 e deve ser especificada usando MSFT_ScreenCoverage na seção "extras" da extensão MSFT_lod.

Nível LOD Intervalo recomendado Intervalo padrão
LOD 0 100% - 50% 0.5
LOD 1 Menos de 50% - 20% 0.2
LOD 2 Menos de 20% - 1% 0,01
LOD 4 Menos de 1% -

Diretrizes de animação

Nota

Este recurso foi adicionado como parte da Atualização de abril de 2018 do Windows 10. Em versões mais antigas do Windows, essas animações não serão reproduzidas, no entanto, elas ainda serão carregadas se forem criadas de acordo com as orientações deste artigo.

A casa de realidade mista suporta objetos glTF animados no HoloLens e fones de ouvido imersivos (VR). Se você deseja acionar animações em seu modelo, você precisará usar a extensão Mapa de Animação no formato glTF. Essa extensão permite acionar animações no modelo glTF com base na presença do usuário no mundo, por exemplo, acionar uma animação quando o usuário está perto do objeto ou enquanto está olhando para ele. Se o objeto glTF tiver animações, mas não definir gatilhos, as animações não serão reproduzidas. A seção abaixo descreve um fluxo de trabalho para adicionar esses gatilhos a qualquer objeto glTF animado.

Ferramentas

Primeiro, faça o download das seguintes ferramentas, se ainda não as tiver. Essas ferramentas facilitarão a abertura de qualquer modelo glTF, a visualização dele, a realização de alterações e o salvamento como glTF ou .glb:

  1. Visual Studio Code
  2. Ferramentas glTF para código do Visual Studio

Abertura e pré-visualização do modelo

Comece abrindo o modelo glTF no VSCode arrastando o arquivo .glTF para a janela do editor. Se você tiver um arquivo .glb em vez de .glTF, poderá importá-lo para o VSCode usando o complemento glTF Tools que você baixou. Vá para "View -> Command Palette" e, em seguida, comece a digitar "glTF" na paleta de comandos e selecione "glTF: Import from glb", que irá aparecer um seletor de arquivos para você importar um .glb com.

Depois de abrir seu modelo glTF, você verá o JSON na janela do editor. Você também pode visualizar o modelo em um visualizador 3D ao vivo usando o botão direito do mouse no nome do arquivo e selecionando o atalho de comando "glTF: Preview 3D Model" no menu do botão direito do mouse.

Adicionando os gatilhos

Os gatilhos de animação são adicionados ao modelo JSON glTF usando a extensão Mapa de Animação. A extensão do mapa de animação está documentada publicamente aqui no GitHub (NOTA: ESTA É UMA EXTENSÃO DE RASCUNHO). Para adicionar a extensão ao seu modelo, basta rolar até o final do arquivo glTF no editor e adicionar o bloco "extensionsUsed" e "extensions" ao seu arquivo, caso ainda não existam. Na seção "extensionsUsed", você adicionará uma referência à extensão "EXT_animation_map" e no bloco "extensions" adicionará seus mapeamentos às animações no modelo.

Conforme observado na especificação , você define o que aciona a animação usando a cadeia de caracteres "semântica" em uma lista de "animações", que é uma matriz de índices de animação. No exemplo abaixo, especificamos a animação a ser reproduzida enquanto o usuário está olhando para o objeto:

  "extensionsUsed": [
    "EXT_animation_map"
  ],
  "extensions" : {
      "EXT_animation_map" : {
            "bindings": [
                {
                    "semantic": "GAZE",
                    "animations": [0]
                }
            ]
      }
  }

A semântica dos gatilhos de animação a seguir é suportada pela página inicial do Windows Mixed Reality.

  • "SEMPRE": Constantemente loop uma animação
  • "HELD": Looped durante toda a duração em que um objeto é agarrado.
  • "OLHAR": Looped enquanto um objeto está sendo olhado
  • "PROXIMIDADE": Looped enquanto um espectador está perto de um objeto
  • "APONTAMENTO": Looped enquanto um usuário está apontando para um objeto

Poupança e exportação

Depois de fazer as alterações no seu modelo glTF, você pode salvá-lo diretamente como glTF. Você também pode clicar com o botão direito do mouse no nome do arquivo no editor e selecionar "glTF: Exportar para GLB (arquivo binário)" para exportar um arquivo .glb.

Restrições

As animações não podem ter mais de 20 minutos e não podem conter mais de 36.000 quadros-chave (20 minutos a 30 FPS). Além disso, ao usar animações baseadas em destino morfo, não exceda 8192 vértices de destino morfológico ou menos. Exceder essas contagens fará com que o ativo animado não seja suportado na página inicial do Windows Mixed Reality.

Caraterística Máximo
Duração 20 minutos
Quadros-chave 36,000
Vértices Alvo Morfo 8192

Notas de implementação do glTF

O Windows MR não suporta a inversão de geometria usando escalas negativas. Geometria com escalas negativas provavelmente resultará em artefatos visuais.

O ativo glTF DEVE apontar para a cena padrão usando o atributo scene a ser renderizado pelo Windows MR. Além disso, o carregador glTF do Windows MR antes da atualização de abril de 2018 do Windows 10 requer acessadores:

  • Deve ter valores min e max.
  • O tipo SCALAR deve ser componentType UNSIGNED_SHORT (5123) ou UNSIGNED_INT (5125).
  • Os tipos VEC2 e VEC3 devem ser componentType FLOAT (5126).

As seguintes propriedades de material são usadas a partir da especificação principal glTF 2.0, mas não são necessárias:

  • baseColorFactor, metallicFactor, rugosidadeFactor
  • baseColorTexture: Deve apontar para uma textura armazenada em dds.
  • emissiveTexture: Deve apontar para uma textura armazenada em dds.
  • emissiveFactor
  • alphaMode

As seguintes propriedades de material são ignoradas da especificação principal:

  • Todos os Multi-UVs
  • metalRoughnessTexture: Em vez disso, deve usar a embalagem de textura otimizada da Microsoft definida abaixo
  • normalTexture: Em vez disso, deve usar a embalagem de textura otimizada da Microsoft definida abaixo
  • normalEscala
  • occlusionTexture: Em vez disso, deve usar a embalagem de textura otimizada da Microsoft definida abaixo
  • oclusãoForça

O Windows MR não suporta linhas e pontos de modo primitivo.

Apenas um único atributo de vértice UV é suportado.

Mais recursos

Consulte também