Global Illumination UVs
Generating Lightmap UVs

Importando UVs desde Maya a Unity

Maya es un software de animación por computadora en 3D de Autodesk, con potentes herramientas de modelado, rendering, simulación, texturizado y animación para artistas de efectos visuales, modeladores y animadores (mirar www.autodesk.co.uk). A menudo es utilizado por los desarrolladores de Unity para el trabajo de gráficos avanzados, que luego se importa a Unity. Es importante tener en cuenta que, al importar desde Maya, es posible que los UV no se vean exactamente iguales, incluso si desactivas la casilla de verificación Optimize Realtime UVs. Esta sección explica por qué.

Debido a que Enlighten empaqueta los UV en tiempo real, es muy importante comprender cómo se detectan los gráficos UV. Por defecto, un gráfico está definido por un conjunto de vértices conectados. Sin embargo, el importador de DCC o Unity Mesh podría introducir vértices adicionales en lugares donde Mesh tiene bordes duros. Estos vértices duplicados crean islas adicionales (grupos no conectados) en sus UV. Sin embargo, estos cortes normalmente pasan desapercibidos cuando se bake el lightmap (mapa de luz), porque los UV se usan directamente y no se vuelven a re-empaquetar. La imagen a continuación muestra un ejemplo de esto.

UVs en Maya
UVs en Maya

Un alto ángulo de suavizado no preserva los cortes duros en el modelo, y tanto el sombreado como el GI se ven diferentes como resultado.

Los ajustes del Mesh Importer que se relacionan a esto son Normals, Tangents, y Smoothing Angles:

Si usted configura Normals a Calculate, unos descansos se crean cuando un ángulo entre triángulos adyacentes excede el valor Smoothing Angle.

Para evitar esto, puede elegir autorizar e importar normales (consulte la documentación sobre Mapas normales para obtener más información sobre las superficies normales). Para obtener buenos resultados con las normales importadas, debe realizar los cortes a mano a lo largo de los bordes duros, y prestar atención a cómo el DCC está insertando vértices duplicados. De lo contrario, tanto el GI como el sombreado regular pueden tener efectos de iluminación no deseados.

Ejemplo

Al empacar con unos 40 grados Smoothing Angle, los ángulos duros en el modelo se conservan, y los gráficos adicionales se crean:

Fuente del Asset: Lee Perry Smith, VizArtOnline
Fuente del Asset: Lee Perry Smith, VizArtOnline

Si el Smoothing Angle se establece en 180 grados, no se realizan cortes, y los UV son los mismos que en Maya. La única diferencia es el empaque del gráfico:

Fuente Asset: Lee Perry Smith, VizArtOnline
Fuente Asset: Lee Perry Smith, VizArtOnline

Optimizando UVs en tiempo real

El contiene Mesh Renderer una opción llamada Optimize Realtime UVs.

Optimize Realtime UVs habilita la función de optimización UV de Enlighten. Tenga en cuenta que deshabilitar esta opción no permite que los UV generados fluyan directamente a Enlighten; re-empacar aún se aplica.

La función está intencionada a optimizar la creación de gráficos solo para GI en tiempo real. No afecta los rayos UV baked. Su propósito es simplificar el desenvolvimiento de UV, lo que reduce la cantidad de gráficos (y por lo tanto la cantidad de texels). Esto hace que la iluminación sea más uniforme en todo el modelo, hace que la distribución de téxel sea más pareja y evita gastar texels en pequeños detalles. El tiempo necesario para realizar la fase de precomputación es proporcional a la cantidad de texels que de. Por ejemplo, un piso de mosaico detallado con gráficos separados para cada mosaico ocupa un número innecesariamente alto de texels, pero unirlos en un solo gráfico da como resultado mucho menos texels. Esto funciona porque los lightmaps en tiempo real solo almacenan iluminación indirecta (lo que significa que no hay sombras directas definidas).

Este proceso no puede alterar el número de vértices en el modelo, por lo que no puede introducir interrupciones en los UV donde ya hay uno presente. Esto significa que el diseño del gráfico resultante es el mismo, pero algunos de los gráficos pueden superponerse o combinarse en áreas donde es poco probable que tenga un efecto negativo en la iluminación indirecta.

Utilice los ajustes para definir cuando los gráficos se unen.

  • Max Distance: Los gráficos se simplifican si la distancia del espacio mundial entre los gráficos es menor que este valor. *Max Angle: Los gráficos se unen si el ángulo entre los gráficos es menor que este valor.

Estas configuraciones están destinadas a evitar la fusión de gráficos cuando están muy alejados o apuntando en direcciones generalmente diferentes.

Optimizando UVs de tiempo real: Ejemplo

El siguiente ejemplo utiliza el asset Desert Ruins de la Asset Store:

Fuente Asset: DEXSOFT-Games
Fuente Asset: DEXSOFT-Games

Utiliza parámetros predeterminados y la resolución del lightmap en tiempo real es de 1 texel por unidad. El modelo tiene aproximadamente 9 unidades de longitud. La imagen a continuación muestra los rayos UV en tiempo real generados para este modelo usando la función Auto UV:

Tenga en cuenta que las tejas en el suelo se han empaquetado en un solo gráfico, con una resolución adecuada para la densidad de texel elegida y el tamaño de la instancia:

Cuando se empaque sin la característica Auto UV, los UVs generados se ven así:

Esto genera una gran cantidad de gráficos pequeños, porque los gráficos se dividen en los UV generados por el modelo. Como Auto UVs no está habilitado, ninguno de estos gráficos se puede fusionar, y cada isla de ultramar recibe un bloque de 4x4 píxeles independientemente de su tamaño. La imagen a continuación muestra una subsección de los UV:

Los lados de la pared aún obtienen una resolución sensata de 10x4 texels, pero los pequeños azulejos obtienen un desproporcionado 4x4 texels cada uno. La razón por la que el tamaño mínimo del gráfico es 4x4 es que queremos poder unir contra el gráfico en los 4 lados y aún así obtener un gradiente de iluminación en todo el gráfico.

Optimizaciones adicionales de los gráficos

Hay dos opciones adicionales para optimizar aún más el trazado del diseño UV:

  • Ignore Normals
  • Min Chart Size

Ignore Normals

Marque la casilla de verificación Ignore Normals para mantener juntas las gráficas que tienen vértices duplicados debido a roturas normales duras. Se puede producir una división de gráfico en Enlighten cuando la posición del vértice y los rayos UV del vértice son iguales, pero las normales son diferentes. Para pequeños detalles, los gráficos 4x4 de texel para representar la iluminación indirecta son demasiados, y afectan el rendimiento del precomputado y el horneado. En estos casos, habilite Ignore Normals.

Ejemplo

En el siguiente ejemplo, Optimize Realtime UVs está desactivadoo, para demostrar el efecto de Ignore Normals en aislación.

Fuente Asset: Lee Perry Smith, VizArtOnline
Fuente Asset: Lee Perry Smith, VizArtOnline

La imagen de la izquierda muestra el resultado sin Ignore Normals habilitado. La imagen de la derecha muestra el resultado con Ignore Normals habilitado.

Cuando Ignore Normals esté habilitado, el desenrollado Enlighten de 24x24 se reduce a un desenvuelto de 16x16 para este modelo.

Min Chart Size

Min Chart Size elimina la restricción de tener un tamaño de gráfico mínimo de 4x4. Las costura no siempre funcionan bien, pero para pequeños detalles generalmente es aceptable.

Ejemplo

En este ejemplo, Min Chart Size es configurado a 2 (Minimum).

Si tuviera que aplicar esta opción Min Chart Size y Ignore Normals al modelo anterior, lo desulueto se reduce a 10x10.

Obtener los bordes del gráfico para suturar en tiempo real GI

Los lightmaps que están configurados en Realtime soportan la costura del gráfico. La costura del gráfico asegura que la iluminación en los téxeles adyacentes en diferentes gráficos sea consistente. Esto es útil para evitar costuras visibles a lo largo de los límites del gráfico. En tamaños grandes de téxel, la iluminación a cada lado de una costura puede ser bastante diferente. Esta diferencia no se suaviza automáticamente mediante el filtrado, ya que los téxeles no son adyacentes.

En este ejemplo, una costura es visible en la esfera de la derecha, incluso cuando está texturizada, porque no se ha cosido:

Stitching is on by default. If you think it is causing some unwanted issues, you can disable it; Apply Lightmap Parameters to the instance in question and untick the Edge Stitching checkbox.

Para que los gráficos se unan sin problemas, los bordes deben cumplir los siguientes criterios:

  • Preserve UVs debe estar habilitado para que los gráficos no sean simplificados por la característica Auto UV..
  • Los gráficos deben estar en el mismo Mesh.
  • Los bordes deben compartir vértices.
  • Los bordes deben ser horizontales o verticales en el espacio UV.
  • Los bordes deben tener el mismo número de texels (esto generalmente se sigue de los dos criterios anteriores).

Así es como se crea la esfera, la cápsula y el cilindro integrados de Unity. Observe cómo se alinean los gráficos:


  • 2017–07–04 Page published with limited editorial review

  • 2017–07–04 Documentation update only, no change to Unity functionality

Global Illumination UVs
Generating Lightmap UVs