Version: 2017.2
Reflection Probe
Detalles del Rendering Pipeline

LOD Group

A medida que sus escenas se hacen más grandes, el rendimiento se convierte en una consideración más grande. Una de las maneras de manejar esto es tener meshes con diferentes niveles de detalle dependiendo de cuán lejos esté la cámara del objeto. Esto se llama Level of Detail (abreviado como LOD).

Los LOD Groups se utilizan para manejar level of detail (LOD) para GameObjects. El nivel de detalle es una técnica de optimización que utiliza varios meshes para un objeto; Los meshes representan el mismo objeto con detalles decrecientes en la geometría. La idea es que los meshes de bajo detalle se muestran cuando el objeto está lejos de la cámara y la diferencia no se notará. Dado que los meshes con una geometría más sencilla son menos exigentes en el hardware, el rendimiento se puede mejorar utilizando LOD juiciosamente.

LOD Group inspector
LOD Group inspector

Propiedades

Los diferentes niveles de LOD son visibles en la barra horizontal con el icono de la cámara justo encima de él (LOD: 0, LOD: 1, LOD: 2, etc). Los porcentajes en las barras LOD representan la fracción de la altura de la caja delimitadora con respecto a la altura de la pantalla cuando ese nivel LOD se activa. Puede cambiar los valores porcentuales arrastrando las líneas verticales que separan las barras. También puede añadir y eliminar niveles LOD de la barra haciendo clic con el botón derecho del ratón y seleccionando Insert Before o Delete en el menú de contexto. La posición del icono de la cámara a lo largo de la barra muestra el porcentaje actual. Los porcentajes en las barras LOD representan los umbrales a los que el nivel LOD correspondiente se activa, medido por la relación entre la altura del espacio de pantalla del objeto y la altura de la pantalla. Tenga en cuenta que si el LOD Bias no es 1, la posición de la cámara no es necesariamente la posición real donde LOD transita de uno a otro.

Al hacer clic en una de las barras LOD para seleccionarla, aparecerá un panel Renderers debajo. Los “renderers” son en realidad GameObjects que sostienen el mesh para representar el nivel LOD; Normalmente, éste sería un hijo del objeto que tiene el componente LODGroup. Si hace clic en un cuadro vacío (con la palabra “Add”) en el panel Renderers, aparecerá un navegador de objetos que le permitirá elegir el objeto para ese nivel LOD. Aunque se puede elegir cualquier objeto para el renderer, se le preguntará si desea que sea el padre del grupo GameObject de LODGroup si aún no es un hijo.

Desde Unity 5, puede elegir Fade Mode para cada nivel LOD. El desvanecimiento se utiliza para “mezclar” dos LODs vecinos para lograr un efecto de transición suave. Sin embargo, Unity no proporciona una técnica integrada por defecto para mezclar geometrías LOD. Es necesario implementar su propia técnica de acuerdo a su tipo de juego y pipeline de producción de assets. Unity calcula un “blend factor” desde el tamaño de la pantalla del objeto y lo pasa a su shader.

Hay dos modos para calcular el blend factor (factor de mezcla):

  • Percentage (porcentaje): A medida que la altura de la pantalla del objeto va desde el porcentaje de altura LOD actual hasta el siguiente, el factor de mezcla pasa de 1 a 0. Sólo se renderizarán los meshes del LOD actual.
  • Cross-fade: Es necesario especificar un valor de ancho de transición para definir una zona de fading cruzada al final del LOD actual donde se va a transitar al LOD siguiente. En la zona de transición, se mostrarán los dos niveles LOD. El blend factor va de 1 a 0 para el LOD actual y de 0 a 1 para el LOD siguiente.

El blend factor se accede como la variable unity_LODFade.x uniform en su programa shader. Se seleccionará la palabra clave LOD_FADE_PERCENTAGE oLOD_FADE_CROSSFADE para los objetos renderizados con atenuación LOD.

Para más detalles acerca de convenciones de nombre mire la página de Level of detail.

Observe el ejemplo de los árboles de SpeedTree para ver cómo está configurado el LODGroup y cómo el shader de SpeedTree utiliza la variable unity_LODFade.

En la parte inferior del inspector hay dos botones Recalculate. El botón Bounds recalculará el volumen delimitador del objeto después de que se agregue un nuevo nivel LOD. El botón Lightmap Scale actualiza la propiedad Scale in Lightmap en los mapas de luz basados en límites de nivel LOD modificados.

Reflection Probe
Detalles del Rendering Pipeline