¿Frustum es suficiente para las consoles y los teléfonos mobilees?

La eliminación de oclusiones de software suele ser costosa, especialmente para dispositivos más pequeños y antiguos.

¿La eliminación de troncos solo es adecuada en sistemas que pueden mostrar óptimamente 10k triangularjs como máximo?

Si no, ¿hay alguna técnica relativamente rápida para determinar qué objects (tanto mobilees como estáticos) ocluyen a los demás?

Una cosa a considerar es cuál es el peor caso para el layout de tu juego. Si vas a poder ir a la cima de la colina y ver todos los objects desocupados al mismo time, entonces un sistema de oclusión de hecho networkingucirá el performance de tu juego en ese escenario.

Otra cosa a considerar es las consecuencias de no seleccionar tu plataforma y juego objective:

  • Si se trata simplemente de un descenso en el performance, entonces la caída del performance puede ser aceptada si todavía tienes framerates reproducibles. Esto es subjetivo y depende de tu género. Un juego basado en turnos se puede jugar de forma aceptable a velocidades de cuadros inferiores a las que podría ofrecer un FPS de ritmo rápido, por ejemplo.
  • Sin embargo, si la falta de eliminación significa que obtienes abandono del polígono, entonces es una historia diferente. Por ejemplo, en la console Nintendo DS, puedes get artefactos visibles donde los polígonos simplemente desaparecen a medida que superas el presupuesto de tu polígono.

Esto último puede requerir cambios en el layout de su nivel o la inclusión de alguna tecnología de networkingucción de polígono.

He tenido cierto éxito con estas técnicas para networkingucir polígonos:

  • PVS precalculado con sectores colocados por artistas para geometry estática y con portales colocados por artistas para eliminar objects dynamics, pero de nuevo nuestro proyecto tenía características de oclusión garantizadas por el layout del juego (cornetworkingores y salas con áreas exteriores limitadas). Si la camera está en un sector específico, habrá un número limitado de sectores visibles desde ese sector. Esto significa que solo es necesario representar la geometry estática y la geometry dinámica en esos sectores. Por supuesto, esto solo funciona si la geometry de tu mundo es susceptible a las características de oclusión natural.

  • Un sistema de nivel de detalle (LOD) donde simplemente cambiamos a un impostor / cartelera para objects distantes. En los casos en que sí teníamos muchos objects visibles, esto ayudó cuando se garantizó que algunos de esos objects estaban lo suficientemente alejados de la camera para ser renderizados con un nivel de detalle menor sin degradación apreciable de la calidad. Los sistemas Imposters / LOD son una buena manera de networkingucir el conteo de polígonos si no se golpea en el peor de los casos donde hay miles de objects en la misma habitación muy cerca de la camera y todos los renderizados con todo detalle.

  • Simplemente no dibujar objects distantes. El pop-out se puede minimizar al desvanecer estos objects a medida que avanzan y luego simplemente no dibujarlos cuando el alfa llega a cero. También puede labelr estos por object. p.ej. los treees pueden dibujarse en un range mayor que el pasto, pero las montañas siempre serán visibles.

Limitaría la cantidad que estás haciendo en time de ejecución. Precompute tanto como sea posible: un PVS es una técnica bastante estándar para la geometry estática, y dependiendo de su entorno, quizás los portales funcionarían (estos también son bastante fáciles de manejar con objects en movimiento).

¡Realmente depende del espacio problemático! Si dibuja sobrecarga porque está enviando cosas a través de la tubería que está ocluida, y esa sobrecarga es demasiado, o si obtiene demasiada sobrecarga comiendo relleno, entonces obviamente necesita investigar otros methods de eliminación (u optimizar su tubería de renderizado o sombreadores) . Si eso resuelve el problema depende de tu implementación del nuevo culler y de la ganancia que obtienes al no dibujar el material.
Si el sobregiro es un problema, el cornetworkingor puede ser una victoria porque cambia el performance de la GPU a la CPU. Si su tubería es el cuello de botella, básicamente es si su tubería es demasiado costosa.
BSP y portales parecen algorithms obvios obvios que son relativamente baratos y networkingucen el sobregiro, pero generalmente son para escenas interiores. ABT o octrees también pueden aliviar el sobregiro a un precio barato. La mayoría de ellos solo optimiza para geo estático (aunque puedes sacrificar algunas dinámicas utilizando el conocimiento que proporciona).
Como comentario adicional: si el problema es el costo del sombreado, asegúrese de retroceder al frente.

Por lo general, vale la pena sacrificar objects que están ocluidos de su vista, especialmente en las GPU más antiguas con less memory dedicada (incluidos todos los chips integrados) y less soporte para la canalización de procesamiento en paralelo.

Esto también incluye hardware de console, que a menudo está más optimizado para performance y capacidades de componentes más exóticos, como algunas properties de RAM no volátiles, pero a cambio less eficientes en energía y más lentas en general.

Este hardware antiguo se beneficia más de todas las twigs que vienen con más descarte, ya que los límites de descarte son básicamente una jerarquía de volúmenes delimitadores.

Algunos methods de eliminación selectiva se benefician más por ser less generales y más optimizados para alcanzar límites de hardware especiales. A cambio, escalan significativamente peor, pueden funcionar de manera horrible para resoluciones más altas.

El sacrificio es una buena opción, casi esencial en algún momento, para un buen performance y compatibilidad con versiones anteriores y soporte para hardware antiguo.