Unigine con sistema meteorológico IG mejorado

Unigine con sistema meteorológico IG mejorado, esta nueva versión aporta muchas mejoras. Como un editor gráfico para el sistema de nodos, un nuevo panel de control para el agua y fluidos; una actualización de la herramienta Sandworm, Compresión avanzada de datos del terreno, Pinceles mejorados y más.

Cambios importantes más destacados en Unigine 2.15

  • Gráficos de material basados en nodos con editor visual.
  • Nuevo sistema de agua con control individual sobre cada ola.
  • Compresión avanzada de datos para Landscape Terrain.
  • Actualización de la herramienta Sandworm: fuentes SIG en línea, generación distribuida.
  • Soporte extendido de realidad mixta para auriculares Varjo XR-3.
  • Editor del sistema de plugins.
  • Herramientas de pincel actualizadas.
  • Nuevo navegador de activos y otras mejoras.
  • Sistema meteorológico de alto nivel IG mejorado.
  • Demostración de Marte 1000×1000 km de tamaño.

Aviso: EL SDK de Unigine 2.15 requiere SDK Browser versión 1.9.32 o posterior.

Editor de gráficos de material visual

Una de las principales características de 2.15 es el nuevo editor de materiales; está basado en nodos que permite crear tus propios materiales visualmente sin escribir una sola línea de código.

Hicimos todo lo posible para combinar todos los beneficios de los mundos de la programación basada en código y en nodos.

Editor visual de materiales para Unigine
Editor visual de materiales para Unigine

Los puntos clave incluyen:

  • Ahorro rápido de gráficos que no tarda más de un par de segundos.
  • Equilibrio óptimo entre la lista de características, el rendimiento y la comodidad.
  • Conversión automática de tipos siempre que sea posible, lo que lo hace más simple para los artistas.
  • Posibilidad de cambiar entre tipos de materiales (hay cuatro disponibles en este momento: PBR opaco, PBR de prueba alfa, PBR transparente, transparente sin iluminación).
  • Interfaz de usuario de Material Editor con parte de las funciones envueltas en menús contextuales para que no tenga que mover el cursor del mouse a través de la pantalla para usar otra función.
  • Robustez y fiabilidad del sistema. En caso de mal funcionamiento de cualquier nodo o de ensamblaje de alguna lógica no válida; el gráfico no se romperá totalmente y se volverá ilegible; solo resaltará los problemas para que los aborde.
  • Capacidad para crear sus propios materiales base(.mgraph)y usarlos directamente asignados a objetos o como materiales principales para cientos de otros materiales para evitar volver a ensamblar el gráfico de materiales una y otra vez.
Materiales del editor gráfico en Unigine
Materiales del editor gráfico en Unigine

Ensamblar gráficos en Unigine Engine 2.15

Una de las cosas más importantes es la posibilidad de ensamblar gráficos fáciles de leer; que no se parecen a un tazón de espaguetis y son fáciles de soportar. Esto se debe a la compacidad general del gráfico, proporcionada por el número minimizado de nodos de gráficos; manteniendo la misma funcionalidad y una serie de características, entre otras que incluyen:

  • Conectores: un modo especial «colapsado» de un nodo gráfico cuando ocupa menos espacio y se puede conectar directamente a una entrada de otro nodo gráfico.
  • Portales que le permiten mantener la claridad visual incluso para gráficos complejos o grandes, evitando situaciones cuando sus cables están por todas partes entrecruzándose entre sí.
  • Nodos de expresión que le permiten escribir operaciones aritméticas simples, pero lo principal es que puede usarlo como un deslizamiento en combinación con la capacidad de cambiar el número o el orden de los componentes de datos.
  • Subgráficos: sus nodos personalizados que combinan partes reutilizables de su gráfico de nodos, que se pueden usar en varios otros gráficos de materiales. La mejor parte es que, si cambia algo en el subgráfico, los cambios se aplicarán a cada material que lo use.
  • Bucles: una característica compleja pero muy interesante que le permite repetir una secuencia arbitraria de acciones varias veces. Hemos analizado múltiples implementaciones existentes de bucles de gráficos e inventado uno nuevo que está casi a la par con los bucles en el código. ¿Por qué no escribir bucles en código entonces? Porque usar un gráfico hace que la implementación de cosas complejas dentro de un bucle sea mucho más fácil que hacer lo mismo en el código.

CSharp Third Person Platformer

La demostración de superposición, junto con la muestra de CSharp Third Person Platformer y la plantilla de proyecto de C# predeterminada se cambiaron a materiales basados en gráficos para que pueda verlos en acción.

Para tu comodidad, el SDK incluye un paquete de muestras de gráficos de materiales creados con el nuevo Editor de materiales. Esto proporciona una visión general rápida y demostrar sus características, capacidades y casos de uso comunes. Lo encontrará a través del navegador SDK: Samples -> Demos -> Material Graph Samples.

editor de materiales en Unigine 2.15
editor de materiales en Unigine 2.15

También hemos añadido las siguientes características que no están directamente relacionadas con el Editor de Gráficos de Materiales, pero también son muy importantes.

  • Al importar geometría, puede elegir si desea crear materiales basados en gráficos; o utilizar el flujo de trabajo antiguo y crear un material secundario de la mesh_base.
  • En caso de que desee que cualquier material secundario de un material basado en gráficos se vuelva único y no esté relacionado con su padre actual, puede hacer clic con el botón derecho en él y elegir Convertir en gráfico único en el menú contextual.
  • Puede volver a dividir un material del mesh_base a un material basado en gráficos, y si los nombres de los parámetros son los mismos; incluso los valores se establecerán automáticamente para ellos. Así es como migramos nuestros proyectos de la mesh_base a materiales basados en gráficos. La forma más fácil de hacerlo es a través de la tecla de acceso rápido Ctrl + P.
Editor de materiales en Unigine 2.15
Editor de materiales en Unigine 2.15

Refactorización del sistema de materiales en Unigine Engine 2.15

La implementación del tan esperado Gráfico de Materiales ha requerido una importante refactorización del sistema de Materiales de Unigine. Y hemos aprovechado esta oportunidad para hacerlo más flexible, sencillo y fácil de usar también, brindándole aún más beneficios.

Personalización de materiales más simple

Hemos simplificado el proceso de creación de materiales de usuario personalizados o la ampliación de la funcionalidad de los existentes. Hasta 2.15 para ajustar un poco el material mesh_base (por ejemplo, agregar alguna animación UV o una textura adicional, o usar cualquier sombreador personalizado) tuvo que hacer una copia de todo el mesh_base y agregarle su código personalizado (¡que en realidad es una bifurcación!).

En este caso, cualquier cambio realizado en este material en cada versión posterior del SDK asociada con la adición de nueva funcionalidad; o alguna refactorización interna requeriría que realice un seguimiento de estos cambios y actualice su material personalizado manualmente.

Bueno, las cosas se han vuelto mucho más simples. La creación de materiales de usuario personalizados ahora está disponible de las siguientes maneras:

  • Uso del Material Graph:ensamblando lo que necesita en el editor visual.
  • Uso de materiales abstractos (ver más abajo): heredando un material base de un prototipo abstracto existente (o su propio prototipo personalizado) y agregándole las funciones deseadas.

Otras formas no documentadas de personalización de materiales (por ejemplo, copia y modificación manual a la antigua usanza) deben admitirse manualmente bajo su propio riesgo.

Materiales abstractos en Unigine Engine 2.15

Para simplificar la programación de shaders y ocultar la complejidad de implementación de varias características hemos añadido Materiales Abstractos, como las clases abstractas en programación orientada a objetos que sirven como una definición de plantilla de ciertos parámetros y funcionalidades.

Un material abstracto en sí mismo no se puede asignar a objetos, se utiliza para heredar otros materiales abstractos y de base de él; extendiendo su funcionalidad; lo que le da mucha flexibilidad.

Al heredar de un material abstracto, puede anular cualquier valor o agregar algunos otros componentes al material secundario. Cuando el material secundario implementa el sombreador con el mismo nombre, el código fuente del sombreador primario y el secundario se fusionan (el sombreador primario precede al secundario).

Puede crear su propio material abstracto personalizado o usar los proporcionados listos para usar, como Malla opaca/Transparente/Sin luz con o sin teselación, para crear un material base personalizado ajustando el mesh_baseestándar.

El conjunto básico de materiales abstractos para heredar de eso está actualmente disponible en 2.15 cubre solo objetos Mesh, pero en las próximas versiones más cercanas, planeamos cubrir Calcomanías, Volumetría y otros tipos de objetos también.

Materiales abstractos en Unigine 2.15
Materiales abstractos en Unigine 2.15

API UUSL actualizada y archivos reorganizados

Hemos separado la funcionalidad de sombreado interno del motor de la API de sombreadores disponibles para los clientes, reestructurando y moviendo todo el código relacionado a archivos de encabezado separados (como constants.h, gbuffer.h, matrix.h,etc.). Hemos puesto estos archivos para usted en data/core/materials/shaders/api.

Este hecho nos permite evitar que la API de Shaders cambie cada versión y garantizar que todas las funciones se documenten de manera oportuna y adecuada. Se realizaron muchos cambios clave durante el proceso de refactorización; y se planea que la nueva documentación de UUSL se prepare en el futuro más cercano.

Ahora puede crear un nuevo sombreador a través del menú contextual justo en el Navegador de activos. Basta con incluir un solo encabezado common.h para usar toda la funcionalidad.

API UUSL actualizada y archivos reorganizados
API UUSL actualizada y archivos reorganizados

Materiales de publicación con scripts en Unigine Engine 2.15

En 2.15 hemos reemplazado los materiales de postes antiguos. Ya no son necesarios, ya que puede usar Materiales scriptables en su lugar; ya que proporcionan una funcionalidad y flexibilidad extendidas, junto con una mejor estructura.

Los materiales de publicación antiguos de core\materials\default\post se migraron a materiales base con scripts ulon y se movieron a la carpeta \core\materials\base\post\.

El proceso de migración de otros materiales base XML a materiales base ULON está en curso y está previsto que se complete en 2.16.

Mejoras en el sistema de agua en Unigine Engine 2.15

Basándonos en los comentarios de nuestros clientes de la industria de la simulación, hemos mejorado la gestión de las olas para el objeto Global Water, lo que le brinda un control preciso sobre el espectro de ondas. Las características únicas de cada sistema de ondas se pueden establecer de forma independiente a través de parámetros espectrales; dirección de onda, longitud y amplitud, y el factor de forma de las ondas en tiempo de ejecución a través de API (ya que todos los datos ahora están disponibles en el lado de la CPU). Esta funcionalidad está disponible en un nuevo modo Manual.

La lista de características incluye:

  • Cambio suave de los estados del mar según la escala de Beaufort.
  • Ajustes de calidad flexibles que proporcionan espacio para la optimización.
  • Prácticamente no hay efectos de mosaico de textura visibles a distancias cercanas y lejanas.
  • Tres modos de generación de ondas disponibles, desde totalmente automáticos hasta totalmente personalizables.
  • Simulación realista del agua en tiempo real basada en la rápida implementación del modelo de ondas de Gerstner.
  • Detección rápida de intersecciones y obtención del nivel del agua en un punto arbitrario en cualquier momento del tiempo (hasta 10x boost).
  • Capacidad para crear y controlar ondas y grupos de ondas (de mayor a menor), con el máximo de 256 ondas simuladas (recomendado – 100).
  • Capacidad para controlar cada parámetro a través de API que le permite aplicar los resultados de los cálculos utilizando diferentes modelos hidrodinámicos.

Refactorizando en Unigine Engine 2.15

En el marco de la refactorización hemos reunido todos los parámetros del objeto Global Water en un solo lugar, moviendo la mayoría de los ajustes que antes estaban almacenados en el material water_global_base al objeto y añadiendo una serie de nuevos, y mejorado un poco la nomenclatura. Los controles en la interfaz de usuario se reorganizaron para que fuera más intuitiva y directa.

Lo importante aquí es que las nuevas capacidades del objeto Global Water actualizado vienen sin una complicación excesiva innecesaria. Entonces, para aquellos de ustedes que simplemente quieren que se vea lo suficientemente plausible y realista, sin tener que ajustar muchos controles deslizantes y cajas combinadas, hay un modo de generación de ondas automáticas llamado Beauforts y basado en la escala de Beaufort (de calma – 0, a huracán – 12, tal como era antes).

Tenga en cuenta que los ajustes preestablecidos de Beaufort para varios estados del mar ahora están disponibles como nodos separados en el menú Crear; se eliminaron los antiguos ajustes preestablecidos basados en materiales heredados de water_global_base. Hay una especie de modo de capas semiautomáticas que le permite crear capas (a través del Editor o el código) para las cuales las ondas se generan aleatoriamente en función de un conjunto de parámetros.

Mejoras en el sistema de agua para Unigine 2.15
Mejoras en el sistema de agua para Unigine 2.15

Oil Platform y Art Samples en Unigine Engine 2.15

La demostración de Oil Platform, así como todas las muestras de agua en la suite Art Samples ahora contienen el objeto Global Water actualizado.

La nueva implementación del agua requirió muchos cambios clave (múltiples configuraciones nuevas agregadas, migración de configuraciones de materiales a nodos, etc.). Lo que desafortunadamente hace imposible la migración automática.

Por lo tanto, en caso de que haya utilizado configuraciones personalizadas para el agua en su proyecto, tendrá que volver a crearlas. Si utilizó ajustes preestablecidos estándar de Beaufort, casi no se requiere migración y puede usar ajustes preestablecidos similares implementados como nodos.

Para obtener más información, consulte el artículo actualizado que describe el objeto Global Water.

Compresión avanzada de datos de terreno de paisaje

Ahora puede comprimir los archivos de mapa horizontal que importa en su proyecto para reducir significativamente su tamaño (con una relación de compresión superior a 100: 1 en algunos casos).

Compresión avanzada de datos de terreno de paisaje
Compresión avanzada de datos de terreno de paisaje

La herramienta de compresión le permite seleccionar un perfil de compresión sin pérdida o con pérdida para sus texturas, así como configurar su propio perfil personalizado.

Recomendamos utilizar un método de compresión sin pérdida desarrollado por Unigine que proporcione mejores resultados de compresión para texturas 2D y 3D que LZ4 o Zlib y no reduzca la calidad.

Compresión avanzada de imágenes en Unigine
Compresión avanzada de imágenes en Unigine

Hay una cosa que debe tener en cuenta: los mapas de capas comprimidas no se pueden modificar rápidamente en tiempo de ejecución. Por lo que recomendamos mantener los datos principales del terreno en capas comprimidas mientras se tienen ciertas partes para modificar en las sin comprimir.

También recomendamos utilizar algoritmos de compresión sin pérdida (o deshabilitar la compresión) en la etapa de desarrollo; para evitar el deterioro de la calidad en las operaciones de compresión-descompresión y aplicar la máxima compresión al realizar la compilación final.

Actualización de la herramienta Sandworm

Seguimos trabajando en Sandworm para convertirlo en una herramienta de generación de terreno ideal. Para esta versión, hemos corregido numerosos errores e introducido la computación distribuida; una posibilidad de generar terrenos utilizando la potencia unida de su equipo de máquinas. Así que si tu terreno tarda mucho tiempo en generarse (más de una hora), puedes acelerar el proceso.

Actualización de la herramienta Sandworm
Actualización de la herramienta Sandworm

El concepto es utilizar varios ordenadores unidos en una red, uno de los cuales es Master y asigna tareas, y los otros son Trabajadores que realizan partes del trabajo (procesamiento de datos de origen) que se les asignan.

Unigine Editor con la herramienta Sandworm

Unigine Editor con la herramienta Sandworm y un proyecto de terreno debe estar abierto solo en Master, mientras que Workers ejecuta una sola aplicación sin cabeza (consola): no es necesario ejecutar SDK Browser y Unigine Editor,no se requieren licencias adicionales.

Los archivos de origen (geodatos) y la caché común se almacenarán en una carpeta compartida. Si un trabajador aún tiene recursos disponibles, se pueden ejecutar procesos adicionales en él y participar en la generación del terreno de inmediato, es decir, sin reiniciar el proceso de generación. Master crea el activo en función del resultado.

Unigine Editor con la herramienta Sandworm
Unigine Editor con la herramienta Sandworm

Generar edificios en Unigine

También estamos orgullosos de presentar la función actualizada de generación de edificios. Varios tipos de techos (planos, skillion, a dos aguas y a cuatro aguas); se generan automáticamente de acuerdo con los datos vectoriales SIG proporcionados o al azar utilizando algoritmos mejorados. Los materiales para techos y paredes (ahora con ventanas más realistas) se ven mucho mejor y se pueden aleatorizar con un grado de probabilidad predefinido.

Planeamos mejorar aún más los algoritmos de generación y crear un complemento que contenga un rico paquete de materiales. Para simplificar la creación de entornos con una rica diversidad de edificios, desde bungalow y casas de madera hasta rascacielos.

Generar edificios en Unigine
Generar edificios en Unigine

También se agregaron las siguientes características nuevas:

  • Migración automática 2.14->2.15 para activos .sworm.
  • Posibilidad de definir el área de exportación por capa para fuentes offline.
  • Generación de terreno en el modo sin cabeza (no se requieren licencias adicionales).
  • Modo Área de exportación que permite trabajar solo con el Área de exportación.
  • Edición con teclado de las coordenadas del área de exportación y de la capa.
  • Un conjunto separado de capas de origen para objetos/activos que admiten el filtrado múltiple (un elemento puede contener varios filtros).
  • Al hacer doble clic en un atributo de la tabla, se agrega a la celda de valor. Reorganizó el enfoque de filtrado: hizo posible las operaciones AND/OR dentro del mismo filtro.

La lista de otros cambios es la siguiente:

  • Generación fija de edificios.
  • Se ha corregido la nomenclatura de máscaras para ObjectLandscapeTerrain.
  • Corregido problemas al agregar y eliminar los puntos del área de exportación.
  • Se ha corregido el cálculo incorrecto de la densidad que se muestra en las propiedades de la capa.
  • Corregido problemas con la creación de recuadros para capas con una mayor densidad de datos.
  • Se ha corregido un problema con el comportamiento de no respuesta al generar datos vectoriales si los parámetros de objeto hacen referencia a GUID inexistente.

Más Tonemappers

Hemos ampliado el conjunto de tonemappers Filmic, varias variaciones de Reinhard, ACES, y una combinación de los dos últimos. Así podrás elegir el que mejor se adapte a los requerimientos de tu proyecto, dando el aspecto deseado. Puede controlar la asignación de tonos a través de la sección Render -> Corrección de color de la ventana Configuración.

En caso de que desee habilitar Aces tonemapper con configuraciones de uso común, simplemente restablezca todos los parámetros a los valores predeterminados a través del botón correspondiente junto a cada uno de ellos.

Nuevo BRDF difuso

Después de haber estudiado muchos modelos de BRDF difusos, hemos decidido que necesitamos implementar el nuestro. Ya que ninguno de los existentes proporciona un resultado visual aceptable para nosotros.

Nuevo BRDF difuso
Nuevo BRDF difuso

Las principales diferencias del nuevo modelo BRDF con respecto al anterior son las siguientes:

  • Soporte para dispersión múltiple (el color difuso está más o menos saturado dependiendo del ángulo de visión).
  • Soporte para el efecto Oleada de oposición, que parece un punto brillante distinto en una superficie iluminada directamente desde detrás del observador (cuando se mira en la dirección paralela a los rayos de luz).
  • La mayoría de los nuevos modelos difusos BRDF tienen una luz de llanta demasiado fuerte en caso de valores máximos de rugosidad. Esto se hace más notable en los planos que tienen mapas normales con un relieve muy nítido, lo que lleva a un efecto de brillo antinatural en algunos ángulos. Nuestro modelo tampoco está libre de este efecto, pero el gradiente se ve más suave y natural.

Soporte FMOD

Unigine ahora es compatible con FMOD, un motor de audio adaptativo en tiempo real que le permite crear música y efectos de sonido que se adaptan a la lógica de su aplicación creando una experiencia aún más inmersiva.

FMOD simplifica el proceso de creación de comportamientos de sonido, con un conjunto completo de características para hacer frente a cualquier escenario. Le permite decodificar, mezclar y emitir audio dinámicamente en cualquier dispositivo (incluidos los personalizados, gracias a las salidas extensibles) con todos los principales formatos de archivo y formatos optimizados para hardware compatibles.

Sumérgete en la mezcla creativa en tiempo real con soporte de audio 3D y un conjunto incorporado de efectos DSP (con la capacidad de agregar efectos y generadores personalizados a través de complementos). La profundidad ilimitada, los envíos, las subemezclas y la cadena lateral brindan un control completo sobre el enrutamiento de audio.

La funcionalidad FMOD en Unigine está disponible en C++ y C# a través del complemento FMOD (actualmente solo para la plataforma Windows, la compatibilidad está limitada a la última versión de FMOD 2.02.04). Tenga en cuenta que necesita una licencia de FMOD para usarlo: consulte su sitio web para conocer las opciones disponibles.

Para obtener más información, consulte el artículo del complemento FMOD. Y no olvides echar un vistazo a las nuevas muestras de integración de FMOD Core y FMOD Studio en el SDK Browser:Samples -> 3rd Party -> Sounds.
Soporte extendido de realidad mixta para Varjo XR-3

Soporte FMOD
Soporte FMOD

Experiencia mejorada para Varjo VR y XR

Hemos realizado una serie de cambios para simplificar la implementación de aplicaciones de realidad mixta y mejorar su experiencia con los auriculares Varjo VR y XR de grado industrial con resolución de ojo humano.

Ahora admitimos Varjo SDK 3.3.0 y hemos agregado soporte para la clave de croma, para que pueda cambiar los entornos rápidamente, junto con las pruebas de profundidad que le permiten componer y ordenar mundos reales y virtuales juntos utilizando las capacidades de detección de profundidad de XR-3 y XR-1.

El seguimiento de objetos estáticos o dinámicos del mundo real utilizando las cámaras de paso de video a través de marcadores también está disponible ahora. Con las capacidades de Alpha Blend, puede combinar su entorno virtual con el mundo real, lo que permite una colaboración eficiente en ambos.

El ejemplo de C++ VR se ha actualizado para mostrar nuevas funcionalidades.
Para obtener más información sobre los cambios relacionados con la API, consulte la Guía de migración de API.

Otras mejoras del motor

  • API de clase BootConfig expandida.
  • Se ha corregido un fallo del motor en la regeneración de Mesh Clutter.
  • Corregido un bloqueo al guardar una configuración de AppProjection.
  • Se ha añadido la posibilidad de cambiar el icono de la aplicación para sus proyectos.
  • Corregido las pérdidas de memoria en los parámetros de propiedad de la matriz de estructuras.
  • Se restauró la lógica de adivinar la extensión de archivo para el método FileSystem::LoadPackage().
  • Corregido un problema con las sondas planas de luz que representaban objetos con LOD incorrectamente.
  • Se ha corregido un problema con la búsqueda de intersecciones con mallas estáticas en los bordes de los polígonos.
  • Corregido un problema con Video Grabber que guardaba imágenes en formatos HDR con la pérdida de datos (.exr).
  • Se ha corregido un bloqueo al reducir el tamaño de una variable de matriz en un componente de C++ a través de ComponentVariableArray::resize().
  • Los componentes de C++ ahora se pueden descargar de forma segura sobre la marcha mientras el mundo todavía está cargado (por ejemplo, al recargar complementos).
  • Se ha corregido un problema con World Occuders que no impedía que los objetos ocluidos se representaran en caso de establecer valores de distancia bajos.
  • Corregido un problema en el sombreado de nubes que a veces conduce a artefactos de sombreado en caso de que se utilicen varias luces del mundo con diferentes tipos de dispersión(Luna y Sol).
  • Se ha cambiado la API de C++ y C# para la inicialización del motor, para obtener más información, consulte la Guía de migración de API.
  • La funcionalidad de clasificación de la clase Wrapper ya está disponible, lo que le permite usar los marshallers de Engine en lugar de escribir los suyos propios, esto puede ser útil cuando se usan bibliotecas de C ++ en sus proyectos de C #.

Sigue la lista de mejoras en Unigine Engine 2.15

  • Se ha corregido un problema con una asignación incorrecta de máscara de detalle adicional para los detalles del objeto Landscape Terrain mediante una máscara adicional en caso de que haya al menos un detalle que no use una máscara adicional.
  • WorldIntersection::getInstance() ahora devuelve índices correctos de instancias de clúster de malla intersectadas, independientemente del número de mallas del clúster.
  • Se ha agregado una nueva devolución de llamada onFileSystemInitialized() justo después de la inicialización del sistema de archivos, para que pueda usarla, por ejemplo, para agregar dinámicamente nuevos puntos de montaje durante la etapa de inicialización mientras muestra la pantalla de arranque.
  • Se agregó un nuevo método getVisibleIntersection() a la clase World, teniendo en cuenta la distancia de la cámara, los LOD y otros aspectos «visuales», el método getIntersection() ahora ignora el componente «visual» que le permite capturar objetos ocultos por la distancia de visibilidad (por ejemplo, si un LOD de objeto está oculto por la distancia de visibilidad, pero el objeto está dentro del frustum, se detectará la intersección). Para obtener más información, consulte la Guía de migración de API.

Modos del editor en Unigine Engine 2.15

Para mejorar la experiencia del usuario en la creación de mundos y resolver conflictos de teclas de acceso rápido entre diferentes herramientas, hemos rediseñado la interfaz de usuario para los modos de editor existentes(Objeto,así como Landscape y Clutter Mask Paint).

Modos del editor en Unigine Engine 2.15
Modos del editor en Unigine Engine 2.15

Acceder a las herramientas correspondientes se ha vuelto más conveniente e intuitivo como simplemente cambiar entre modos (disponibles también a través de teclas de acceso rápido). Los consejos de interfaz de usuario y los creadores de acceso rápido proporcionan orientación para ayudar a los nuevos usuarios a ponerse en marcha rápidamente.

También hemos hecho un restyling a la barra de herramientas y otros elementos de la interfaz de usuario haciendo que todos los iconos se vean claramente a diferentes resoluciones, y los elementos en sí mismos sean más intuitivos y convenientes de usar.

Modos del editor en Unigine Engine 2.15
Modos del editor en Unigine Engine 2.15

Nuevo editor de pinceles de clúster

Hemos completado la primera iteración del modo de edición de clúster. El primer instrumento implementado es el cepillo de colocación de malla. Además de usar texturas de máscara, ahora puede dispersar objetos en cualquier parte del mundo usando pinceles.

Varias mallas/objetos se pueden dispersar simultáneamente con la capacidad de habilitar/deshabilitar el dibujo para cada objeto por separado. Cada objeto almacena su propia configuración de dispersión.

Hay varios pinceles disponibles: aumentar la opacidad, disminuir la opacidad, reemplazar la opacidad y borrar. La herramienta todavía está en desarrollo, pero ya hay un conjunto mínimo de funciones disponibles para ser utilizadas en sus proyectos.

Nuevo editor de pinceles de clúster
Nuevo editor de pinceles de clúster

Cepillos de desorden mejorados en Unigine Engine 2.15

Las actualizaciones de la herramienta Pincel hacen que pintar en máscaras para Hierba, DesordenesClústeres sea más conveniente e intuitivo con una posición de pincel actual precisa. Los objetos ahora se generan sobre la marcha mientras dibuja, todos los objetos que usan la misma máscara se actualizan a la vez. La herramienta actualizada estará disponible después de seleccionar el modo de pintura de máscara de desorden en el menú desplegable Modos.

Hemos rediseñado el Asset Browser para hacerlo más flexible y conveniente.
El panel de vista previa se ha movido a la ventana Parámetros, ahorrando espacio y mejorando la coherencia.

Asset Browser
Asset Browser

Se ha agregado una nueva funcionalidad en la parte superior de la ventana, que ahora depende del contexto, los elementos innecesarios de la interfaz de usuario se ocultan según el diseño actual del Explorador de activos. Cada uno de los dos paneles tiene su propio factor de zoom para mayor comodidad.

Nuevo filtro de mapas en Unigine
Nuevo filtro de mapas en Unigine

Filtros que busca activos similares a los añadidos ya en Unigine Engine 2.15

Ahora está disponible un filtro para tipos de activos similar al filtro de tipos de nodo en la ventana Nodos mundiales, lo que le permite reducir el caos y concentrarse en los tipos de activos deseados.

El ámbito de búsqueda ahora está limitado a la carpeta seleccionada en la jerarquía. Después de seleccionar un activo en los resultados de búsqueda y borrar la consulta de búsqueda en el campo, la carpeta actual cambiará automáticamente a la que contiene el activo seleccionado (similar a la lógica de la ventana Nodos mundiales).

Puede expandir/contraer carpetas rápidamente o mostrar/ocultar activos en el árbol de carpetas a través de los botones correspondientes en la parte superior. Mientras que los dos nuevos botones de flecha hacen que el historial de la carpeta de navegación sea conveniente.

Sin embargo, la adición de activos, carpetas e incluso resultados de búsqueda a favoritos (por proyecto) está disponible, el ámbito de búsqueda se restablecerá a global.

Puede simplificar el diseño manteniendo solo la vista de carpeta y usándola como la jerarquía de Nodos mundiales, o usar el diseño familiar antiguo si lo prefiere.

Importación avanzada de materiales de FBX-Assets

Al importar un activo FBX, el Sistema de Importación de Unigine ahora detecta si se utiliza una máscara de transparencia y crea automáticamente un material de prueba alfa con el modo de dos caras activado.

En la mayoría de los casos, cuando los artistas importan materiales con transparencia, en realidad trabajan con vegetación que requiere una combinación Alpha Test + Two Sided en lugar de simplemente Alpha Blend. Esta característica funciona con ambos tipos de materiales basados en gráficos y heredados de la mesh_base.

Al importar modelos FBX, los ajustes preestablecidos apropiados se seleccionan automáticamente en los parámetros de importación para las texturas utilizadas en los materiales importados en función de la ranura a la que se asignan estas texturas.

Por ejemplo, si se asigna una textura a la ranura Normal Map, se seleccionará el ajuste preestablecido Normal para ella, aplicando automáticamente el tipo de compresión apropiado. El conjunto de texturas que se pueden importar de los activos de FBX ahora incluye la emisión.

El diccionario de postfixes para los ajustes preestablecidos de importación de texturas se ha ampliado ahora incluyendo una serie de variaciones correspondientes a cada tipo de textura en lugar de utilizar un solo prefijo.

Importación avanzada de materiales de FBX-Assets
Importación avanzada de materiales de FBX-Assets

Otras mejoras de Unigine Editor

Ahora puede consultar las dependencias de activos para materiales y propiedades directamente desde las ventanas de jerarquía Materiales y propiedades.

Hemos reorganizado la configuración para su conveniencia con los controles Tonemapper y Balance de blancos movidos de Efectos de cámara a la sección Corrección de color.

La sección Postproceso de la ventana Configuración se ha eliminado con sus parámetros movidos a las siguientes secciones: Color de estructura metálica (selector de color de estructura de alambre), Transparente (controles deslizantes de refracción), Efectos de cámara (Intensidad de nitidez), Ejes SSShadows (controles deslizantes de ejes de sombra).

Otras mejoras de Unigine Editor
Otras mejoras de Unigine Editor

Opciones en el panel de control

  • Cuando se selecciona un recurso, su nombre y tamaño de archivo se muestran ahora en la ventana Parámetros.
  • La resolución actual de un activo Horizontal (.lmap) ahora se muestra en la ventana Parámetros del Editor Unigine.
  • La nueva información sobre herramientas para widgets de activos (como texturas, mallas, materiales) ahora contiene una vista previa de un activo.
  • Se ha corregido un problema con Unigine Editor que quitaba los archivos de C# no componentes ubicados en la carpeta de datos del archivo .csproj al abrir un proyecto.

Se ha añadido una opción para cargar automáticamente el último mundo activo al abrir el Editor. Puede controlar esta opción a través de la casilla de verificación Abrir automáticamente el último mundo en la sección Editor de configuración -> (el estado se almacena en el archivo de configuración .user). Esta opción está deshabilitada de forma predeterminada, ya que en caso de un mundo defectuoso puede provocar bloqueos repetidos del Editor.

El ajuste de curvas en Unigine Editor se ha vuelto aún más conveniente con las nuevas operaciones de copiar y pegar que le permiten configurar rápidamente curvas similares. Copiar una curva que contiene n valores a la que tiene más valores reemplazará solo a los primeros.

Mejoras en los activos

  • El número de activos seleccionados actualmente se muestra ahora en la ficha Activo de la ventana Parámetros.
  • Agregar nodos a la jerarquía se ha vuelto más rápido, mejorando el rendimiento del Editor y la experiencia de usuario para escenas grandes que contienen muchos objetos.
  • Se han corregido problemas con la reconstrucción múltiple de un proyecto de puntos de C# después de eliminar la carpeta .runtimes o guardar un componente vacío.
  • El Editor ahora puede funcionar en el modo de fondo, cuando necesite esta funcionalidad simplemente marque Mantener ejecutándose en segundo plano en Configuración -> Editor.
  • Corregido un problema con el enfoque incorrecto de la cámara en un nodo situado lejos del origen en proyectos de doble precisión.
  • Se ha corregido un problema con la reproducción infinita de un archivo de audio seleccionado en el Explorador de activos.
  • El complemento FBXImporter ahora escribe rutas relativas a las mallas en los archivos .node generados. También se ha añadido soporte para texturas de emisión.
  • Corregido un problema con el restablecimiento del tamaño de las miniaturas en los cuadros de diálogo Abrir/Guardar, ahora los cuadros de diálogo utilizan el último tamaño seleccionado.
  • Se ha corregido un problema al realizar la operación Deshacer después de asignar un nuevo material a un detalle de Landscape Terrain que conducía a una asignación vacía, ahora se restaura el estado anterior.

Mejoras en el generador de imágenes del sistema meteorológico

Presentamos un nuevo sistema meteorológico de alto nivel que le permite gestionar el clima en capas global y regional tanto en Unigine Editor como a través de API. Puede crear un número ilimitado de regiones, tanto rectangulares como arbitrarias, agregarles varias capas y controlar cada una de ellas por separado.

Configure y ajuste la visibilidad, la presión, la temperatura, la humedad, la cobertura de nubes (con todos los tipos de nubes existentes compatibles), la precipitación, el viento y otros parámetros por capa, configure las posiciones de la región, el grosor, la altitud y las bandas de transición para las capas, etc.

La simulación mejorada de rayos ahora le permite generar tantos de ellos como necesite en las ubicaciones deseadas en tiempo de ejecución a través de API con la capacidad de suscribirse a devoluciones de llamada relacionadas.

Para obtener más información sobre la configuración del entorno en IG, siga este enlace.

Control conveniente a través de Unigine Editor

Se ha agregado un nuevo complemento IG Editor con un conjunto de ventanas que le permiten configurar parámetros geodésicos y de fecha y hora, así como controlar el clima directamente en el Unigine Editor de una manera conveniente. Hay mucho más que ahora puede ver y ajustar a través del Unigine Editor, desde la creación de regiones climáticas con lluvia y nieve hasta el cambio de los programas de luz estroboscópica de los aviones a través de curvas. Otras actualizaciones están en camino, estén atentos a los próximos lanzamientos.

Control conveniente a través de Unigine Editor
Control conveniente a través de Unigine Editor

C# API

La funcionalidad IG ahora también está disponible para desarrolladores de C#, con algunas discrepancias insignificantes. La aplicación de plantilla C# IG también está a su disposición, simplemente selecciónela al crear un nuevo proyecto en SDK Browser.

Se ha corregido el calentamiento de los sistemas de partículas en los esclavos, lo que garantiza un comportamiento constante de las partículas en todos los PC.

Se han corregido los bloqueos de Slave al cargar una base de datos a través del comando de consola en el maestro (sin una aplicación host).

Editor de plugins

Una tarea adicional típica para prácticamente cualquier software de simulación y entrenamiento (y en realidad también para juegos) que consume una buena parte del presupuesto de tiempo de desarrollo es la creación de herramientas: creadores de escenarios, editores de escenas, herramientas de colocación de contenido, etc…

Tener que escribir su propia implementación de Editor desde cero es difícil, costoso e ineficiente, especialmente cuando muchas cosas comunes ya están implementadas.

Editor de plugins en Unigine Engine 2.15
Editor de plugins en Unigine Engine 2.15

Continuamos simplificando las tareas

Continuamos nuestros esfuerzos para simplificar esta tarea y ayudarlo a reducir gastos, lo que le permite crear sus propias herramientas específicas de dominio para el contenido generado por el usuario basado en la funcionalidad de Unigine Editor. Esta versión le ofrece la primera parte de la nueva API pública conveniente que proporciona acceso a esta funcionalidad.

La creación de complementos de Editor se ha vuelto más fácil en 2.15 con la integración de SDK Browser y dos plantillas de proyecto(Engine GUI Window y Materials)que se pueden usar como base.

Para comenzar a desarrollar su primer complemento para Unigine Editor, simplemente marque la opción Plantilla de complemento del editor al crear un nuevo proyecto en el navegador SDK. Esto agregará todos los archivos necesarios y creará un proyecto separado para el complemento que puede compilar en su IDE y probar directamente en el Editor.

Plantilla de complemento del editor en Unigine Engine 2.15
Plantilla de complemento del editor en Unigine Engine 2.15

Algunos de nuestros proyectos en curso ya implementan extensiones de Editor utilizando el sistema de complementos y la API de Editor actual, incluido el complemento IG Editor (descrito anteriormente).

Para obtener más información sobre el desarrollo de complementos de editor personalizados, consulte la sección actualizada Ampliación de la funcionalidad del editor.

No todos los sistemas están cubiertos en este momento, pero planeamos extender la API С ++ para proporcionar acceso a todo lo disponible en el Editor y brindarle la versión lista para la producción en 2.16.

Demostraciones, complementos y ejemplos de Marte

Presentamos Mars: un nuevo proyecto de demostración en el que se recrea 1 millón de kilómetros cuadrados de la superficie de Marte (disponible solo en la edición Sim). ¡Puedes conducir el rover alrededor del planeta y ver el cráter Gale usando un soporte de alcance 20x!

Puede comparar una imagen real de la superficie de Marte obtenida por el rover Curiosity de la NASA y una captura de pantalla de la demostración de Marte (la misma ubicación), ambas dadas a continuación.

rover Curiosity de la NASA
rover Curiosity de la NASA

Esta demostración muestra las características del sistema Landscape Terrain. No hay mallas estáticas involucradas, solo un objeto de terreno.

Funciones en Unigine Engine 2.15

  • Hasta 20x alcances.
  • Rover rastrea como otra demostración de modificación en tiempo real de la superficie del terreno.
  • Los cráteres dinámicos(100 x 100 x 25 m) se pueden colocar en tiempo real en cualquier lugar.
  • La geometría y los detalles de textura más altos posibles (hasta 1 milímetro por píxel). Tamaño de área de 1000 x 1000 km.
  • 8 x 8 km de zona de alto detalle(0,25 m / densidad de máscara de píxeles, 1 mm / píxel para texturas 4K detalladas).

Nuevas muestras de materiales gráficos

Junto con el lanzamiento del nuevo Editor de material visual, hemos agregado un nuevo conjunto de muestras de gráficos de materiales al SDK que muestra el uso de gráficos de materiales para varios casos de uso. ¡Compruébalos, analiza y monta tus propios materiales increíbles!

Nuevas muestras de materiales gráficos
Nuevas muestras de materiales gráficos

Muestra actualizada de CraneRope

La muestra de crane rope se reescribió para usar un rope body con un conjunto de optimizaciones para estabilizar el comportamiento de la cuerda. Ahora puede usar masas del mundo real en kilogramos para que se levante la carga. Para su comodidad, se agregó un conjunto de controles:

  • Control deslizante de peso de carga.
  • Teclas del teclado para agarrar y soltar la carga.
  • Tecla de alternancia del visualizador de depuración.
  • Teclas de teclado de longitud de cuerda para agarrar y soltar la carga.
Muestra actualizada de CraneRope
Muestra actualizada de CraneRope

Ejemplo de rastreador en Unigine Engine 2.15

Se agregó una nueva muestra que demuestra cómo usar Tracker para animar objetos (cambiar su posición, rotación y escala) a través de archivos de seguimiento a las muestras de C++ y a las muestras de C#,,junto con los contenedores de C++ y C# para la funcionalidad de Tracker.

Nuevas muestras de agua

Se agregó un paquete de nuevas muestras de Water Global a la suite de muestras de C++ que demuestra cómo controlar Global Water a través de API:

  • Simular las ondas de estela del barco a través de calcomanías ortográficas y nodos de campo de altura
  • Cambiar el espectro de ondas del Agua Global (número de octavas, número de ondas por octava y varios otros parámetros para la generación de ondas aleatorias).
  • Cambiar los niveles de Beaufort y el uso de la búsqueda del nivel del agua en un cierto punto para simplificar la simulación de la flotabilidad sin involucrar a la Física.
Nuevas muestras de agua
Nuevas muestras de agua

Complemento de vegetación en Unigine Engine 2.15

El complemento Vegetación se amplió nuevamente con un conjunto de pequeñas plantas y un nuevo pino haciendo que el recuento total de especies de vegetación en el complemento alcance los 50 tipos, la mayoría de ellos ofreciéndole de 2 a 20 variaciones. Se agregaron las siguientes plantas:

  • Bejuco.
  • Banano.
  • Cocotero.
  • Shorea (Árbol Damar).
  • Hiedra (2 variaciones).
  • Pino (variación adicional).
  • Plantas pequeñas (4 variaciones).
  • Helecho (variaciones adicionales).
  • Árboles pequeños (rambután y hevea).
  • Pequeño árbol de mango (2 variaciones).
  • Árbol de aceite de palma (2 variaciones).

Documentación en Unigine Engine 2.15

Se ha añadido un nuevo video tutorial sobre nubes volumétricas

Se agregó un conjunto de nuevos videos de consejos rápidos de HowTo ultracortos en inglés, chino y ruso:

Hemos hecho esfuerzos para resolver problemas con la indexación de versiones antiguas de la documentación por parte de los motores de búsqueda populares con el fin de eliminar la información obsoleta de los resultados de búsqueda.

La versión de lanzamiento estable actual de los documentos ahora siempre se puede encontrar en https://developer.unigine.com/en/docs/latest (el número de versión se muestra en el selector de versión en la parte superior de la página).

Las versiones antiguas están disponibles a través de sus números como antes.

Complemento round earth geo

El complemento de tiempo de ejecución está diseñado para implementar la transmisión en línea de porciones del terreno basadas en la posición de la cámara transformada en geo-coordenadas. Dependiendo de la distancia de la superficie, los datos son más o menos detallados. El plugin estará disponible como parte de una compilación experimental lanzada junto con 2.15.

Nueva GUI en la aplicación en Unigine Engine 2.15

La implementación actual de GUI tiene una serie de puntos débiles y limitaciones. Un nuevo sistema GUI implementado utilizando el enfoque basado en componentes reemplazará al actual y será mucho más flexible y fácil de usar.

Transformación y escalado de widgets simplificados, pruebas de intersección mejoradas con control flexible avanzado, hojas de estilo, mejor diseño basado en componentes (horizontal, vertical, cuadrícula o panel), componentes visuales y lógicos para widgets para una personalización avanzada que se adapte a las necesidades de cualquier proyecto.

Desde el lanzamiento de una compilación experimental a mediados de septiembre, hemos realizado algunos cambios aquí.

Lo más importante es que SDL ahora se ejecuta en un subproceso separado y no puede provocar el bloqueo del subproceso del motor. Esto significa arrastrar y acoplar ventanas junto con cambiar sus tamaños sin afectar la actualización de la lógica.

Otra cosa que se hace es el soporte completo para OpenGL y Linux. Ahora está disponible una personalización de ventana aún más extendida (solo para los widgets del motor en este momento), incluidos los tamaños del título y los bordes de la ventana, elementos de usuario personalizados adicionales en los títulos de las ventanas.

Se pueden cambiar muchas cosas para ventanas y grupos, desde iconos hasta títulos de ventanas y colores de fondo. La ventana principal también se ha vuelto acoplable. Y se ha implementado la capacidad de controlar los tamaños de todos los grupos anidados y ventanas a través de la API.

Continuamos trabajando duro para traerle esta emocionante actualización de GUI en 2.16.

Renderizado fuera de pantalla en Unigine Engine 2.15

Continuamos nuestros esfuerzos en la implementación del modo de renderizado fuera de pantalla, lo que hace posible ejecutar Unigine Engine en una nube y utilizar servidores potentes, por ejemplo, para generar conjuntos de datos fotorrealistas para el aprendizaje profundo y la verificación de algoritmos de IA para UAV, automoción y otras industrias.

Parte del trabajo está hecho en este momento, y lo que puede ver a continuación es una demostración de imágenes generadas por el motor en modo sin cabeza y mostradas a través de un navegador web.

DirectX 12, Vulkan y consolas

Ya tenemos una versión DirectX 12 del motor que funciona como una rama interna. El rendimiento es comparable o más alto que en DirectX 11, y seguimos presionando para ello. Primero probamos esta versión con proyectos internos, a finales del próximo año estará disponible como versión de producción para todos los clientes.

El motor también se está portando a consolas de juegos. La Xbox Series X parece casi completa, la versión de PlayStation 5 está en las primeras etapas.

La versión de Vulkan también se considera para las próximas versiones, utilizando el progreso actual con las API gráficas de bajo nivel.

Tienes más información y comentarios sobre Unigine en el foro, sigue leyendo…