Criar modelos 3D para uso em casa

A casa Windows Mixed Reality é o ponto de partida onde os utilizadores aterram antes de lançarem aplicações. Ao desenhar a sua aplicação para auscultadores Windows Mixed Reality, utilize um modelo 3D como lançador de aplicações e coloque ligações profundas 3D na casa Windows Mixed Reality. Este artigo descreve as diretrizes para a criação de modelos 3D compatíveis com a casa Windows Mixed Reality.

Visão geral dos requisitos do ativo

Ao criar modelos 3D para Windows Mixed Reality, existem alguns requisitos que todos os ativos devem satisfazer:

  1. Exportação - Os ativos devem ser entregues no formato .glb (glTF binário), .obj, ou .fbx file
  2. Modelação - Os ativos devem ser inferiores a 10k triângulos, não têm mais de 64 nóns e 32 submeshes por LOD
  3. Materiais - As texturas não podem ser maiores do que 4096 x 4096 e o menor mapa de mip não deve ser maior do que 4 em cada dimensão
  4. Animação - As animações não podem ser mais de 20 minutos a 30 FPS (36.000 quadros)e devem conter = 8192 vértices-alvo morfo
  5. Otimização - Os ativos devem ser otimizados utilizando o WindowsMRAssetConverter. Exigido nas versões Windows OS = 1709* e recomendado nas versões Windows OS > = 1803

Nota

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

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

Orientação detalhada

Modelos de exportação

A Windows Mixed Reality casa espera que os ativos 3D sejam entregues usando 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 livre de royalties para a 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 Windows aplicações e experiências. Se ainda não criou um ativo glTF antes pode encontrar uma lista de exportadores e conversores apoiados na página github do grupo de trabalho glTF.

Diretrizes de modelação

Windows espera que os ativos sejam gerados utilizando as seguintes diretrizes de modelação para garantir a compatibilidade com a experiência caseira da Realidade Mista. Ao modelar no seu programa à sua escolha, tenha em mente as seguintes recomendações e limitações:

  1. O eixo Up deve ser definido como "Y".
  2. O ativo deve enfrentar "para a frente" em direção ao eixo Z positivo.
  3. Todos os ativos devem ser construídos no avião terrestre na origem da cena (0,0,0)
  4. As unidades de trabalho devem ser definidas em contadores e ativos para que os ativos possam ser da autoria à 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 sendo usado para todo o ativo
  7. Os UVs devem ser colocados num arranjo quadrado no espaço 0-1. Evite a inclinação das texturas embora sejam permitidas.
  8. Multi-UVs não são suportados
  9. Materiais de dupla frente 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 suas malhas antes de exportar para garantir que não exceda esta contagem. Windows MR também suporta níveis de geometria opcionais de detalhe (LODs) para garantir uma experiência performante e de alta qualidade. O WindowsMRAssetConverter irá ajudá-lo a combinar 3 versões do seu modelo num único modelo .glb. Windows determina qual o LOD a exibir com base na quantidade de imóveis de ecrã que o modelo está a ocupar. Apenas 3 níveis de LOD são suportados com as seguintes contagens de triângulo recomendadas:

Nível LOD Contagem de Triângulo Recomendado Contagem do Triângulo Máximo
LOD 0 10,000 10,000
LOD 1 5000 10,000
LOD 2 2.500 10,000

Node conta e limites de submesh

A Windows Mixed Reality casa 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 do objeto.

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

Diretrizes materiais

As texturas devem ser preparadas utilizando um fluxo de trabalho de aspereza metálica PBR. Comece por criar um conjunto completo de texturas, incluindo Albedo, Normal, Oclusão, Metálico e Aspereza. Windows Mixed Reality suporta texturas com resoluções até 4096x4096, mas recomenda-se que autore em 512x512. As texturas devem ser da autoria de resoluções em múltiplos de 4. Trata-se de 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 deve ser um máximo de 4x4.

Tamanho da textura recomendada Tamanho da textura máxima Mip mais baixo
512x512 4096x4096 max 4x4

Mapa de Albedo (cor base)

Cor crua sem informação de iluminação. Este mapa também contém a reflectição e informação difusa para o metal (branco no mapa metálico) e superfícies isolantes (preto no mapa metálico) respectivamente.

Normal

Mapa normal do espaço tangente

Mapa de aspereza

Descreve a microsuperfície do objeto. Branco 1.0 é duro Preto 0.0 é suave. Este mapa dá ao ativo o mais caractere, como realmente descreve a superfície. Por exemplo, arranhões, impressões digitais, manchas, sujidades, sujidades, e assim por diante.

Mapa de oclusão ambiente

Mapa de escala de valor mostrando áreas de luz obstruída, que bloqueia reflexões

Mapa metálico

Diz ao shader se algo é metal ou não. Metal Cru = 1,0 branco Não-metal = 0,0 preto. Pode haver valores cinzentos transitórios que indicam algo que cobre o metal cru, como a sujidade, mas em geral este mapa deve ser apenas a preto e branco.

Otimizações

Windows Mixed Reality casa oferece uma série de otimizações em cima da especificação de glTF do núcleo definida usando extensões personalizadas. Estas otimizações são necessárias nas versões Windows < = 1709 e recomendadas em versões mais recentes de Windows. Pode otimizar facilmente qualquer modelo glTF 2.0 utilizando o Windows Mixed Reality Conversor de Ativos disponível no GitHub. Esta ferramenta executará a embalagem e otimização corretas da textura, conforme especificado abaixo. Para uma utilização geral, recomendamos a utilização do WindowsMRAssetConverter, mas se precisar de mais controlo sobre a experiência e quiser construir o seu próprio pipeline de otimização, então pode consultar a especificação detalhada abaixo.

Nota

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

Materiais

Para melhorar o tempo de carregamento de ativos em ambientes de Realidade Mista Windows MR suporta a renderização de texturas de DDS comprimidos embaladas de acordo com o esquema de embalagem de textura definido nesta secção. As texturas DDS são referenciadas utilizando a extensão MSFT_texture_dds. A compressão de texturas é altamente recomendada.

HoloLens

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

propriedade glTF Textura Regime de embalagem
pbrMetallicRoughness BaseColorTextura Vermelho (R), Verde (G), Azul (B)
MSFT_packing_normalRoughnessMetallic normalRoughnessTextura Metálica Normal (RG), Aspereza (B), Metálico (A)

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

Textura Compressão esperada
baseColorTextura, normalRoughnessTexturaMetallic BC7

Auscultadores imersivos (VR)

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

Windows OS > = 1803

propriedade glTF Textura Regime de embalagem
pbrMetallicRoughness BaseColorTextura Vermelho (R), Verde (G), Azul (B)
MSFT_packing_occlusionRoughnessMetallic oclusionRoughnessTexturaMetallic Oclusão (R), Asperidade (G), Metálico (B)
MSFT_packing_occlusionRoughnessMetallic normaltextura Normal (RG)

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

Textura Compressão esperada
normaltextura BC5
baseColorTextura, oclusionRoughnessTexturaMetallic BC7
Windows OS < = 1709

propriedade glTF Textura Regime de embalagem
pbrMetallicRoughness BaseColorTextura Vermelho (R), Verde (G), Azul (B)
MSFT_packing_occlusionRoughnessMetallic roughnessMetallicOcclusionTextura Aspereza (R), Metálico (G), Oclusão (B)
MSFT_packing_occlusionRoughnessMetallic normaltextura Normal (RG)

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

Textura Compressão esperada
normaltextura BC5
baseColorTextura, rugosidadeMetallicOcclusionTextura BC7

Adicionar LODs de malha

Windows MR usa LODs de nó de geometria para renderizar modelos 3D em diferentes níveis de detalhe, dependendo da cobertura no ecrã. Embora esta funcionalidade tecnicamente não seja necessária, é recomendado para todos os ativos. Atualmente Windows suporta 3 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 Windows Mixed Reality Asset Converter suporta ativos geradores que cumprem esta especificação LOD, aceitando vários modelos glTF e fundindo-os num único ativo com níveis de LOD válidos. O quadro que se segue descreve os alvos esperados de encomenda de LOD e triângulo:

Nível LOD Contagem de Triângulo Recomendado Contagem do Triângulo Máximo
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 de LOD. Os LODs em falta farão com que o modelo não se torne inesperadamente à medida que o sistema LOD muda para o nível LOD em falta. O glTF 2.0 não suporta atualmente LODs como parte da especificação principal MSFT_LOD.

Cobertura de tela

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 do ecrã são exibidos a um nível lod mais elevado. A cobertura do ecrã não faz parte da especificação do core glTF 2.0 e deve ser especificada utilizando MSFT_ScreenCoverage na secção "extras" da extensão MSFT_lod.

Nível LOD Gama Recomendada Intervalo predefinido
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

Esta funcionalidade foi adicionada como parte da Windows 10 Atualização de abril de 2018. Nas versões mais antigas de Windows estas animações não vão voltar a ser reproduzidas, no entanto, continuarão a carregar se forem da autoria de acordo com as orientações deste artigo.

A casa de realidade mista suporta objetos de glTF animados em auscultadores HoloLens e imersivos (VR). Se desejar ativar animações no seu modelo, terá de utilizar a extensão do Mapa de Animação no formato glTF. Esta extensão permite-lhe desencadear animações no modelo glTF com base na presença do utilizador no mundo, por exemplo, desencadear uma animação quando o utilizador estiver perto do objeto ou enquanto estiver a olhar para ele. Se o seu objeto glTF tiver animações, mas não definir gatilhos, as animações não serão reproduzidas. A secção abaixo descreve um fluxo de trabalho para adicionar estes gatilhos a qualquer objeto de glTF animado.

Ferramentas

Primeiro, descarregue as seguintes ferramentas se ainda não as tiver. Estas ferramentas facilitarão a abertura de qualquer modelo glTF, pré-visualizar, fazer alterações e economizar como glTF ou .glb:

  1. Visual Studio Code
  2. ferramentas glTF para Visual Studio Código

Abertura e pré-visualização do modelo

Comece por abrir o modelo glTF no VSCode arrastando o ficheiro .glTF para a janela do editor. Se tiver um ficheiro .glb em vez de um ficheiro .glTF, pode importá-lo em VSCode utilizando o addon glTF Tools que descarregou. Vá a "View - > Command Palette" e comece a escrever "glTF" na paleta de comando e selecione "glTF: Import from glb", que irá aparecer um apanhador de ficheiros para que possa importar um .glb com.

Uma vez aberto o seu modelo glTF, deve ver o JSON na janela do editor. Também pode visualizar o modelo num espectador 3D ao vivo, clicando no nome do ficheiro e selecionando o atalho de comando "glTF: Preview 3D Model" a partir do menu de cliques à direita.

Adicionando os gatilhos

Os gatilhos de animação são adicionados ao modelo glTF JSON usando a extensão do Mapa de Animação. A extensão do mapa de animação está documentada publicamente aqui no GitHub (NOTA: ISTO É UMA EXTENSÃO DE RASCUNHO). Para adicionar a extensão ao seu modelo basta deslocar-se até ao fim do ficheiro glTF no editor e adicionar o bloco de "extensões" e "extensões" ao seu ficheiro se já não existirem. Na secção "extensões" irá adicionar uma referência à extensão "EXT_animation_map" e no bloco de "extensões" irá adicionar os seus mapeamentos às animações do modelo.

Como nota na especificação, define-se o que desencadeia a animação usando a corda "semântica" numa lista de "animações", que é um conjunto de índices de animação. No exemplo abaixo, especificamos a animação para reproduzir enquanto o utilizador está a olhar para o objeto:

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

A animação que se segue desencadeia a semântica é apoiada pela casa Windows Mixed Reality.

  • "ALWAYS": Loop constantemente uma animação
  • "HELD": Enrolado durante toda a duração, um objeto é agarrado.
  • "GAZE": Enrolado enquanto um objeto está a ser olhado
  • "PROXIMIDADE": Enrolado enquanto um espectador está perto de um objeto
  • "APONTAMENTO": Enrolado enquanto um utilizador aponta para um objeto

Poupança e exportação

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

Restrições

As animações não podem ser superiores a 20 minutos e não podem conter mais de 36.000 quadros-chave (20 minutos a 30 FPS). Adicionalmente, quando se utilizam animações baseadas em alvos de morfo não excedem 8192 vértices-alvo de morfina ou menos. Ultrapassar estas contagens fará com que o ativo animado não seja suportado na casa Windows Mixed Reality.

Funcionalidade Máximo
Duração 20 minutos
Quadros-chave 36,000
Vértices-alvo morfo 8192

notas de implementação do glTF

Windows MR não suporta a geometria usando escalas negativas. Geometria com escalas negativas provavelmente resultará em artefactos visuais.

O ativo glTF DEVE apontar para a cena padrão usando o atributo de cena a ser prestado por Windows MR. Adicionalmente, o carregador mr glTf Windows antes da atualização Windows 10 abril de 2018requer acessórios:

  • Deve ter valores min e máximo.
  • Tipo SCALAR deve ser componenteType UNSIGNED_SHORT (5123) ou UNSIGNED_INT (5125).
  • Tipo VEC2 e VEC3 devem ser componentesType FLOAT (5126).

As seguintes propriedades materiais são utilizadas a partir da especificação core glTF 2.0, mas não são necessárias:

  • BaseColorFactor, metallicFactor, RoughnessFactor
  • BaseColorTextura: Deve apontar para uma textura armazenada em dds.
  • EmissiveTextura: Deve apontar para uma textura armazenada em dds.
  • emissiveFactor
  • alphaMode

As seguintes propriedades materiais são ignoradas a partir da especificação do núcleo:

  • Todos os Multi-UVs
  • metalRoughnessTexture: Deve, em vez disso, utilizar a embalagem de textura otimizada da Microsoft definida abaixo
  • normalTextura: Deve, em vez disso, utilizar a embalagem de textura otimizada da Microsoft definida abaixo
  • escala normal
  • oclusionTexture: Deve em vez disso usar a embalagem de textura otimizada da Microsoft definida abaixo
  • oclusionStrength

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

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

Mais recursos

Ver também