Compartir a través de


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

La casa de Windows Mixed Reality es el punto de partida donde llegan los usuarios 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 casa de Windows Mixed Reality. En este artículo se describen las directrices para crear modelos 3D compatibles con la casa de Windows Mixed Reality.

Información general sobre los requisitos de recursos

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

  1. Exportación: los recursos deben entregarse en el formato de archivo .glb (binario 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 de destino
  5. Optimización : los recursos deben optimizarse mediante WindowsMRAssetConverter. Obligatorio en versiones <del sistema operativo Windows = 1709* y recomendado en versiones >del sistema operativo Windows = 1803

Nota:

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

El resto de este artículo incluye información general detallada de estos requisitos y directrices adicionales para asegurarse de que los modelos funcionan bien con el hogar de Windows Mixed Reality.

Instrucciones detalladas

Exportación de modelos

La casa de Windows Mixed Reality 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 estándar del sector para contenido interoperable 3D, por lo que la compatibilidad de Microsoft con el formato en 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 principal de Mixed Reality. 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 solo un 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 varios UVs
  9. No se admiten materiales de doble cara

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

El hogar de Windows Mixed Reality 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 de alto rendimiento y de alta calidad. WindowsMRAssetConverter le ayudará a combinar tres 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 pantalla que ocupa el modelo. Solo se admiten 3 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 inicio de Windows Mixed Reality no admite modelos con más de 64 nodos o 32 submeshes por LOD. Los nodos son un concepto en la especificación glTF que define los objetos de la escena. Los submeshes se definen en la matriz de primitivos de la malla del objeto .

Característica Descripción 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 mediante un flujo de trabajo de rugosidad de metal PBR. Comience creando un conjunto completo de texturas, como Albedo, Normal, Occlusion, Metal y Rugosidad. Windows Mixed Reality admite texturas con resoluciones de hasta 4096x4096, 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 4x4.

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 formato sin información de iluminación. Este mapa también contiene la reflectancia y la información difusa para metal (blanco en el mapa metálico) y aislador (negro 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 más 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 negro y blanco.

Optimizaciones

La casa de Windows Mixed Reality 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 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 a continuación.

Nota:

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

Materiales

Para mejorar el tiempo de carga de recursos en entornos de Realidad mixta, Windows MR admite la representación de texturas DDS comprimidas empaquetadas según el esquema de empaquetado de textura definido en esta sección. Se hace referencia a las texturas DDS mediante la extensión MSFT_texture_dds. Se recomienda comprimir texturas.

HoloLens

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

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 empaquetan mediante una configuración de 3 texturas mediante la especificación de empaquetado siguiente:

Sistema operativo >Windows = 1803

glTF (propiedad) Textura Esquema de empaquetado
pbrMetallicRoughness baseColorTexture Rojo (R), Verde (G), Azul (B)
MSFT_packing_occlusionRoughnessMetallic oclusionRoughnessMetallicTexture 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

Windows MR 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 obtienen progresivamente menos calidad. Windows Mixed Reality Asset Converter admite la generación de recursos que cumplen esta especificación de LOD mediante la aceptación de varios modelos glTF y su combinación en un único recurso con niveles de LOD válidos. En la tabla siguiente se describen los destinos esperados de ordenación de LOD y triángulos:

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 3 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 Menos del 50 % - 20 % 0,2
LOD 2 Menos del 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, pero seguirán cargó 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 le 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 miran. Si el objeto glTF tiene animaciones, pero no define 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, previsualizarlo, realizar cambios y guardarlos como glTF o .glb:

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

Apertura y vista previa del modelo

Comience abriendo el modelo glTF en VSCode arrastrando el archivo .glTF a la ventana del editor. Si tiene un archivo .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, a continuación, comience a escribir "glTF" en la paleta de comandos y seleccione "glTF: Importar desde 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 código 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 indica 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 siguiente semántica de desencadenadores de animación es compatible con la página principal de Windows Mixed Reality.

  • "ALWAYS": Bucle constante de una animación
  • "HELD": se recorre en bucle durante toda la duración que se toma 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 guardarlos 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 archivo .glb.

Restricciones

Las animaciones no pueden superar los 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 hogar de Windows Mixed Reality.

Característica Máxima
Duration 20 minutos
Fotogramas clave 36 000
Vértices de destino de morfo 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 Windows MR representa. Además, el cargador glTF de Windows MR antes de la actualización de abril de 2018 de Windows 10 requiere descriptores de acceso:

  • Debe tener valores mínimos y máximos.
  • 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 a partir de la especificación glTF 2.0 principal, 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 multiusos
  • metalRoughnessTexture: en su lugar, debe usar el empaquetado de texturas optimizados de Microsoft definido a continuación.
  • normalTexture: en su lugar debe usar el empaquetado de texturas optimizadas de Microsoft definido a continuación.
  • normalScale
  • occlusionTexture: en su lugar, debe usar el empaquetado de texturas optimizados de Microsoft definido a continuación.
  • occlusionStrength

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

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

Más recursos

Consulte también