Optimización del rendimiento de la unidad de eliminación de oclusiones

1. Breve descripción del sacrificio por oclusión

Función: La función de eliminación selectiva de oclusión puede reducir el número de objetos a renderizar, reduciendo así el tiempo de renderizado por fotograma.

Principio: Evite renderizar objetos que son invisibles porque están completamente bloqueados por otros objetos.

2. Introducción al uso de la función de eliminación de oclusiones de Unity

Unity también admite la eliminación selectiva por oclusión de objetos dinámicos. Pero el resto de este artículo solo se centra en las características de eliminación de oclusión de los objetos estáticos.

Para utilizar la función de eliminación selectiva de oclusiones de Unity, probablemente necesite hacer las siguientes tres cosas:

Paso 1: establece qué objetos de la escena ocluirán otros objetos (oclusor)

Paso 2: configure esos objetos en la escena para realizar consultas de visibilidad, es decir, determinar qué objetos es probable que sean bloqueados por otros objetos (ocluir)

Paso 3: hornee los datos de eliminación de oclusión para usarlos cuando el juego se está ejecutando.

Antes de realizar operaciones relacionadas en el editor, debe abrir la ventana Eliminación de oclusión.

Inserte la descripción de la imagen aquí

3. Uso detallado de la función de eliminación de oclusiones de Unity

(1) Establecer el objeto como objeto ocluido u objeto ocluido

Después de seleccionar un objeto, puede establecer sus propiedades Occluder Static y Occludee Static en su ventana Occlusion:

  • Oclusor

Un objeto se puede configurar como un oclusor estático al comprobar su oclusor estático. El oclusor ideal debe ser un objeto sólido y voluminoso.

Principio 1: Solo los objetos que pueden bloquear otros objetos deben establecerse como oclusores. Algunos objetos distantes no deben establecerse como oclusores; de lo contrario, es probable que los datos de selección aumenten exponencialmente y la eficiencia de la consulta de selección durante el tiempo de ejecución disminuya. Además, los objetos semitransparentes no deben configurarse como obstáculos.

Principio 2: Para algunos objetos con pequeños agujeros similares (como redes, árboles con hojas frondosas), no puede configurarlos como oclusores, para evitar obtener resultados incorrectos. (El
parámetro de orificio más pequeño puede manejar esta situación, pero su valor no debe establecerse demasiado pequeño)

  • Oscurecido

Al verificar la oclusión estática de un objeto (como se muestra arriba), se puede establecer como un objeto ocluido estático.

El objeto ocluido ideal debe ser de tamaño pequeño, por lo que estará completamente ocluido en más casos, por lo que es más significativo realizar consultas de selección de oclusión. Sin embargo, si el objeto se divide demasiado pequeño, también hará que disminuya el rendimiento del sacrificio por oclusión.

Los objetos más grandes no deben establecerse como objetos ocluidos (por ejemplo, se fusionan en 3dMax y luego se vierten en el editor de Unity), pero tenga en cuenta que las mallas múltiples renderizadas después de ser procesadas por lotes por U3D seguirán siendo el objetivo de una selección de oclusión única La malla se lleva a cabo por separado, por lo que no se ve afectado.

(2) Hornear

Hornee los datos de selección de oclusión de la escena en la página Hornear de la ventana Oclusión. Consulte la figura siguiente.

configuración de parámetros:

El ajuste de los parámetros de horneado elimina esencialmente el compromiso entre precisión y rendimiento / eficiencia. En la práctica, los tres valores de los parámetros que se muestran en la Figura 3 deberían comenzar todos desde un valor mayor y continuar disminuyendo hasta que se obtenga un resultado satisfactorio. Cuando encuentre que el tiempo de horneado es demasiado largo o los datos de horneado son demasiado grandes, debe intentar aumentar los parámetros.
Inserte la descripción de la imagen aquí

  • Agujero más pequeño

Explicación: Si hay objetos con agujeros en la escena que necesitan ser penetrados por la línea de visión (por ejemplo, agujeros en paredes, puertas a habitaciones), entonces el Agujero más pequeño debe configurarse para que sea más pequeño que el diámetro del agujero

Principio: Si no hay un error de selección (se eliminan los objetos visibles), el valor debe establecerse lo más grande posible.

Valor sugerido: 0.05 ~ 0.50

  • El oclusor más pequeño

Explicación: Como su nombre lo indica, es el tamaño del oclusor más pequeño de la escena. Un ajuste demasiado grande dará como resultado una caída en la tasa de éxito del rechazo (pero no debería producir errores de rechazo) y un valor demasiado pequeño provocará problemas de rendimiento.

Principio: establezca un valor ligeramente mayor que la altura del reproductor. La altura actual del jugador es de aproximadamente 1,8.

Valor sugerido: 2 ~ 6

  • Umbral de la cara posterior

Explicación: La introducción de este parámetro es para reducir el tamaño de los datos de selección. Por otro lado, una configuración incorrecta provocará errores de selección (se eliminan los objetos visibles). Por lo tanto, mantenga el valor predeterminado de 100 sin cambios por el momento.

Explicación: El mecanismo de trabajo es que si la relación de la cara posterior observada en una celda generada por PVS es mayor que el valor establecido, el contenido relacionado con la celda no se incluirá en los datos de selección generados, reduciendo así el tamaño de los datos. Si la cámara se mueve a la celda durante el tiempo de ejecución, el resultado de la consulta de selección será "Indefinido".
Inserte la descripción de la imagen aquí
(3) Verificación de los resultados del rechazo de la oclusión

Una vez finalizada la cocción, puede ver el tamaño de los datos de eliminación de oclusión en la parte inferior de la página de horneado, consulte la Figura 7. El resultado de la eliminación selectiva de la oclusión se puede ver en tiempo real en la ventana Escena.

El método específico es el siguiente:

  • Seleccione la página de visualización, consulte la Figura 8.

  • Seleccione una cámara en la escena y marque su opción de Eliminación de oclusión, consulte la Figura 8.

  • Mueva o gire la posición de la cámara, y los objetos en la escena serán eliminados en tiempo real. Cabe señalar que este es el resultado de la eliminación truncada y la eliminación de la oclusión.
    Inserte la descripción de la imagen aquí
    Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_40513792/article/details/115078009
Recomendado
Clasificación