Desarrollo WebXR
Partes de las Aplicaciones Web Espaciales
Las aplicaciones XR/espaciales son una colección de archivos que generalmente se sirven a través de un servidor web. Un navegador web puede interpretar estos archivos y ejecutar la aplicación web.
Archivos Comunes
Los archivos y extensiones de archivo más importantes para conocer se listan a continuación:
Extensión | Descripción |
---|---|
index.html | Página HTML principal de la aplicación web espacial. |
.js | Contiene código JavaScript. |
.ts | Contiene código TypeScript, que se convierte a .js antes de publicar la aplicación web espacial. |
.wasm | WebAssembly (que se compila a partir de lenguajes como C++ o Rust). |
.glb | Formato de archivo de modelo 3D que puede incluso incorporar texturas. |
.gltf | Formato de archivo de modelo 3D basado en texto. |
.bin | Generalmente referenciado por un archivo .gltf y contiene datos binarios del modelo 3D. |
.obj | Un formato de archivo de modelo más simple, basado en texto. |
.mtl | Un archivo de material, usualmente referido por un archivo .obj. |
.json | Datos arbitrarios utilizados por la aplicación. |
.css | Una “Hoja de Estilo en Cascada”, usada para ajustar la apariencia de elementos HTML. |
Adicionalmente, una aplicación web espacial utilizará archivos de audio (.mp3, .wav, .ogg, …), archivos de imagen (.webp, .png, .jpg) y, a veces, incluso archivos de video (.webm, .mp4, .mov).
Modelos 3D
Las aplicaciones VR y AR pueden ser desde entornos completamente inmersivos hasta simples paneles de interfaz de usuario flotantes. En la mayoría de los casos, se necesitarán al menos algunos modelos 3D (también llamados “activos” cuando se usan en tu aplicación).
Plataformas
Se pueden encontrar muchos activos gratuitos y de pago en plataformas como Sketchfab, TurboSquid e itch.io.
Hay fuentes totalmente gratuitas para modelos 3D como Quaternius, Kenney.nl y Poly Haven.
A menudo también puedes utilizar paquetes de activos de Unity o Unreal Engine.
Escaneo 3D
El proceso de convertir fotos de objetos del mundo real a modelos 3D se llama “Fotogrametría” o escaneo 3D.
Aplicaciones como RealityScan para tu smartphone o software como Reality Capture pueden ayudarte a integrar modelos del mundo real en tus aplicaciones web espaciales.
Creación
Crear manualmente modelos 3D puede ser una tarea que consume mucho tiempo. Los modeladores 3D utilizan software como Blender o Maya para diseñar modelos 3D personalizados según tus necesidades.
Si el modelado 3D no es lo tuyo, puedes encontrar un artista 3D para contratar en ArtStation.
Optimización
Todos los activos de una aplicación web espacial se transmiten a través de internet. Esto puede afectar los tiempos de carga, lo que hace importante que los activos sean comprimidos y optimizados.
Código
El código para aplicaciones web espaciales puede escribirse en TypeScript, JavaScript, C++, Rust y muchos otros lenguajes. JavaScript se ejecuta directamente, mientras que lenguajes como C++ se compilan a WebAssembly.
El código tiene muchas responsabilidades en una aplicación web espacial:
- Renderizado: Creación de las imágenes que se muestran en el smartphone o dispositivo VR. Los gráficos por computadora son un campo complejo de la informática. Para manejarlo, los desarrolladores de WebXR utilizan frameworks de renderizado para encargarse de tareas comunes.
- Carga de Activos: Cargar modelos 3D, texturas, audio, videos y otros datos cuando se necesiten. Los frameworks generalmente proporcionan funciones para leer datos de diferentes formatos de archivo 3D, y en la web, el navegador puede encargarse de cargar formatos de imágenes y archivos de audio.
- Interacción del Usuario: Reaccionar a la entrada del usuario, proporcionando retroalimentación y aplicando acciones en respuesta a las acciones del usuario.
- Lógica de la Aplicación: Los cálculos, el procesamiento y las interacciones de datos que la aplicación está diseñada para realizar, desde consultar bases de datos hasta generar datos.
Librerías, frameworks y motores 3D como Wonderland Engine ayudan con todas estas tareas y proporcionan funciones comúnmente utilizadas para permitir que los desarrolladores espaciales web construyan sus aplicaciones de manera más eficiente.
Servicios Web
La aplicación podría interactuar con servicios en línea para cuentas, almacenar información individual, consultar grandes bases de datos, transmitir medios y mucho más.