Creación de modelos 3D para su uso en el hogar

El Windows Mixed Reality hogar es el punto de partida en el que los usuarios llegan antes de iniciar aplicaciones. Al diseñar la aplicación para cascos de Windows Mixed Reality, usa un modelo 3D como iniciador de aplicaciones y coloca vínculos profundos 3D en la Windows Mixed Reality casa. En este artículo se describen las directrices para crear modelos 3D compatibles con la Windows Mixed Reality casa.

Información general sobre los requisitos de recursos

Al crear modelos 3D para Windows Mixed Reality, hay algunos requisitos que deben cumplir todos los recursos:

  1. Exportación: los recursos deben entregarse en el formato de archivo .glb (binary glTF), .obj o .fbx.
  2. Modelado: los recursos deben ser inferiores a 10 000 triángulos, no tienen más de 64 nodos y 32 subprocesos por LOD.
  3. Materiales : las texturas no pueden ser mayores que 4096 x 4096 y el mapa mip más pequeño no debe ser mayor que 4 en ninguna dimensión.
  4. Animación : las animaciones no pueden tener más de 20 minutos a 30 FPS (36 000 fotogramas clave) y deben contener <= 8192 vértices de destino morfo
  5. Optimización: los recursos deben optimizarse con WindowsMRAssetConverter. Obligatorio en las versiones <del sistema operativo Windows = 1709* y recomendados en las versiones >del sistema operativo Windows = 1803

Nota

La aplicación Visor 3D admite diferentes formatos y resoluciones, pero en última instancia convierte los modelos en .glb/glTF antes de mostrarlos en el Mixed Reality inicio.

El resto de este artículo incluye una descripción detallada de estos requisitos y directrices adicionales para garantizar que los modelos funcionen bien con el Windows Mixed Reality hogar.

Instrucciones detalladas

Exportación de modelos

El Windows Mixed Reality home espera que los recursos 3D se entreguen mediante el formato de archivo .glb con imágenes incrustadas y datos binarios. Glb es la versión binaria del formato glTF, que es un estándar abierto gratuito de regalías para la entrega de activos 3D mantenida por el grupo Khronos. A medida que glTF evoluciona como un estándar del sector para el contenido 3D interoperable, por lo que la compatibilidad de Microsoft con el formato en todas las aplicaciones y experiencias de Windows. Si no ha creado un recurso glTF antes de encontrar una lista de exportadores y convertidores admitidos en la página de github del grupo de trabajo glTF.

Directrices de modelado

Windows espera que los recursos se generen mediante las siguientes directrices de modelado para garantizar la compatibilidad con la experiencia de Mixed Reality hogar. Al modelar en el programa que prefiera, tenga en cuenta las siguientes recomendaciones y limitaciones:

  1. El eje Up debe establecerse en "Y".
  2. El recurso debe enfrentarse "hacia delante" hacia el eje Z positivo.
  3. Todos los recursos deben compilarse en el plano terrestre en el origen de la escena (0,0,0).
  4. Las unidades de trabajo deben establecerse en medidores y recursos para que los recursos se puedan crear a escala mundial.
  5. No es necesario combinar todas las mallas, pero se recomienda si tiene como destino los dispositivos restringidos de recursos.
  6. Todas las mallas deben compartir un material, con un único conjunto de texturas que se usa para todo el recurso.
  7. Los UV deben estar dispuestos en una disposición cuadrada en el espacio de 0 a 1. Evite las texturas de mosaico aunque estén permitidas.
  8. No se admiten varias UVs
  9. No se admiten materiales de doble cara

Recuentos de triángulos y niveles de detalle (LOD)

El Windows Mixed Reality hogar no admite modelos con más de 10 000 triángulos. Se recomienda triangular las mallas antes de exportar para asegurarse de que no superen este recuento. Windows MR también admite niveles opcionales de geometría de detalle (LOD) para garantizar una experiencia eficaz y de alta calidad. WindowsMRAssetConverter le ayudará a combinar 3 versiones del modelo en un único modelo .glb. Windows determina qué LOD se va a mostrar en función de la cantidad de espacio real de la pantalla que ocupa el modelo. Solo se admiten tres niveles de LOD con los siguientes recuentos de triángulos recomendados:

Nivel de LOD Recuento de triángulos recomendado Número máximo de triángulos
LOD 0 10 000 10 000
LOD 1 5\.000 10 000
LOD 2 2,500 10 000

Recuentos de nodos y límites de submesh

El Windows Mixed Reality inicio no admite modelos con más de 64 nodos o 32 subprocesos por LOD. Los nodos son un concepto en la especificación glTF que define los objetos de la escena. Los subprocesos se definen en la matriz de primitivos de la malla del objeto .

Característica Descripción Número máximo admitido Documentación
Nodos Objetos de la escena glTF 64 por LOD Aquí
Submeshes Suma de primitivos en todas las mallas 32 por LOD Aquí

Directrices de material

Las texturas deben prepararse con un flujo de trabajo de rugosidad de metal PBR. Comience por crear un conjunto completo de texturas, como Albedo, Normal, Oclusion, Metal y Rugosidad. Windows Mixed Reality admite texturas con resoluciones de hasta 4096 x 4096, pero se recomienda crear en 512x512. Las texturas deben crearse en resoluciones en múltiplos de 4. Este es un requisito para el formato de compresión aplicado a las texturas en los pasos de exportación que se describen a continuación. Al generar mapas mip o una textura, el mip más bajo debe ser un máximo de 4 x 4.

Tamaño de textura recomendado Tamaño máximo de textura Mip más bajo
512x512 4096x4096 max 4x4

Mapa de Albedo (color base)

Color sin procesar sin información de iluminación. Este mapa también contiene la información reflectante y difusa de metal (blanco en el mapa metálico) y las superficies aisladas (negras en el mapa metálico), respectivamente.

Normal

Mapa normal del espacio tangente

Mapa de rugosidad

Describe el microsurface del objeto . Blanco 1.0 es áspero Negro 0.0 es suave. Este mapa proporciona al recurso el mayor carácter, ya que realmente describe la superficie. Por ejemplo, rasguños, huellas digitales, manchas, sombrías, etc.

Mapa de oclusión ambiental

Mapa de escala de valores que muestra áreas de luz ocluida, que bloquea las reflexiones

Mapa metálico

Indica al sombreador si algo es metal o no. Metal sin procesar = 1,0 blanco No metal = 0,0 negro. Puede haber valores grises transitorios que indiquen algo que cubra el metal sin procesar, como la suciedad, pero en general este mapa debe ser solo blanco y negro.

Optimizaciones

Windows Mixed Reality hogar ofrece una serie de optimizaciones sobre la especificación glTF principal definida mediante extensiones personalizadas. Estas optimizaciones son necesarias en las versiones <de Windows = 1709 y se recomiendan en las versiones más recientes de Windows. Puede optimizar fácilmente cualquier modelo glTF 2.0 mediante Windows Mixed Reality Asset Converter disponible en GitHub. Esta herramienta realizará las optimizaciones y el empaquetado de texturas correctos como se especifica a continuación. Para el uso general, se recomienda usar WindowsMRAssetConverter, pero si necesita más control sobre la experiencia y desea crear su propia canalización de optimización, puede consultar la especificación detallada siguiente.

Nota

Para obtener una lista definitiva de las posibilidades de los límites exactos del modelo, consulte el artículo optimización de modelos 3D para su uso en Dynamics 365 aplicaciones.

Materiales

Para mejorar el tiempo de carga de recursos en entornos de Mixed Reality, Windows MR admite la representación de texturas DDS comprimidas en función del esquema de empaquetado de texturas definido en esta sección. Se hace referencia a las texturas DDS mediante la extensión MSFT_texture_dds. La compresión de texturas es muy recomendable.

HoloLens

Las experiencias de realidad mixta basadas en HoloLens esperan que las texturas se empacarán mediante una configuración de 2 texturas mediante la siguiente especificación de empaquetado:

glTF (propiedad) Textura Esquema de empaquetado
pbrMetallicRoughness baseColorTexture Rojo (R), Verde (G), Azul (B)
MSFT_packing_normalRoughnessMetallic normalRoughnessMetallicTexture Normal (RG), Rugosidad (B), Metálico (A)

Al comprimir las texturas DDS, se espera la siguiente compresión en cada mapa:

Textura Compresión esperada
baseColorTexture, normalRoughnessMetallicTexture BC7

Cascos envolventes (VR)

Las experiencias de Windows Mixed Reality basadas en PC para cascos envolventes (VR) esperan que las texturas se empacarán mediante una configuración de 3 texturas mediante la siguiente especificación de empaquetado:

Sistema operativo >Windows = 1803

glTF (propiedad) Textura Esquema de empaquetado
pbrMetallicRoughness baseColorTexture Rojo (R), Verde (G), Azul (B)
MSFT_packing_occlusionRoughnessMetallic occlusionRoughnessMetallicTexture Oclusión (R), Rugosidad (G), Metálico (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normal (RG)

Al comprimir las texturas DDS, se espera la siguiente compresión en cada mapa:

Textura Compresión esperada
normalTexture BC5
baseColorTexture, occlusionRoughnessMetallicTexture BC7
Sistema operativo <Windows = 1709

glTF (propiedad) Textura Esquema de empaquetado
pbrMetallicRoughness baseColorTexture Rojo (R), Verde (G), Azul (B)
MSFT_packing_occlusionRoughnessMetallic roughnessMetallicOcclusionTexture Rugosidad (R), Metálico (G), Oclusión (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normal (RG)

Al comprimir las texturas DDS, se espera la siguiente compresión en cada mapa:

Textura Compresión esperada
normalTexture BC5
baseColorTexture, rugosidadMetallicOcclusionTexture BC7

Adición de LOD de malla

Mr de Windows usa loD de nodo de geometría para representar modelos 3D en diferentes niveles de detalle en función de la cobertura en pantalla. Aunque técnicamente esta característica no es necesaria, se recomienda para todos los recursos. Actualmente Windows admite 3 niveles de detalle. El LOD predeterminado es 0, que representa la mayor calidad. Otros LOD se numeran secuencialmente, por ejemplo, 1, 2 y se reducen progresivamente en la calidad. El convertidor de recursos de Windows Mixed Reality admite la generación de recursos que cumplen esta especificación de LOD aceptando varios modelos glTF y combinándolos en un único recurso con niveles de LOD válidos. En la tabla siguiente se describen los destinos esperados de orden de LOD y triángulo:

Nivel de LOD Recuento de triángulos recomendado Número máximo de triángulos
LOD 0 10 000 10 000
LOD 1 5\.000 10 000
LOD 2 2,500 10 000

Cuando se usan LOD, siempre se especifican tres niveles de LOD. Los LOD que faltan harán que el modelo no se represente inesperadamente, ya que el sistema loD cambia al nivel de LOD que falta. glTF 2.0 no admite actualmente loD como parte de la especificación principal. Los LOD deben definirse mediante la extensión MSFT_LOD.

Cobertura de pantalla

Los LOD se muestran en Windows Mixed Reality en función de un sistema controlado por el valor de cobertura de pantalla establecido en cada LOD. Los objetos que actualmente consumen una parte mayor del espacio en pantalla se muestran en un nivel de LOD superior. La cobertura de pantalla no forma parte de la especificación glTF 2.0 principal y debe especificarse mediante MSFT_ScreenCoverage en la sección "extras" de la extensión MSFT_lod.

Nivel de LOD Intervalo recomendado Intervalo predeterminado
LOD 0 100% - 50% 0.5
LOD 1 Inferior al 50 % - 20 % 0,2
LOD 2 Inferior al 20 % - 1% 0,01
LOD 4 Menos del 1 % -

Directrices de animación

Nota

Esta característica se agregó como parte de la actualización de abril de 2018 de Windows 10. En versiones anteriores de Windows, estas animaciones no se reproducirán, sin embargo, seguirán cargando si se crean según las instrucciones de este artículo.

La casa de realidad mixta admite objetos glTF animados en holoLens y cascos envolventes (VR). Si desea desencadenar animaciones en el modelo, deberá usar la extensión Mapa de animación en el formato glTF. Esta extensión permite desencadenar animaciones en el modelo glTF en función de la presencia del usuario en el mundo, por ejemplo, desencadenar una animación cuando el usuario está cerca del objeto o mientras lo está viendo. Si el objeto glTF tiene animaciones, pero no define los desencadenadores, las animaciones no se reproducirán. En la sección siguiente se describe un flujo de trabajo para agregar estos desencadenadores a cualquier objeto glTF animado.

Herramientas

En primer lugar, descargue las siguientes herramientas si aún no las tiene. Estas herramientas facilitan la apertura de cualquier modelo glTF, obtener una vista previa, realizar cambios y guardarlos como glTF o .glb:

  1. Visual Studio Code
  2. glTF Tools for Visual Studio Code

Apertura y vista previa del modelo

Para empezar, abra el modelo glTF en VSCode arrastrando el archivo .glTF a la ventana del editor. Si tiene un .glb en lugar de un archivo .glTF, puede importarlo en VSCode mediante el complemento glTF Tools que descargó. Vaya a "Ver -> Paleta de comandos" y comience a escribir "glTF" en la paleta de comandos y seleccione "glTF: Import from glb", que mostrará un selector de archivos con el que importar un .glb con.

Una vez que haya abierto el modelo glTF, debería ver el JSON en la ventana del editor. También puede obtener una vista previa del modelo en un visor 3D activo con el botón derecho haciendo clic con el botón derecho en el nombre de archivo y seleccionando el acceso directo del comando "glTF: Preview 3D Model" en el menú contextual.

Adición de los desencadenadores

Los desencadenadores de animación se agregan a JSON del modelo glTF mediante la extensión Animation Map. La extensión de mapa de animación se documenta públicamente aquí en GitHub (NOTA: SE TRATA DE UNA EXTENSIÓN BORRADOR). Para agregar la extensión al modelo simplemente desplácese hasta el final del archivo glTF en el editor y agregue el bloque "extensionsUsed" y "extensions" al archivo si aún no existen. En la sección "extensionsUsed", agregará una referencia a la extensión "EXT_animation_map" y en el bloque "extensions" agregará las asignaciones a las animaciones del modelo.

Como se indicó en la especificación , se define lo que desencadena la animación mediante la cadena "semántica" en una lista de "animaciones", que es una matriz de índices de animación. En el ejemplo siguiente hemos especificado la animación que se va a reproducir mientras el usuario está mirando en el objeto :

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

La Windows Mixed Reality inicio admite la siguiente semántica de desencadenadores de animación.

  • "ALWAYS": bucle constante de una animación
  • "HELD": bucle durante toda la duración en que se captura un objeto.
  • "GAZE": bucle mientras se examina un objeto
  • "PROXIMITY": bucle mientras un visor está cerca de un objeto
  • "POINTING": bucle mientras un usuario apunta a un objeto

Guardar y exportar

Una vez realizados los cambios en el modelo glTF, puede guardarlo directamente como glTF. También puede hacer clic con el botón derecho en el nombre del archivo en el editor y seleccionar "glTF: Exportar a GLB (archivo binario)" para exportar un .glb.

Restricciones

Las animaciones no pueden tener más de 20 minutos y no pueden contener más de 36 000 fotogramas clave (20 minutos a 30 FPS). Además, cuando se usan animaciones basadas en destino morfórficas, no superan los vértices de destino de 8192 o menos. Si se superan estos recuentos, el recurso animado no se admitirá en el Windows Mixed Reality hogar.

Característica Máxima
Duration 20 minutos
Fotogramas clave 36 000
Vértices de destino morfórficos 8192

Notas de implementación de glTF

Windows MR no admite el volteo de geometría mediante escalas negativas. La geometría con escalas negativas probablemente dará lugar a artefactos visuales.

El recurso glTF DEBE apuntar a la escena predeterminada mediante el atributo de escena que Va a representar Windows MR. Además, el cargador glTF de Windows MR antes de la actualización de abril de 2018 de Windows 10requiere descriptores de acceso:

  • Debe tener valores mínimo y máximo.
  • El tipo SCALAR debe ser componentType UNSIGNED_SHORT (5123) o UNSIGNED_INT (5125).
  • El tipo VEC2 y VEC3 debe ser componentType FLOAT (5126).

Las siguientes propiedades de material se usan desde la especificación core glTF 2.0, pero no son necesarias:

  • baseColorFactor, metallicFactor, roughnessFactor
  • baseColorTexture: debe apuntar a una textura almacenada en dds.
  • emissiveTexture: debe apuntar a una textura almacenada en dds.
  • emissiveFactor
  • alphaMode

Las siguientes propiedades de material se omiten de la especificación principal:

  • Todos los multiuso
  • metalRoughnessTexture: debe usar en su lugar el empaquetado de textura optimizado por Microsoft definido a continuación.
  • normalTexture: en su lugar, debe usar el empaquetado de textura optimizado de Microsoft definido a continuación.
  • normalScale
  • occlusionTexture: debe usar en su lugar el empaquetado de textura optimizado de Microsoft definido a continuación.
  • occlusionStrength

Windows MR no admite líneas y puntos de modo primitivo.

Solo se admite un único atributo de vértice UV.

Más recursos

Consulte también