View in English

  • Global Nav Open Menu Global Nav Close Menu
  • Apple Developer
Search
Cancel
  • Apple Developer
  • News
  • Discover
  • Design
  • Develop
  • Distribute
  • Support
  • Account
Only search within “”

Quick Links

5 Quick Links

Videos

Abrir menú Cerrar menú
  • Colecciones
  • Temas
  • Todos los videos
  • Información

Más videos

  • Información
  • Resumen
  • Transcripción
  • Optimiza tus entornos personalizados para visionOS

    Descubre cómo puedes usar herramientas procedimentales con el fin de crear hermosos entornos inmersivos para tu app o juego de visionOS. Compartiremos los componentes básicos para crear un entorno de alta calidad y luego profundizaremos en el proceso de optimización. Aprende a usar una serie de flujos de trabajo proporcionados por Apple para Houdini con el fin de reducir la cantidad de polígonos de tu escena, limpiar la geometría, empaquetar mapas UV y crear activos USD para importar a Reality Composer Pro o al motor de juego de tu elección.

    Capítulos

    • 0:00 - Introducción
    • 3:51 - Prepárate para Vision Pro
    • 7:35 - Optimizar la geometría
    • 17:22 - Proyección UV
    • 24:20 - Baking de texturas
    • 25:38 - Configuración de USD
    • 28:35 - Conclusión

    Recursos

    • Construct an immersive environment for visionOS
    • Download immersive environment optimization toolkit for Houdini
    • Enabling video reflections in an immersive environment
      • Video HD
      • Video SD

    Videos relacionados

    WWDC24

    • Create custom environments for your immersive apps in visionOS
    • Enhance the immersion of media viewing in custom environments
    • Optimize your 3D assets for spatial computing

    WWDC23

    • Explore the USD ecosystem
  • Buscar este video…

    Hola, te doy la bienvenida a Optimizar entornos para visionOS. Soy Alex, un artista técnico aquí en Apple. En este video, aprenderemos a crear entornos inmersivos para que tus historias se sientan reales en Apple Vision Pro. En esta plataforma, podrás trabajar con resoluciones ultraaltas, frecuencias de cuadro rápidas e interacciones fluidas en tiempo real. Esto te ofrece la oportunidad de crear entornos que brinden una verdadera sensación de presencia. Cuando lo haces bien, la gente se transporta. Para lograrlo, el objetivo es un nivel cinematográfico de visuales, que cuenten historias como nunca. Pero la renderización en tiempo real de alta fidelidad es costosa. Funcionalidades como sombras suaves, iluminación global y sombreado complejo tienen un costo elevado. ¿Cómo superar esta dificultad? Bueno, no es solo una única técnica. Se necesita una estrategia flexible, que funcione dentro de los límites técnicos, pero que eleve la calidad visual al máximo. Veamos el flujo de trabajo de optimización que podemos usar para lograrlo. Inicia con una imagen prerrenderizada, que captura iluminación cinematográfica, bastantes detalles y materiales de alta gama. Luego, se optimizan la geometría y las texturas según lo que experimenta el espectador. Luego, esa imagen prerrenderizada se transfiere al entorno optimizado, adquiriendo un aspecto de gama alta. Por último, todo se ensambla en un editor en tiempo real, como Reality Composer o Unity. El resultado son imágenes que parecen inmersivas. En este video, te guiaré a través de dos partes de este flujo de trabajo: optimizar e integrar tus activos, esto te ayudará a crear entornos increíbles que puedas usar en tus apps Vision Pro. Ahora, puedes hacer mucho de esto manualmente, pero con tiempo, ciertamente más del que dura este video. En su lugar, te mostraré cómo usar herramientas de procedimiento para crear un flujo que automatice la mayoría de este proceso. Hay muchas formas de optimizar el contenido 3D, pero un enfoque sólido es usar Houdini, una app creada en torno a flujos basados en nodos. Su sistema de scripting visual permite crear fórmulas de procedimiento que automaticen y calculen tareas complejas. Con Houdini, también puedes usar herramientas llamadas Activos Digitales de Houdini o HDA. Combinan scripting visuales con código subyacente y presentan controles clave como parámetros editables mediante una IU personalizada. Desarrollamos un conjunto versátil de 14 herramientas descargables avanzadas que te ayudarán a optimizar tu visión artística, al tiempo que te ofrecen controles precisos. Este flujo no abarcará todos los casos de uso, pero te dará las bases para enfrentar los retos únicos de la creación de contenido inmersivo.

    En este video usaré un entorno de la Luna como ejemplo. Explicaré paso a paso cómo prepararlo para una presentación en tiempo real en Vision Pro. Si eres nuevo en la creación de activos para Vision Pro, lo explicaré brevemente desde una perspectiva gráfica y te diré lo que necesitas saber para crear contenido inmersivo. Luego, veremos el proceso de optimización, empezando por cómo usar el límite inmersivo para optimizar la geometría más allá de los métodos tradicionales. También, cómo aplicar esos mismos principios a las texturas mediante técnicas de diseño UV e integración de texturas. Con todo optimizado, prepararé este entorno para USD con el fin de incorporarlo en un motor de tiempo real. Empecemos. Como mencionó mi colega Scott en su video WWDC24, "Optimiza recursos 3D para la computación espacial", crear contenido en Vision Pro es diferente. Al crear contenido para este dispositivo, es fundamental comprender cómo lo experimentarán las personas, porque esto puede influir en tus decisiones de desarrollo.

    Es importante si consideramos el renderizado que realiza Vision Pro para lograr escenas inmersivas. En la inmersión mixta, solo una parte de la pantalla se renderiza sobre el video de paso, pero en la inmersión total, se renderiza cada pixel, lo que dificulta el rendimiento. Cuando alguien está inmerso, se encuentra en un espacio fijo y transitable. Puede moverse físicamente unos metros en cualquier dirección antes de que la experiencia se desvanezca y vuelva a la realidad. Este es el límite inmersivo de Vision Pro. Ayuda a mantener a las personas seguras en su entorno y, a ti, a maximizar tu presupuesto de gráficos.

    Al comprender exactamente hacia dónde moverse y mirar, no es necesario renderizar todo con la máxima calidad, solo lo más importante. Ni más, ni menos. Esta es la clave para optimizar el entorno, porque los de alta fidelidad tienden a ser muy detallados y estar repletos de polígonos. Nuestro contenido prerrenderizado de la luna tiene más de 100 millones. Eso no funcionará muy bien, pero brinda la oportunidad de ver hasta dónde nos pueden llevar las herramientas de Houdini. Comencemos abriendo el paquete de herramientas, configurando nuestra escena y tomando una del flujo de optimización.

    Una vez que descargues la muestra de Houdini, abre la carpeta del proyecto. Contiene todo lo necesario para seguir adelante. En la raíz está el archivo principal de Houdini, optimal.hip. Tiene la configuración que exploraremos. Justo al lado se encuentra la carpeta HDA, con todas las herramientas que usaremos. Estos HDA ya están referenciados en el archivo, pero puedes usarlos en cualquier proyecto de Houdini. Ahora pasemos a Houdini, donde tengo esta escena cargada. Aquí todo está organizado en tres partes principales, cada una contiene su propia red y nodos. Primero está la red fuente. Este es el diseño de resolución, con geometría densa y de alta fidelidad. En el archivo, hay una configuración de procedimiento simple. Pero para esta demostración, usaré el entorno de la luna como ejemplo. Luego, está el de optimización, donde se reconstruye la escena para un rendimiento en tiempo real con las técnicas del video.

    Y finalmente, todo se ensambla en USD, desde donde se puede exportar a un editor como Reality Composer o Unity. Ahora veamos el primer HDA personalizado, que será de utilidad durante este flujo de trabajo. Esta es el HDA boundary_camera, diseñado para visualizar la experiencia del contenido inmersivo.

    Esta herramienta brinda una estructura de referencia para definir el límite inmersivo. Tiene varias configuraciones, lo que te permite ver fácilmente tu contenido desde puntos de vista reales.

    Hay parámetros ajustables para transformar la cámara fácilmente, permitiendo rastrear la escena mientras optimizas el contenido.

    Ya listo el proyecto, profundicemos en el primer conjunto de herramientas para optimizar geometría. Como lo mencioné antes, esta escena tiene muchos polígonos, cientos de rocas y kilómetros de terreno en todas direcciones. Entonces, ¿cómo se puede reducir la complejidad de algo tan grande? Usando un sistema de nivel de detalle que simplifique activos individuales. Para cierto contenido, esta es la solución adecuada. Pero vayamos más allá de los métodos habituales y aprovechemos el límite inmersivo al máximo. Usaré tres técnicas para simplificarlo, reduciendo la cantidad de polígonos, empezando por la reducción de polígonos adaptativa. En lugar de reducir los activos uno por uno, optimicemos cada triángulo y basemos la reducción solo en los puntos de vista posibles. Aquí se visualiza el tamaño del triángulo, donde el rojo indica alta densidad y el azul, áreas más grandes y simplificadas. En esta configuración, los triángulos se conservan para mantener la complejidad solo donde es necesario, y la densidad aumenta y disminuye orgánicamente mientras los detalles se desvanecen gradualmente. Esto garantiza que los detalles importantes permanezcan nítidos, evitando que artefactos facetados low-poly interrumpan la inmersión. Ese es el concepto. Ahora veamos cómo construirlo. Aquí entran las herramientas personalizadas, diseñadas para calcular y automatizar el proceso. Al usar parámetros basados en atributos, puedes guiar lo que se conserva y lo que se reduce a través de la lógica procesal. Está integrada en PolyReduce de Houdini, configurada para manejar varios puntos de vista. En esta visualización, la esfera verde marca una posición potencial que mide la importancia de la silueta. El HDA está impulsado por un conjunto de puntos de muestra distribuidos en el límite inmersivo. Esto garantiza que la geometría se mantenga desde todos los ángulos que se vean.

    Veamos dónde encaja esto en el proceso. Después de importar el activo high-poly de origen, lo primero es dividir el contenido para abordar cada tipo de forma independiente. Pasemos a Houdini y veamos un ejemplo de cómo configurar uno de estos HDA. En el ejemplo, todas las rocas se reducen en un pase, usando solo un HDA de reducción adaptativa. Pero es una operación bastante pesada, porque solo en las rocas fuente hay más de 22 millones de triángulos. Con el fin de iterar rápidamente, aislé una pequeña sección de las rocas para demostrar cómo se configura solo uno de estos HDA. Empezando con estas rocas, colocaré una nueva instancia de HDA de reducción adaptativa y la enviaré.

    Luego cambiaré a la cámara inmersiva para trabajar desde la perspectiva dentro del límite inmersivo.

    Si habilito y preparo el HDA, se superpone un mapa de calor. Esto arroja información sobre dónde se encuentra la densidad en la superficie tras la reducción. El recuento total de triángulos se controla mediante este parámetro.

    Y lo puedes ajustar para obtener el resultado deseado. Como ya lo dije, muchas de estas herramientas se basan en puntos de muestra para evaluar la geometría desde varios ángulos. Hay un HDA especialmente para esto llamado Muestras de límites, que genera puntos dentro del límite inmersivo.

    Crearé este nuevo HDA y lo asignaré al HDA de reducción adaptativa.

    Una vez que lo haga, la herramienta hará la reducción según estas posiciones. Ahora se conservan más triángulos a lo largo de los bordes, mientras que el total permanece sin cambios. Esto se determina por el parámetro silhouette.

    Ajustando este valor, puedo agregar o quitar triángulos en estas funcionalidades. Las rocas que están más lejos. Ajustaré la ponderación de la distancia para conservar la geometría suficiente para la silueta.

    Es la configuración básica de muchas herramientas. Crea un HDA, asigna puntos de muestra y ajusta tus parámetros para lograr tus objetivos.

    Al usar esta herramienta una vez con el terreno y otra con las rocas, se optimiza la geometría de todo lo que haya en el primer kilómetro. Para el terreno, se reduce de forma más agresiva en función de la distancia. Reduce gradualmente la densidad de triángulos hacia el horizonte y las rocas se simplifican para conservar su silueta, reduciendo todo lo demás. Esto optimiza el primer kilómetro. ¿Pero qué pasa con el resto? Para objetos lejanos, puedes usar una técnica común en el desarrollo de juegos. Usemos Billboards. Existe un límite natural para la profundidad de paralaje que se puede percibir a larga distancia. Es decir, no necesitas una geometría 3D completa para objetos lejanos. Las señales de profundidad se aplanan entre 1 y 3 km para el límite inmersivo. Así puedes reducir estas áreas a una imagen plana sin pérdida de profundidad. Esta técnica toma objetos 3D complejos y los convierte en una geometría plana, orientada al límite inmersivo. Para entornos grandes, se puede configurar como una franja panorámica que se integra al resto de la escena. En esta luna, elegí 1 kilómetro para poder guardar aún más triángulos, lo que me permite detallar mejor los activos cercanos.

    Las técnicas Billboard suelen usar transparencia para mantener la geometría simple, pero esta herramienta construye la silueta con la geometría real. Es decir que el borde coincide con la fuente original, vértice por vértice, sin necesidad de materiales transparentes. Esto se puede usar con todo tipo de objetos, de rocas a follaje orgánico. Funciona trazando un rayo sobre cada vértice hacia una posición fija. Luego, esos rayos chocan con una forma simple, como una esfera o un cilindro, a una distancia predefinida. Al principio, es un desastre. Pero cuando se vuelven a triangular los puntos, obtienes una silueta simplificada que se sostiene desde la perspectiva del espectador. El HDA Vista Billboard maneja toda esta configuración mediante procedimiento. Se coloca justo después de importar el tren desde el diseño de origen.

    Con esta herramienta, la geometría más allá de 1 km se reduce de millones de polígonos a solo unos miles. Esta malla simplificada se combina con optimizaciones anteriores, ofreciendo una vista optimizada del entorno.

    Recapitulemos lo visto hasta ahora. Con la reducción de malla adaptativa y convirtiendo la geometría distante en Billboards, el conteo de triángulos se redujo a solo 350.000. Esto es mucho menos de los 100 millones de polígonos del diseño original. El entorno está optimizado para que todo lo visible sea mucho más eficiente. Lo siguiente es optimizar lo que no es visible con la eliminación de oclusiones. Esta elimina la geometría que está completamente oculta, lo que ahorra recursos al no renderizar ni texturizar algo que el espectador nunca verá. Algunas eliminaciones se hacen durante la ejecución, lo que quita mallas enteras que no son visibles. Pero facilitemos aún más la renderización y eliminemos cada triángulo ocluido de la geometría. El siguiente HDA elimina triángulos con el trazado de rayos a millones de puntos en todas direcciones, probando qué polígonos son visibles. Si un rayo toca cualquier parte de un triángulo, lo marca para conservarlo, pero lo demás se elimina, como se ve aquí en rojo. Estas herramientas incluyen dos tipos de selección: Eliminación de caras posteriores y de oclusiones. Se ejecutan en tándem tras la reducción de polígonos.

    Primero, elimina las caras posteriores. Usa una comparación de producto de puntos para encontrar polígonos que no miren en dirección al límite inmersivo. Es rápido, confiable y un gran primer pase. Los polígonos eliminados aparecen en el wireframe y los triángulos ahorrados se ven debajo de cada HDA. En el caso de esta luna, se eliminaron casi 60.000.

    La segunda herramienta es eliminar oclusiones. Desde cada posición de muestra, traza rayos para probar la visibilidad. La precisión depende de cuántos puntos de muestra uses y de cuántos rayos se emitan desde cada uno. En este ejemplo, se eliminaron 110.000 triángulos. Esto se suma a lo que se ahorró con la eliminación de caras posteriores. Juntas, estas herramientas forman un combo poderoso. En este pase se eliminan casi el 50% de los triángulos restantes, se ven aquí en azul, mostrando los bordes actualizados de la geometría. Y desde los puntos de vista reales, es como si nada hubiera pasado. Veamos los números finales.

    Ahora solo hay 180.000 triángulos. Para un entorno con este nivel de complejidad, es un número fantástico. Aquí se muestran lado a lado, usando un mapa de profundidad para la visualización. Las mismas siluetas, casi idénticas, pero ahora solo tiene una fracción de la geometría original.

    Lo útil de construir tu flujo de trabajo así no está sólo en los números. Está en la capacidad de ajustar cada elemento. Súbelo para una mayor calidad, bájalo para un mayor rendimiento. Con las herramientas de procedimiento, puedes controlar todo el proceso. Ahora que la geometría está optimizada, hagamos lo mismo con el diseño UV y las texturas. Puede que no lo parezca a primera vista, pero incluso este paisaje árido está repleto de detalles únicos. Docenas de gigabytes de mapas PBR de alta fidelidad renderizados con iluminación trazada en cada superficie. Es decir que cada pixel de cada ángulo es único. Todos esos datos son un reto.

    ¿Cómo conservo todos los detalles en la geometría optimizada? Comienza con las UV, el sistema de coordenadas 2D que asigna texturas a la geometría, y una vez más aprovecha el límite inmersivo para pensar cómo organizar los datos de textura. Comencemos en el borde del límite inmersivo, aislando solo los primeros 5 metros. Los activos en este espacio se pueden ver desde cualquier ángulo, así que la densidad de texel debe ser constante. Así se muestra en esta cuadrícula: mapeo UV basado en áreas, por lo que cada superficie pasa una inspección minuciosa. Fuera del límite, las cosas se ponen interesantes. Los activos solo se ven desde ángulos y distancias limitados, por lo que el mapeo de superficie habitual es insuficiente y desperdicia texels en áreas que nunca se verán. Así que la estrategia debe cambiar. En lugar de UV basados en áreas, se usa un mapeo basado en proyecciones, alineando las texturas con el espacio dentro del límite inmersivo.

    Esto es un mapeo del espacio de pantalla, donde la densidad de texels se escala en función de cómo lo ve el espectador. Las superficies distantes tienen menos texels, mientras que las áreas más visibles tienen mayor resolución. Para usar el mapeo del espacio de la pantalla, la siguiente herramienta usa proyección esférica. Imagina que envuelves al espectador con una esfera y luego proyectas el entorno sobre esa superficie. Para que funcione con las texturas, tanto las UV como las imágenes prerrenderizadas deben entenderse. Al renderizar el entorno de origen, se usa la proyección esférica para la cámara. Es decir que la imagen se alinea perfectamente con el diseño UV. Intentemos aplicar esta configuración a la geometría optimizada.

    Primeras impresiones: se ve genial. Con el wireframe habilitado, la geometría y la imagen renderizada se fusionan perfectamente. ¿Pero qué pasa si te levantas y miras a tu alrededor?

    Algo parece no estar bien.

    En realidad, en la textura faltan partes enteras del paisaje. Las superficies atrapan todo lo que encuentran frente a ellas, esparciendo pequeñas rocas sobre rocas grandes y rocas grandes sobre montañas.

    Para una experiencia inmersiva como esta, se necesita más información para cubrir cada ángulo de la escena. Pero existen varios retos. Primero, la superposición UV, lo que está en rojo. En ángulos oblicuos, las superficies se comprimen en el espacio UV, provocando que los triángulos se apilen entre ellos y sobre la geometría detrás. Esto significa que los datos no tienen dónde almacenarse, incluso si un render tiene esas superficies. Otro problema es el escalado de texel. Solo es preciso desde la posición de proyección real. Tan pronto como te mueves, la densidad de texel disminuye.

    Y tercero, el render en sí. Una sola captura panorámica no puede verlo todo. Algunas superficies no tienen detalles o se omiten por completo. Para evitar esto, deberás proyectar UV desde múltiples ángulos, encontrar la posición óptima para cada superficie, escalar la densidad de texel desde cada punto de vista y ajustar los UV superpuestos. Es mucho. Pero si lo abordas pieza por pieza, puedes distribuir el problema en varios pasos más fáciles de gestionar. No hay que reducir la complejidad, sólo contar con el sistema adecuado para controlar.

    Primero, separemos la geometría dentro del límite inmersivo y concentrémonos en el resto del entorno.

    Esta técnica se realiza en dos pases. Primero, dividiendo la malla en secciones más pequeñas para no limitar la geometría a una proyección UV. Es como predefinir tus islas UV, definiendo los bordes antes de que se creen realmente las UV. Después, cada sección obtiene su propia proyección UV desde una posición que maximice la visibilidad. Para la luna, centrémonos de nuevo en las rocas, ya que son las más difíciles. porque no todos los lados son visibles desde un mismo punto. Para ayudarnos, existe el HDA Mesh Partition. Intenta dividir la malla en la menor cantidad de islas posible para que cada una pueda verse bien desde al menos una posición. Por ejemplo, en esta roca, las caras están divididas para que los UV se proyecten desde un lado y luego el otro, dándole a ambos el mayor nivel de resolución. El HDA Multi-Partition encaja aquí después de la optimización de la geometría. Una vez colocadas las particiones, se pueden procesar todas juntas usando el HDA Multi-Projection.

    Esta herramienta recorre cada partición que creó el HDA anterior, proyectando UV desde el punto donde esa pieza aparece más grande en la pantalla.

    Traza una línea hasta el origen de cada proyección y muestra exactamente desde dónde se crearon los UV. Parece caótico al principio, pero una vez que se ejecuta, lo más pesado ya estará listo. Veamos los resultados.

    Todas las islas UV están apiladas una encima de otra, porque estaban alineadas con el centro de su proyección. Ahora solo queda organizarlas y empaquetarlas en un atlas UV final.

    Esa es toda la configuración. Con un pase para las rocas y otro para el terreno, la malla se dividió por procedimientos. Luego se proyectaron nuevos UV en cada sección. El resultado es un escalado de texel más preciso, con menos superposición y distorsión. Con esta configuración, todo el entorno puede caber en dos texturas: una para el límite inmersivo escalado por área de superficie y otra para todo lo que está lejos. El escalamiento del espacio en pantalla permite que ambos tengan tamaños similares. Esto es una compresión masiva. Kilómetros de terreno condensados en el mismo espacio como solo los primeros metros.

    Al finalizar la optimización, el entorno lunar ya está listo para incorporar imágenes prerrenderizadas. La renderización e incorporación son temas profundos, así que nos centraremos en algunos conceptos clave para dominarlos por completo. En Houdini, puedes hacer la incorporación con renders esféricos. Así funciona. Una proyección esférica temporal coloca el render en la geometría. Esa proyección luego se incorpora al diseño UV final. Pero considera que esto solo captura un punto de vista. Para los datos que faltan, puedes usar un método de proyección que no dependa de la vista.

    Si has trabajado en juegos, tal vez hayas incorporado detalles high-poly en una malla low-poly. La idea es similar aquí, proyectando desde la superficie de la geometría de origen en el atlas UV optimizado. Esto garantiza la cobertura completa en cualquier superficie.

    Al combinar estas técnicas y aplicarlas como un material oscuro sobre la geometría optimizada, se obtiene un entorno completamente texturizado. A partir de docenas de gigabytes de texturas de alta resolución, ahora los entornos masivos se pueden comprimir en menos de un par de cientos de megabytes, conservando imágenes de alta calidad. Ahora todo está listo para ser exportado a Vision Pro. El último paso es configurar el USD. Pero un USD bien diseñado no solo mantiene el orden. Desbloquea una optimización final que puede impulsar más el rendimiento. Tras la optimización, el entorno ahora existe como una malla única. Si exportas así, cada triángulo se enviará a la GPU durante la ejecución, incluso si las secciones están fuera de tu vista. Para mitigar el costo, configúralo para una eliminación óptima del Frustum. La jerarquía USD se puede usar para dividir la escena, así el renderizador seleccionará la geometría de eliminación según el cuadro delimitador de la entidad, mejorando el rendimiento al quitar objetos invisibles para la cámara.

    Aquí puedes ver cómo funciona. La malla azul resalta las entidades que se descargan de la GPU, mientras el espectador ve a su alrededor y se mueve por la escena. Este flujo de trabajo usa dos tipos de partición, dependiendo de si la geometría está dentro o fuera del límite inmersivo. Creamos un HDA personalizado para cada una, ambos generan atributos para definir nuevas particiones, sentando las bases para el diseño del USD. Dentro del límite, la geometría se divide con el HDA Boundary Partition, ideal para eliminar geometría densa bajo los pies. Para todo lo que esté fuera del límite, el HDA Frustum Partition divide la malla en mosaicos progresivamente grandes, optimizados para que tengan un tamaño y un espacio en pantalla similares. Hasta ahora, las optimizaciones han sido a nivel superficial, modificando una datos de puntos y primitivos en lugar de objetos reales. Pero USD requiere una estructura organizada en transformaciones, primitivas de malla y subconjuntos de geometría. Antes de exportar, es necesario limpiar la geometría y estructurarla para que el USD pueda interpretarla. Para esta configuración solo necesitas transferir algunos atributos. Un atributo de nombre se vuelve el nombre primitivo en la jerarquía USD y las asignaciones de grupo definen los subconjuntos para la eliminación del Frustum. Los dos HDA de partición ya han creado estos grupos, por lo que solo es necesario pasarlos al USD. Con esos atributos establecidos, el resto es sencillo. Importa la geometría a Solaris, habilita los grupos de subconjuntos y declara los nombres de grupos personalizados. Tus particiones ahora son subconjuntos de geometría, listos para la eliminación de Frustum. El entorno de esta luna comenzó con una geometría densa, texturas masivas y sombreado complejo. Ahora la optimización está completa. Inició como una renderización cinematográfica y ahora está lista, impulsada por herramientas de procedimiento para contenido inmersivo. Recapitulemos observando el impacto real: cómo estas optimizaciones permiten crear una amplia gama de experiencias inmersivas.

    Al inicio, la escena de la luna tenía más de 100 millones de triángulos. Gracias a la eliminación de Frustum, ese número se redujo a menos de 200.000, con menos de 100.000 visibles en pantalla. Es posible extender ese número, sobre todo para una escena estática. Pero hay otros costos, como el sombreado complejo, los personajes animados y los elementos interactivos. Así que, mantener pocos triángulos ayuda a usar el presupuesto en el contenido importante. En el caso de la textura, las proyecciones esféricas tuvieron un gran impacto. Redujeron todo el entorno a menos de 250 megabytes de memoria de textura. Ese número variará según el proyecto, pero puede permanecer constante porque la mayoría de las superficies se escalan al espacio en pantalla. Además, puedes usar tantas texturas únicas en la entrada de origen como necesites, ya que todo se reduce al mismo atlas de texturas al final.

    En el lado del objeto, el recuento total se mantiene en menos de 200 activos y, en cualquier estructura determinada, suele haber menos de 100 llamadas de dibujo. Esto es posible porque todos los activos se fusionan y se integran en particiones de malla consistentes, sin importar cuántos objetos únicos veas al inicio. Las herramientas usadas aquí están diseñadas para ser lo más sólidas posible, así puedes reusarlas en diversas posibilidades.

    Si está creando una experiencia de portal, puedes usar herramientas similares con parámetros adaptados. Aquí, al modificar el HDA Occlusion Culling se eliminarán los triángulos que sobrepasan la extensión de un portal. Para algunos entornos, el objetivo podría ser tener varios límites inmersivos. En lugar de reconstruir la escena en cada posición, usa varios conjuntos de puntos de muestra para optimizar cada experiencia inmersiva. Con un pequeño cambio, la mayoría de las herramientas deberían funcionar igual, escalando triángulos a ambos límites y proyectando UV para que tengan la densidad de texel necesaria, esto permite compartir una malla y un conjunto de texturas para ambos puntos de vista. Cada entorno en el que trabajes será diferente. No hay un flujo que se adapte a todos. Pero si reúnes tu colección de herramientas, podrás elegir el mejor enfoque para cada proyecto. Por ejemplo, entornos rocosos como la luna o el parque Joshua Tree, escenas atmosféricas como el Monte Hood o Haleakala, o incluso interiores de superficies rígidas como una sala de conferencias o un teatro. Experiencias como estas se pueden construir usando estas y otras técnicas. Las escenas con una mayor complejidad de sombreado requiere reducir la geometría para mantener el rendimiento en tiempo real. Otras, como la sala de conferencias, se modelan a mano para ser eficientes desde el principio. Una optimización grande sería excesivo. Para profundizar en la configuración técnica, comienza con el proyecto de muestra. Contiene el mismo flujo y herramientas de este video, y su uso y modificación son gratuitos. El archivo README contiene desgloses de cada herramienta y algunos HDA extra. Para conocer más sobre optimización específica para cada plataforma, consulta "Optimiza recursos 3D para la computación espacial". En conclusión, la alta fidelidad no tiene que ser cara. Antes, no se podían reproducir todos los detalles. Se tuvieron que desarrollar técnicas para hacer más con menos. Esos principios pueden potenciar tu flujo de trabajo hoy. Se trata de optimizar con intención, junto con el proceso creativo. Con excelentes herramientas, puedes superar los límites y crear entornos que brinden una inmersión más profunda y una fuerte sensación de presencia. Gracias.

    • 0:00 - Introducción
    • Descubre cómo puedes usar herramientas procedimentales con el fin de crear hermosos entornos envolventes para tu app o juego de visionOS. Compartiremos los componentes básicos para crear un entorno de alta calidad y luego profundizaremos en el proceso de optimización. Aprende a usar una serie de flujos de trabajo proporcionados por Apple para Houdini con el fin de reducir la cantidad de polígonos de tu escena, limpiar la geometría, empaquetar mapas UV y crear activos USD para importar a Reality Composer Pro o al motor de juego de tu elección.

    • 3:51 - Prepárate para Vision Pro
    • La creación de contenido para Apple Vision Pro requiere un enfoque único debido a sus capacidades de computación espacial. Debes tener en cuenta las demandas de renderizado del dispositivo, especialmente en inmersión total, donde se renderiza cada píxel. Cuando alguien está en un entorno totalmente envolvente, aparece dentro de un límite envolvente: un espacio transitable de 3 m. Este límite le permite optimizar tu presupuesto de gráficos al renderizar únicamente las partes del entorno que las personas pueden ver y moverse dentro de esta área.

    • 7:35 - Optimizar la geometría
    • Aprende cómo puedes utilizar el límite envolvente y aplicar técnicas en Houdini para disminuir la cantidad de polígonos en tu escena sin disminuir la calidad de la apariencia de su entorno.

    • 17:22 - Proyección UV
    • Descubre cómo puedes optimizar el mapeo de texturas y la organización de datos para empaquetar de manera eficiente las texturas del entorno y reducir aún más sus costos de renderizado.

    • 24:20 - Baking de texturas
    • Aprende a utilizar representaciones esféricas y un método de proyección directamente desde la geometría de origen sobre el atlas UV optimizado para capturar una cobertura de superficie completa.

    • 25:38 - Configuración de USD
    • Descubre cómo exportar tu entorno optimizado a USD para importarlo a Reality Composer Pro o al motor de tu elección.

    • 28:35 - Conclusión
    • Aprende cómo puedes utilizar estas mismas técnicas para crear una variedad diversa de entornos diferentes, incluidas experiencias de portal o entornos con múltiples límites envolventes.

Developer Footer

  • Videos
  • WWDC25
  • Optimiza tus entornos personalizados para visionOS
  • Open Menu Close Menu
    • iOS
    • iPadOS
    • macOS
    • tvOS
    • visionOS
    • watchOS
    Open Menu Close Menu
    • Swift
    • SwiftUI
    • Swift Playground
    • TestFlight
    • Xcode
    • Xcode Cloud
    • Icon Composer
    • SF Symbols
    Open Menu Close Menu
    • Accessibility
    • Accessories
    • App Store
    • Audio & Video
    • Augmented Reality
    • Business
    • Design
    • Distribution
    • Education
    • Fonts
    • Games
    • Health & Fitness
    • In-App Purchase
    • Localization
    • Maps & Location
    • Machine Learning & AI
    • Open Source
    • Security
    • Safari & Web
    Open Menu Close Menu
    • Documentation
    • Sample Code
    • Tutorials
    • Downloads
    • Forums
    • Videos
    Open Menu Close Menu
    • Support Articles
    • Contact Us
    • Bug Reporting
    • System Status
    Open Menu Close Menu
    • Apple Developer
    • App Store Connect
    • Certificates, IDs, & Profiles
    • Feedback Assistant
    Open Menu Close Menu
    • Apple Developer Program
    • Apple Developer Enterprise Program
    • App Store Small Business Program
    • MFi Program
    • News Partner Program
    • Video Partner Program
    • Security Bounty Program
    • Security Research Device Program
    Open Menu Close Menu
    • Meet with Apple
    • Apple Developer Centers
    • App Store Awards
    • Apple Design Awards
    • Apple Developer Academies
    • WWDC
    Get the Apple Developer app.
    Copyright © 2025 Apple Inc. All rights reserved.
    Terms of Use Privacy Policy Agreements and Guidelines