Criar modelos 3D para utilização em casa

O Windows Mixed Reality casa é o ponto de partida em que os utilizadores aterram antes de iniciar aplicações. Ao conceber a sua aplicação para auscultadores Windows Mixed Reality, utilize um modelo 3D como iniciador de aplicações e coloque ligações 3D profundas no Windows Mixed Reality casa. Este artigo descreve as diretrizes para a criação de modelos 3D compatíveis com o Windows Mixed Reality casa.

Descrição geral dos requisitos de recursos

Ao criar modelos 3D para Windows Mixed Reality, existem alguns requisitos que todos os recursos têm de cumprir:

  1. Exportação – os recursos têm de ser entregues no formato de ficheiro .glb (glTF binário), .obj ou .fbx
  2. Modelação – os recursos têm de ter menos de 10 mil triângulos, não têm mais de 64 nós e 32 submeshes por LOD
  3. Materiais - As texturas não podem ser maiores do que 4096 x 4096 e o mapa de mip mais pequeno não deve ser maior do que 4 em qualquer dimensão
  4. Animação – as animações não podem ter mais de 20 minutos a 30 FPS (36 000 keyframes) e têm de conter <= 8192 vértices de destino de modificação
  5. Otimização – os recursos devem ser otimizados com o WindowsMRAssetConverter. Necessário nas Versões <do SO Windows = 1709* e recomendado nas versões >do SO Windows = 1803

Nota

A aplicação 3D Viewer suporta diferentes formatos e resoluções, mas, em última análise, converte modelos em .glb/glTF antes de os apresentar no Mixed Reality home page.

O resto deste artigo inclui uma descrição geral detalhada destes requisitos e diretrizes adicionais para garantir que os seus modelos funcionam bem com o Windows Mixed Reality casa.

Documentação de orientação detalhada

Exportar modelos

O Windows Mixed Reality casa espera que os recursos 3D sejam entregues com o formato de ficheiro .glb com imagens incorporadas e dados binários. Glb é a versão binária do formato glTF, que é um padrão aberto gratuito 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údos 3D interoperáveis, também o suporte da Microsoft para o formato em todas as aplicações e experiências do Windows. Se ainda não criou um recurso glTF antes de encontrar uma lista de exportadores e conversores suportados na página github do grupo de trabalho glTF.

Diretrizes de modelação

O Windows espera que os recursos sejam gerados com as seguintes diretrizes de modelação para garantir a compatibilidade com a experiência doméstica Mixed Reality. Ao modelar no programa à sua escolha, tenha em atenção as seguintes recomendações e limitações:

  1. O eixo Up deve ser definido como "Y".
  2. O recurso deve enfrentar "forward" em direção ao eixo Z positivo.
  3. Todos os recursos devem ser construídos no plano terrestre na origem do local (0,0,0)
  4. As Unidades de Trabalho devem ser definidas como medidores e recursos para que os recursos possam ser criados à escala mundial
  5. Todas as malhas não precisam de ser combinadas, mas é recomendado se estiver a direcionar dispositivos restritos a recursos
  6. Todas as malhas devem partilhar um material, com apenas um conjunto de textura a ser utilizado para todo o recurso
  7. As UVs têm de ser colocadas num arranjo quadrado no espaço 0-1. Evite tilar texturas, embora sejam permitidas.
  8. As várias UVs não são suportadas
  9. Os materiais de dois lados não são suportados

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

A casa Windows Mixed Reality não suporta modelos com mais de 10.000 triângulos. Recomenda-se que triangule as malhas antes de exportar para garantir que não excedem esta contagem. O WINDOWS MR também suporta níveis de geometria opcionais de detalhes (LODs) para garantir uma experiência de desempenho e de alta qualidade. O WindowsMRAssetConverter irá ajudá-lo a combinar três versões do modelo num único modelo .glb. O Windows determina o LOD a apresentar com base na quantidade de imóveis de ecrã que o modelo está a ocupar. Apenas são suportados 3 níveis de LOD com as seguintes contagens de triângulo recomendadas:

Nível LOD Contagem de Triângulos Recomendada Contagem Máxima de Triângulos
LOD 0 10,000 10,000
LOD 1 5000 10,000
LOD 2 2.500 10,000

Contagens de nós e limites de submesh

O Windows Mixed Reality home não suporta modelos com mais de 64 nós ou 32 submeshes por LOD. Os nós são um conceito na especificação glTF que define os objetos na cena. As submeshes são definidas na matriz de primitivos na malha no objeto.

Funcionalidade Descrição Máximo suportado Documentação
Nós Objetos na Cena glTF 64 por LOD Aqui
Submeshes Soma de primitivos em todas as malhas 32 por LOD Aqui

Diretrizes materiais

As texturas devem ser preparadas com um fluxo de trabalho de rugosidade de metal PBR. Comece por criar um conjunto completo de texturas, incluindo Albedo, Normal, Oclusão, Metálico e Roughness. Windows Mixed Reality suporta texturas com resoluções até 4096x4096, mas recomenda-se que crie a 512x512. As texturas devem ser criadas em resoluções em múltiplos de 4. Este é um requisito para o formato de compressão aplicado às texturas nos passos de exportação descritos abaixo. Ao gerar mapas mip ou uma textura, o mip mais baixo tem de ser um máximo de 4x4.

Tamanho da Textura Recomendado Tamanho Máximo da Textura Mip mais baixo
512x512 4096x4096 máx. 4x4

Mapa do Albedo (cor base)

Cor não processada sem informações de iluminação. Este mapa também contém as informações de reflexão e difusão para superfícies metálicas (brancas no mapa metálico) e isolantes (preto no mapa metálico), respetivamente.

Normal

Mapa Do Espaço De Tangente Normal

Mapa de rugosidade

Descreve o microsuface do objeto. Branco 1.0 é preto áspero 0.0 é suave. Este mapa dá ao elemento o maior caráter, uma vez que descreve verdadeiramente a superfície. Por exemplo, arranhões, impressões digitais, manchas, sujidade, etc.

Mapa de oclusão ambiente

Mapa de escala de valores que mostra áreas de luz oculta, que bloqueia reflexos

Mapa metálico

Indica ao sombreado se algo é metálico ou não. Raw Metal = 1,0 branco Não metálico = 0,0 preto. Podem existir valores cinzentos transitórios que indicam algo que cobre o metal cru, como a sujidade, mas, em geral, este mapa deve ser apenas preto e branco.

Otimizações

Windows Mixed Reality casa oferece uma série de otimizações sobre as especificações glTF principais definidas com extensões personalizadas. Estas otimizações são necessárias nas versões <do Windows = 1709 e recomendadas em versões mais recentes do Windows. Pode otimizar facilmente qualquer modelo glTF 2.0 com a Windows Mixed Reality Conversor de Recursos disponível no GitHub. Esta ferramenta irá executar as otimizações e as embalagens de textura corretas, conforme especificado abaixo. Para utilização geral, recomendamos que utilize o WindowsMRAssetConverter, mas se precisar de mais controlo sobre a experiência e quiser criar o seu próprio pipeline de otimização, pode consultar a especificação detalhada abaixo.

Nota

Para obter uma lista definitiva das possibilidades para limites exatos do modelo, veja o artigo de otimização de modelos 3D para utilização em aplicações Dynamics 365.

Materiais

Para melhorar o tempo de carregamento de recursos em ambientes Mixed Reality o Windows MR suporta a composição de texturas DDS comprimidas embaladas de acordo com o esquema de embalagem de textura definido nesta secção. As texturas DDS são referenciadas com a extensão MSFT_texture_dds. É altamente recomendado comprimir texturas.

HoloLens

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

Propriedade glTF Textura Esquema de Embalagem
pbrMetallicRoughness baseColorTexture Vermelho (R), Verde (G), Azul (B)
MSFT_packing_normalRoughnessMetallic normalRoughnessMetallicTexture Normal (RG), Roughness (B), Metallic (A)

Ao comprimir as texturas DDS, é esperada a seguinte compressão em cada mapa:

Textura Compressão Esperada
baseColorTexture, normalRoughnessMetallicTexture BC7

Headsets envolventes (VR)

As experiências de Windows Mixed Reality baseadas em PC para headsets envolventes (VR) esperam que as texturas sejam embaladas com uma configuração de 3 texturas com 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 occlusionRoughnessMetallicTexture Oclusão (R), Roughness (G), Metallic (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normal (RG)

Ao comprimir as texturas DDS, é esperada a seguinte compressão em cada mapa:

Textura Compressão Esperada
normalTexture BC5
baseColorTexture, occlusionRoughnessMetallicTexture BC7
SO <Windows = 1709

Propriedade glTF Textura Esquema de Embalagem
pbrMetallicRoughness baseColorTexture Vermelho (R), Verde (G), Azul (B)
MSFT_packing_occlusionRoughnessMetallic roughnessMetallicOcclusionTexture Roughness (R), Metallic (G), Occlusion (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normal (RG)

Ao comprimir as texturas DDS, é esperada a seguinte compressão em cada mapa:

Textura Compressão Esperada
normalTexture BC5
baseColorTexture, roughnessMetallicOcclusionTexture BC7

Adicionar LODs de malha

O WINDOWS MR utiliza LODs de nó de geometria para compor modelos 3D em diferentes níveis de detalhe, consoante a cobertura no ecrã. Embora esta funcionalidade não seja tecnicamente necessária, é recomendada para todos os recursos. Atualmente, o Windows suporta três níveis de detalhe. O LOD predefinido é 0, o que representa a mais alta qualidade. Outros LODs são numerados sequencialmente, por exemplo, 1, 2 e ficam progressivamente mais baixos em qualidade. O Conversor de Recursos Windows Mixed Reality suporta a geração de recursos que cumprem esta especificação LOD ao aceitar vários modelos glTF e intercalá-los num único recurso com níveis LOD válidos. A tabela seguinte descreve os destinos de ordenação e triângulo de LOD esperados:

Nível LOD Contagem de Triângulos Recomendada Contagem Máxima de Triângulos
LOD 0 10,000 10,000
LOD 1 5000 10,000
LOD 2 2.500 10,000

Ao utilizar LODs, especifique sempre 3 níveis LOD. Os LODs em falta farão com que o modelo não seja composto inesperadamente à medida que o sistema LOD muda para o nível LOD em falta. Atualmente, o glTF 2.0 não suporta LODs como parte da especificação principal. Os LODs devem ser definidos com a extensão MSFT_LOD.

Cobertura do ecrã

Os LODs são apresentados em Windows Mixed Reality com base num sistema impulsionado pelo valor de cobertura do ecrã definido em cada LOD. Os objetos que estão atualmente a consumir uma parte maior do espaço no ecrã são apresentados a um nível LOD superior. A cobertura do ecrã não faz parte da especificação principal glTF 2.0 e tem de ser especificada com MSFT_ScreenCoverage na secção "extras" da extensão MSFT_lod.

Nível LOD Intervalo Recomendado Intervalo Predefinido
LOD 0 100% - 50% 0,5
LOD 1 Menos de 50% - 20% 0,2
LOD 2 Abaixo de 20% - 1% 0.01
LOD 4 Abaixo de 1% -

Diretrizes de animação

Nota

Esta funcionalidade foi adicionada como parte da Atualização de Abril de 2018 Windows 10. Em versões mais antigas do Windows, estas animações não serão reproduzidas. No entanto, continuarão a ser carregadas se forem criadas de acordo com a documentação de orientação neste artigo.

A casa de realidade mista suporta objetos glTF animados no HoloLens e headsets envolventes (VR). Se quiser acionar animações no seu modelo, terá de utilizar a extensão Mapa de Animação no formato glTF. Esta extensão permite-lhe acionar animações no modelo glTF com base na presença do utilizador no mundo, por exemplo, acionar uma animação quando o utilizador está próximo do objeto ou enquanto está a olhar para o mesmo. Se o objeto glTF tiver animações, mas não definir acionadores, as animações não serão reproduzidas. A secção abaixo descreve um fluxo de trabalho para adicionar estes acionadores a qualquer objeto glTF animado.

Ferramentas

Primeiro, transfira as seguintes ferramentas se ainda não as tiver. Estas ferramentas tornarão mais fácil abrir qualquer modelo glTF, pré-visualizar, fazer alterações e guardar novamente como glTF ou .glb:

  1. Visual Studio Code
  2. Ferramentas glTF para Visual Studio Code

Abrir e pré-visualizar o modelo

Comece por abrir o modelo glTF no VSCode ao arrastar o ficheiro .glTF para a janela do editor. Se tiver um ficheiro .glb em vez de um ficheiro .glTF, pode importá-lo para o VSCode com o suplemento Ferramentas glTF que transferiu. Aceda a "Ver -> Paleta de Comandos" e, em seguida, comece a escrever "glTF" na paleta de comandos e selecione "glTF: Import from glb", que irá apresentar um seletor de ficheiros para importar um .glb com.

Depois de abrir o modelo glTF, deverá ver o JSON na janela do editor. Também pode pré-visualizar o modelo num visualizador 3D em direto ao clicar com o botão direito do rato no nome do ficheiro e selecionar o atalho de comando "glTF: Pré-visualizar Modelo 3D" no menu de clique com o botão direito do rato.

Adicionar os acionadores

Os acionadores de animação são adicionados ao JSON do modelo glTF com 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 RASCUNHO). Para adicionar a extensão ao modelo, desloque-se até ao fim do ficheiro glTF no editor e adicione o bloco "extensionsUsed" e "extensions" ao seu ficheiro, caso ainda não existam. Na secção "extensionsUsed", irá adicionar uma referência à extensão "EXT_animation_map" e no bloco "extensões" irá adicionar os seus mapeamentos às animações no modelo.

Conforme indicado na especificação , define o que aciona a animação com a cadeia "semântica" numa lista de "animações", que é uma matriz de índices de animação. No exemplo abaixo, especificámos a animação a reproduzir enquanto o utilizador está a olhar para o objeto:

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

A seguinte animação aciona a semântica suportada pelo Windows Mixed Reality home page.

  • "ALWAYS": ciclo constante de uma animação
  • "HELD": ciclo durante toda a duração em que um objeto é agarrado.
  • "GAZE": Ciclo enquanto um objeto está a ser analisado
  • "PROXIMIDADE": ciclo enquanto um visualizador está perto de um objeto
  • "APONTAMENTO": ciclo enquanto um utilizador está a apontar para um objeto

Guardar e exportar

Depois de efetuar as alterações ao modelo glTF, pode guardá-lo diretamente como glTF. Também pode clicar com o botão direito do rato no nome do ficheiro no editor e selecionar "glTF: Exportar para GLB (ficheiro binário)" para exportar um .glb.

Restrições

As animações não podem ter mais de 20 minutos e não podem conter mais de 36 000 keyframes (20 minutos a 30 FPS). Além disso, ao utilizar animações baseadas em destinos de modificação, não exceda 8192 vértices de destino de modificação ou menos. Exceder estas contagens fará com que o elemento animado não seja suportado no Windows Mixed Reality casa.

Funcionalidade Máximo
Duração 20 minutos
Keyframes 36,000
Modificar Vértices de Destino 8192

notas de Implementação glTF

O MR do Windows não suporta a inversão da geometria com escalas negativas. A geometria com escalas negativas provavelmente resultará em artefactos visuais.

O recurso glTF TEM de apontar para a cena predefinida com o atributo de cena a ser composto pelo MR do Windows. Além disso, o carregador windows MR glTF antes da atualização de abril de 2018 do Windows 10necessita de acessórios:

  • Tem de ter valores mínimo e máximo.
  • O tipo SCALAR tem de ser componentType UNSIGNED_SHORT (5123) ou UNSIGNED_INT (5125).
  • O tipo VEC2 e VEC3 tem de ser componentType FLOAT (5126).

As seguintes propriedades de material são utilizadas a partir da especificação glTF 2.0 do núcleo, mas não são necessárias:

  • baseColorFactor, metallicFactor, roughnessFactor
  • baseColorTexture: tem de apontar para uma textura armazenada em dds.
  • EmissiveTexture: tem de apontar para uma textura armazenada em dds.
  • emissiveFactor
  • alfaMode

As seguintes propriedades materiais são ignoradas das especificações principais:

  • Todas as Multi-UVs
  • metalRoughnessTexture: Em vez disso, tem de utilizar a embalagem de textura otimizada da Microsoft definida abaixo
  • normalTexture: Em vez disso, tem de utilizar a embalagem de textura otimizada da Microsoft definida abaixo
  • normalScale
  • occlusionTexture: em vez disso, tem de utilizar a embalagem de textura otimizada da Microsoft definida abaixo
  • occlusionStrength

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

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

Mais recursos

Ver também