Lumberyard
Guía del usuario (Version 1.17)

Exportación de PxMesh para PhysX Mesh Shape (Forma de malla de PhysX)

Para usar el componente PhysX Mesh Shape, necesita un archivo .pxmesh para definir la geometría de colisión de la entidad. Puede crear este archivo a partir de un archivo FBX con al menos una malla. el sistema PhysX de Lumberyard puede exportar una malla como una malla triangular o una malla convexa. El valor predeterminado se establece en malla triangular, que solo puede usar en objetos estáticos. El siguiente procedimiento le muestra cómo exportar su malla con diversos valores de configuración.

Para exportar un archivo .pxmesh

  1. En su sistema de archivos, busque el archivo FBX con la malla que desee exportar. Los artistas suelen crear estos archivos FBX con herramientas de DCC.

    
                        Archivo FBX en el sistema operativo
  2. Coloque el archivo FBX en el directorio de activos de su proyecto. Por ejemplo, lumberyard_version\dev\StarterGame\Objects. Si el editor de Lumberyard no está abierto, láncelo.

    El Asset Processor de Lumberyard detecta y procesa de forma automática el nuevo archivo FBX.

  3. En el Asset Browser, navegue al archivo FBX. Haga clic con el botón derecho y elija Edit Settings (Editar configuración) para abrir la ventana Configuración de FBX.

    
                        Haga clic con el botón derecho del ratón en el archivo FBX y elija Edit Settings (Editar configuración)
  4. Para configurar los parámetros de exportación de malla de PhysX:

    1. Seleccione la pestaña PhysX (1).

    2. Si este archivo .pxmesh es para un objeto dinámico, debe seleccionar Export Mesh As Convex (Exportar malla como convexa) (2). Si el archivo es para un objeto estático, la selección de este parámetro es opcional.

      Cuando está habilitado, este parámetro exporta la malla como malla convexa. De lo contrario, la malla se exporta como malla triangular.

    3. En el cuadro Select meshes (Seleccionar mallas) (3), debe seleccionarse al menos una malla. Si no se ha seleccionado ninguna malla, haga clic en Select meshes (Seleccionar mallas) (4).

    4. Seleccione una o varias mallas (5). Haga clic en Select.

    5. Haga clic en Update (Actualizar).

      
                                Editar parámetros en el Configuración de FBX para exportar una malla como archivo .pxmesh
    6. Una vez que el Asset Processor termine de procesar la malla actualizada, haga clic en OK (Aceptar).

    7. Cierre la ventana del Configuración de FBX.

    Para obtener más información acerca de los parámetros en esta ventana, consulte Parámetros de exportación de PxMesh.

    nota

    Haga clic en Discard (Descartar) si aparece el mensaje siguiente: "Tiene cambios sin guardar. ¿Desea descartar esos cambios?".

  5. PhysX Collision Mesh (Malla de colisión de PhysX) (archivo .pxmesh) aparece en el Asset Browser.

    
                        Editar parámetros en el Configuración de FBX para exportar una malla como archivo .pxmesh

    Ahora puede usar este archivo .pxmesh en los siguientes procedimientos:

Exportación automática de PxMesh para objetos estáticos

Puede establecer un nodo de malla en un archivo FBX que se va a exportar de forma automática como malla triangular de PhysX para objetos de PhysX estáticos. Para ello, anexe _phys al final de un nombre de nodo de malla. A continuación, al colocar el archivo FBX en el directorio de recursos de su proyecto, el Asset Processor crea automáticamente el archivo .pxmesh con una malla triangular. El archivo .pxmesh o PhysX Collision Mesh (Malla de colisión de PhysX) aparece en el Asset Browser sin medidas adicionales.

Si desea exportar una malla convexa para usarla con un objeto de PhysX dinámico, debe hacerlo de forma manual mediante el Configuración de FBX.

Parámetros de exportación de PxMesh

Al exportar un.pxmesh archivo desde un nodo de malla a un archivo FBX, puede usar el cuadro de diálogo del Configuración de FBX. En este cuadro de diálogo, puede exportar su archivo .pxmesh como malla triangular o malla convexa. Las mallas triangulares se pueden usar solo para objetos de PhysX estáticos. Las mallas convexas se pueden usar para objetos de PhysX estáticos y dinámicos.

Use los parámetros de exportación de malla de PhysX para configurar y afinar la salida que genera la preparación de PhysX posteriormente en su juego.

En el siguiente ejemplo se muestran los parámetros predeterminados para exportar una malla triangular. Estos parámetros aparecen cuando Export Mesh As Convex (Exportar malla como convexa) no está seleccionado.


                    Parámetros de exportación de malla triangular solo para objetos estáticos

En el siguiente ejemplo se muestran los parámetros predeterminados para exportar una malla convexa. Estos parámetros aparecen cuando Export Mesh As Convex (Exportar malla como convexa) está seleccionado.


                    Parámetros de exportación de malla convexa solo para objetos estáticos o dinámicos

Las opciones de exportación de malla triangular y convexa comparten los parámetros siguientes. Sus parámetros únicos se describen en Parámetros de exportación de malla triangular y Parámetros de exportación de malla convexa.

Parámetros de exportación de PxMesh compartidos

Parámetro Descripción
Name PhysX Mesh (Nombre de malla de PhysX) Escriba un nombre para la malla de PhysX. Este nombre aparece en el Asset Browser. Puede especificar hasta 40 caracteres para el nombre.
Export Mesh As Convex (Exportar malla como convexa) Al establecerse, indica al proceso de preparación que cree esta malla como convexa. Obligatorio para los objetos dinámicos, pero opcional para los objetos estáticos.
Build GPU Data (Compilar datos de la GPU) Al establecerse, crea información adicional necesaria para la simulación de cuerpo rígido acelerada por GPU. Esto puede aumentar el uso de la memoria y el tiempo de preparación de las mallas convexas y triangulares. Los cascos convexos se crean con respecto a las limitaciones de simulación de la GPU. El límite de vértices se establece en 64 y el límite de vértices por cada cara se establece de forma interna en 32.
Select meshes (Seleccionar mallas) Seleccione las mallas que se van a incluir en el grupo de mallas.

Parámetros de exportación de malla triangular


                        Parámetros de exportación de malla triangular solo para objetos estáticos

Además de los parámetros compartidos, el proceso de exportación de malla triangular expone los siguientes parámetros.

Parámetros de exportación de PxMesh triangular

Parámetro Descripción
Weld Vertices (Vértices de soldadura) Al establecerse, se realiza la soldadura de malla. Es necesaria una malla limpia; Disable Clean Mesh (Deshabilitar malla limpia) no debe seleccionarse.
Disable Clean Mesh (Deshabilitar malla limpia) Al establecerse, se deshabilita la limpieza de malla. Esto acelera la preparación. Si no se realiza la limpieza de malla, tampoco se realiza la soldadura de malla.
Force 32-Bit Indices (Forzar índices de 32 bits) Al establecerse, los índices de 32 bits siempre se crean independientemente del recuento de triángulos.
Suppress Triangle Mesh Remap Table (Suprimir tabla de reasignación de malla triangular) Al establecerse, no se crea la tabla de reasignación de cara. De este modo se ahorra una cantidad de memoria significativa, pero el SDK no puede proporcionar la información de reasignación para los triángulos de malla internos devueltos por colisiones, barridos o impactos de raycasts.
Build Triangle Adjacencies (Crear adyacencias de triángulos) Al establecerse, se crea la información acerca de las adyacencias de triángulos. Puede obtener los triángulos de adyacencia para un triángulo especificado de getTriangle.
Mesh Weld Tolerance (Tolerancia de soldadura de malla)

Si la soldadura de malla está habilitada, este valor controla la distancia a la que se sueldan los vértices.

Si la soldadura de malla no está habilitada, este valor define la distancia de aceptación de la validación de malla.

Si ninguno de los dos vértices se encuentran a esta distancia, se considera que la malla está limpia. De lo contrario, se emite una advertencia. Idealmente, desea tener una malla soldada y limpia para lograr el mejor desempeño posible.

La soldadura de vértices predeterminada usa un enfoque de ajuste a la cuadrícula. Este enfoque trunca cada vértice de forma eficaz según valores enteros mediante Mesh Weld Tolerance (Tolerancia de soldadura de malla). Una vez que se producen estos vértices ajustados, todos los vértices que se ajustan a un vértice especificado en la cuadrícula se reasignan para hacer referencia a un solo vértice. A continuación, todos los índices de triángulos se reasignan para hacer referencia a este subconjunto de vértices limpios. Con relación a los vértices, cabe destacar que no modificamos la posición de estos; el ajuste a la cuadrícula solo se realiza para identificar vértices cercanos. El enfoque de validación de malla también usa el mismo enfoque de ajuste a la cuadrícula para identificar vértices cercanos. Si varios vértices se ajustan a una coordenada de cuadrícula especificada, nos aseguramos de que la distancia entre los vértices sea de al menos meshWeldTolerance. Si no es el caso, se emite una advertencia.
Number of Triangles Per Leaf (Número de triángulos por hoja) Sugerencia de preparación de malla para número máximo de triángulos por límite de hoja. Un menor número de triángulos por hoja produce mallas más grandes con mejor rendimiento en el tiempo de ejecución, pero un menor rendimiento de preparación. Más triángulos por hoja dan lugar a una mayor velocidad de preparación y unos tamaños de malla inferiores, pero con un menor desempeño en el tiempo de ejecución.

Parámetros de exportación de malla convexa


                        Parámetros de exportación de malla convexa solo para objetos estáticos o dinámicos

Además de los parámetros compartidos, el proceso de exportación de malla convexa expone los siguientes parámetros.

Parámetros de exportación de PxMesh convexa

Parámetros Descripción
Area Test Epsilon (Épsilon de prueba de área) Si el área de un triángulo del casco está por debajo de este valor, se rechaza el triángulo. Esta prueba solo se realiza si se establece Check Zero Area Triangles (Comprobar triángulos llanos).
Plane Tolerance (Tolerancia de plano) Este valor se usa durante la construcción del casco. Cuando se añade un nuevo punto al casco, queda descartado cuando el punto está más cerca del casco que el valor Plane Tolerance (Tolerancia de plano). El valor Plane Tolerance (Tolerancia de plano) se aumenta según el tamaño del casco. Si se establece 0.0, se aceptan todos los puntos al crearse el casco convexo. Esto puede dar lugar a casos de límites donde es posible que los nuevos puntos se combinen en un polígono existente y la ecuación de plano de polígonos podría cambiar ligeramente. Esto puede dar lugar a errores durante la fase de combinación de polígonos en el cómputo del casco. Se recomienda usar el valor predeterminado; sin embargo, si es necesario que todos los puntos se acepten o se crean convexos finos de gran tamaño, es posible que se requiera una reducción del valor predeterminado.
Use 16-bit Indices (Usar índices de 16 bits) Si se establece, usa índices de vértice de 16 bits en PxConvexMeshDesc::triangles o PxConvexMeshDesc::polygons. De lo contrario, se usan índices de vértice de 32 bits.
Check Zero Area Triangles (Comprobar triángulos llanos) Comprueba y quita triángulos que son casi llanos durante el cómputo del casco convexo. El tamaño del área rechazada se especifica en PxCookingParams::areaTestEpsilon.
Quantize Input (Cuantificar entrada) Cuantifica los vértices de entrada mediante la agrupación en clústeres k-means.
Use Plane Shifting (Usar cambio de plano) Habilita el algoritmo de límite de vértices de cambio de plano. El cambio de plano es un algoritmo alternativo en los casos en los que el casco computado tiene más vértices que el límite de vértices especificado. El algoritmo predeterminado computa todo el casco y un OBB en torno a los vértices de entrada. A continuación, este OBB se corta con los planos del casco hasta que se alcanza el límite de vértices. El algoritmo predeterminado requiere que el límite de vértices se establezca en al menos 8 y, normalmente, produce resultados cuya calidad es mayor que la del que se produce al cambiar el plano. Cuando Use Plane Shifting (Usar cambio de plano) está habilitado, el cómputo del casco se detiene al alcanzarse el límite de vértices. A continuación, los planos del casco se cambian para incluir todos los vértices de entrada, usándose entonces los nuevos puntos de intersección del plano para generar el casco final con el límite de vértices especificado. El cambio de plano puede producir bordes afilados en vértices que están muy lejos de la nube de entrada y no garantiza que todos los vértices de entrada estén dentro del casco resultante. Sin embargo, se puede usar con un límite de vértices tan bajo como 4.
Shift Vertices (Cambiar vértices) Los vértices de entrada del casco convexo se cambian para estar en torno al origen a fin de proporcionar una mejor estabilidad de cómputo. Se recomienda proporcionar vértices de entrada en torno al origen; de lo contrario, use este parámetro para mejorar la estabilidad numérica.
Gauss Map Limit (Límite de mapa de Gauss) Límite de vértices por encima del cual se computan estructuras de aceleración adicionales para cada malla convexa. Aumente el límite para reducir el uso de la memoria. El cómputo de las estructuras adicionales no garantiza un desempeño óptimo. Hay un punto de equilibrio financiero por plataforma por debajo del cual las estructuras adicionales pueden realmente afectar al rendimiento.