Red de conocimiento informático - Problemas con los teléfonos móviles - Un breve análisis de la solución de fragmentación UEChaos

Un breve análisis de la solución de fragmentación UEChaos

Chaos es una nueva generación de motor de física desarrollado por UE, con el objetivo principal de proporcionar soluciones aplastantes en tiempo real para cine y televisión. Sin embargo, el objetivo final de Chaos no es solo este: lo que finalmente espera ofrecer es un conjunto completo. de simulaciones de fluidos y simulaciones de muñecos de trapo, todas las propiedades físicas convencionales, incluida la simulación de telas, y lo que actualmente se está demostrando y desarrollando es una solución rodante de alto nivel, que también es el tema de nuestro discurso.

UE reemplazó los componentes físicos originales de Physx para lograr un gran avance. Entonces, ¿cuáles son las ventajas de Chaos en comparación con Physx?

En pocas palabras, sus ventajas se pueden resumir en cuatro aspectos:

De los vídeos promocionales anteriores de UE, podemos ver su avance en rendimiento.

Epic también te mostrará cómo interactúa el Caos con el juego en GDC2019:

A continuación se muestra cómo se implementa el Caos, dividido en cinco partes.

El primero es Geometry Collection. ¿Qué es Geometry Collection? Este es un nuevo activo agregado por UE para la fragmentación física. Consta de uno o más StaticMesh y se utiliza para representar objetos que deben fragmentarse. En Geometry Collection, todo StaticMesh que disfruta de un material se dibujará en dos DrawCalls, uno para dibujar la superficie exterior del objeto roto y otro para dibujar la superficie interior del objeto roto.

La implementación de la fragmentación del caos comienza con la segmentación de colecciones geométricas, como se muestra en la siguiente figura.

UE proporciona una variedad de modos de segmentación, incluida la segmentación estándar de Voronoi, la segmentación radial, etc. ., que puede recurrirse según sea necesario, como se muestra a continuación

Normalmente subdividimos una colección de geometrías en partes más pequeñas. Se fragmentan piezas de gran tamaño hasta que el esquema de compartimentación se adapta a nuestras necesidades.

Para cada fragmento, lo clasificaremos en un Clúster, y los Clústeres se pueden conectar en cascada, por lo que todos los Clústeres de la colección de geometría formarán un árbol con diferentes niveles de granularidad, como se muestra a continuación:

En la fase de edición

En la fase de edición, podemos especificar el nivel de fragmentación del objeto. La siguiente animación muestra el efecto de diferentes niveles de fragmentación.

No estamos limitados a romper todos los grupos al mismo nivel. De hecho, podemos establecer la fuerza de ruptura de cada grupo. Al establecer diferentes fuerzas para diferentes grupos, podemos obtener un efecto de ruptura más aleatorio. , podríamos establecer la fuerza de aplastamiento en 1 para los racimos más gruesos y 1 para los racimos más finos. Por ejemplo, podemos establecer la fuerza de aplastamiento del grupo más grueso en 1 y la fuerza de aplastamiento del grupo más fino en 10, de modo que cuando la fuerza aumente gradualmente, el tamaño de las partículas rotas se hará cada vez más pequeño, obteniendo así una mejor calidad real. sensación de aplastamiento, por supuesto, en aplicaciones prácticas, para que el rendimiento de aplastamiento sea más natural, generalmente establecemos una fuerza de aplastamiento más aleatoria para diferentes grupos, en lugar de establecer la fuerza de aplastamiento de manera tan uniforme.

Ahora podemos ver la interfaz gráfica de usuario en el PC.

Ahora que hemos hablado de fragmentación, ¿cómo funciona la fragmentación? Esto presenta el gráfico de conexión, que es un gráfico compuesto por líneas de conexión entre múltiples grupos (los grupos sin hojas, los grupos de hojas se refieren a múltiples fragmentos), como se muestra en la figura de la izquierda, donde cada nodo corresponde a un grupo y cada uno Un borde representa un grupo. En este gráfico, cada nodo corresponde a un grupo y cada borde representa la fuerza de la conexión entre un grupo y los grupos adyacentes. Cuando la fuerza excede un cierto umbral, los bordes se desconectan, y cuando todos los bordes de un grupo están desconectados, la siguiente trayectoria del grupo se calcula en función de la fuerza, completando así el efecto de fragmentación.

La figura anterior muestra el gráfico de conexión de los clústeres más gruesos. Cada clúster debe tener un gráfico de subconexión correspondiente para lograr una granularidad más fina.

Los diagramas de conexión nos dan las conexiones entre fragmentos, pero ¿cómo especificamos la fuerza de las conexiones entre fragmentos y cuánto se rompe un objeto al chocar con algo como una bala? Todo depende del "campo" del que hablamos al final.

Un "campo" es un "cuerpo" con una forma específica que puede ejercer efectos sobre los "grupos" dentro de su cobertura, como especificar la fuerza de las conexiones en un "diagrama de conexión" o ejercer fuerzas radiales destructivas dentro del "cuerpo". La fuerza destructiva disminuye con la distancia desde el punto central. Por ejemplo, si aplica una fuerza destructiva radial dentro de un volumen que disminuye con la distancia desde el punto central, si conecta este campo a una bala de cañón, puede lograr el efecto de salpicadura de escombros. en todas las direcciones.

Hay muchos tipos de campos, los siguientes son los más comunes:

La sección anterior introdujo el proceso de realización del caos, que se describirá brevemente a continuación. Presentamos cómo Chaos mantiene velocidades de fotogramas en tiempo real en rangos de escombros tan grandes | GDC 2019 | Unreal Engine

[2] Descripción general de Chaos Destruction

[3] Cómo calificar la física de Chaos. y sistema de destrucción en la versión 4.23 del motor

[4] Física del caos en Unreal Engine 5

[5] Descripción general de la física de marcadores asíncronos