Release 0.8.5
Soporte moderno de JavaScript, pipelines con renderizado mejorado de follaje, plantillas de proyectos y muchas, muchas correcciones de errores y optimizaciones de rendimiento, mejorando en gran medida la estabilidad.
> Registro de cambios completo
Detalle Profundo
Esta versión añade un par de nuevas características muy poderosas que sugieren un examen más detallado:
Soporte Moderno de JavaScript
Mientras te permite construir tus componentes personalizados en ES6+,
utilizando const
, =>
y class
, esta función es mucho más que eso.
Con ella viene el poder de utilizar todo el ecosistema NPM, empaquetar el código JavaScript tú mismo, ¡o incluso usar otros lenguajes como TypeScript!
Dado que queremos que Wonderland Engine se integre bien con tu proceso de empaquetado, hemos publicado dos paquetes: @wonderlandengine/api y @wonderlandengine/components.
Pipelines
Un control más detallado sobre las características del pipeline de la GPU, como la mezcla, te permite construir una amplia gama de efectos. Los pipelines también permiten deshabilitar partes de los shaders para ajustar el rendimiento utilizando solo exactamente lo que usas.
Con esto viene un nuevo y poderoso pipeline de “Follaje”, que proporciona una mayor calidad para los modelos de plantas con enmascaramiento alfa.
Plantillas de Proyectos
Wonderland Engine ya te hace súper productivo con su flujo de trabajo de desarrollo rápido. Sin embargo, no tener que hacer algo en primer lugar puede ser aún más rápido. Para reducir la cantidad de trabajo genérico necesario, ahora proporcionamos plantillas para iniciar tu proyecto.
Y si necesitas más, puedes crear las tuyas propias y compartirlas con la comunidad.
Registro de Cambios
Editor
- Soporte para JavaScript ES2018 a través de V8
- El Editor ahora analiza el paquete resultante en lugar de los archivos js fuente
- Añadida opción para construir el paquete de JavaScript vía script npm
- Liberados los componentes del editor integrado
- Publicados los componentes del editor como paquete npm
- Añadidas plantillas de proyectos para crear proyectos
- Añadido soporte para plantillas de proyectos personalizadas
- Añadido soporte para pipelines
- Añadido soporte para alfa a cobertura (“enmascaramiento alfa con MSAA”)
- Añadido soporte para configuraciones de mezcla arbitrarias
- Añadida opción para desactivar el test de profundidad y las máscaras de escritura de profundidad
- Añadido soporte para materiales de doble cara
- Añadido pipeline de “Follaje” para materiales de doble cara con alfa a cobertura
- Generación añadida de sourcemaps para paquetes de JavaScript
- Soporte experimental añadido para mip mapping en atlas de texturas comprimidas
- Añadido Ctrl + Arrastrar y Soltar desde Vista de Propiedades a Esquema de la Escena para copiar componentes a otros objetos
- Añadido ajuste
framebufferScalingFactor
en Configuración del Proyecto - Habilitado MSAA en Vista de la Escena para coincidir con la apariencia en tiempo de ejecución
- Mejorados los tiempos de carga de escena
- Añadidas carpetas en el área de archivos del Navegador de Recursos
- Arreglados algunos bloqueos raros al realizar cambios durante el empaquetado
- Arreglado un bloqueo al arrastrar nada al Navegador de Recursos
- Corregidos valores de retorno en fallos con el flag
--windowless
- Arreglados los resaltados de fila en la Vista de Recursos
- Corregidos algunos recursos que no se podían renombrar en la Vista de Recursos
- Corregidos algunos recursos que no se podían seleccionar en los menús desplegables de propiedad
- Corregido el gizmo de escalado en la Vista de la Escena para objetos con padre
- Mejorado el estilo y diseño de la IU
- Mejorada la fluidez del gizmo de transformación para escenas con muchos objetos
- Mejorado el soporte para importación de archivos OBJ
- Eliminada la salida de registro superflua para reducir el desorden
Plantillas
- Añadida plantilla “AR Móvil” con prueba de golpe
- Añadida plantilla “VR” con seguimiento de manos, controladores, locomoción por teletransporte e interacción con cursor
Runtime
- API de JavaScript modularizada
- Liberada la API (https://github.com/WonderlandEngine/api)
- Publicada la API como paquete npm (https://www.npmjs.com/package/@wonderlandengine/api)
- Se solicitaron todos los espacios de referencia WebXR y el más avanzado se seleccionó por defecto
- Arreglado WasmMemroy que no se podía asignar en Oculus Quest durante el desarrollo de proyectos más grandes
- Arreglado bloqueo al desactivar una malla esquelética
- Mejorados los botones para entrar en VR/AR
- Añadido degradado de fondo para una mejor apariencia hasta la primera pintura en tiempo de ejecución
- Arreglados avisos que se registraban como errores en la consola del navegador
- Arreglado
start()
que se llamaba en componentes de JavaScript desactivados en el editor
Motor
- Arreglado el anti-aliasing cuando se habilitaba el bloom
- Mejorado el rendimiento de las trazas de rayos contra Box y AxisAlignedBox
- Mejorado el rendimiento de actualización de texto
- Mejorado significativamente el rendimiento del gráfico de escena para escenas con muchos árboles de objetos dinámicos (mallas esqueléticas)
API JS
- Corregidas excepciones en el acceso a parámetros
WL.Material.*
- Añadido setter para
WL.PhysXComponent.shape
,extents
y varias otras propiedades para modificar cuerpos rígidos PhysX - Añadido
WebXR.refSpace
para seleccionar el espacio de referencia - Corregido
WL.Object.getComponents()
que a veces devolvía tipos de componentes incorrectos - Añadido
WL.Object.active
para (des)activar todos los componentes en un objeto - Añadido
set WL.Object.transformWorld
yset WL.Object.transformLocal
- Corregido el estado
active
que se volvía inválido cuando se cambiaba duranteonActivate()
- Mejorada significativamente la fluctuación de memoria heap y el comportamiento de la recolección de basura
Componentes JavaScript
- cursor: Añadido
cursorRayScalingAxis
para escalar el objeto de rayo en un eje específico - cursor: Arreglado
onHover()
que ahora recibe el parámetro del objeto sobre el que se pasa el cursor - teleport: Renovado para soportar el input de palanca y orientación en sesiones VR
- teleport: Arreglado el centro del espacio teletransportado en lugar del jugador
- vr-mode-active-switch: Arreglado comportamiento cuando desactivado y ahora evita desactivarse a sí mismo
- hand-tracking: Añadidas opciones para (des)activar la malla de visualización y objetos de controlador dependiendo de si una pose está disponible
- Añadido componente
finger-cursor
para interactuar concursor-target
a través de la superposición de colisión (por ejemplo, con seguimiento de manos en la punta del dedo índice)
Imagen Docker
- Cambiada la imagen base a ubuntu:20.04
- Añadida etiqueta
edge
para testers de candidates de lanzamiento