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:
- Exportação - Os ativos devem ser entregues no formato de arquivo .glb (binário glTF), .obj ou .fbx
- Modelagem - Os ativos devem ter menos de 10k triângulos, não ter mais de 64 nós e 32 submalhas por LOD
- 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
- 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
- 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:
- O eixo para cima deve ser definido como "Y".
- O ativo deve estar voltado para a frente em direção ao eixo Z positivo.
- Todos os ativos devem ser construídos no plano de terra na origem do local (0,0,0)
- As Unidades de Trabalho devem ser definidas como medidores e ativos para que os ativos possam ser criados em escala mundial
- Todas as malhas não precisam ser combinadas, mas é recomendável se você estiver direcionando dispositivos com restrição de recursos
- Todas as malhas devem compartilhar um material, com apenas um conjunto de textura sendo usado para todo o ativo
- Os UVs devem ser dispostos em uma disposição quadrada no espaço 0-1. Evite texturas de azulejos, embora elas sejam permitidas.
- Multi-UVs não são suportados
- 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:
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
- glTF Exportadores e Conversores
- Kit de ferramentas glTF
- Dados técnicos: glTF 2.0
- Microsoft glTF LOD Extension Especificação
- PC Mixed Reality Texture Packing Extensions Especificação
- HoloLens Mixed Reality Texture Packing Extensions Especificação
- Microsoft DDS Textures glTF extensões especificação