Visibilidad y descarte de geometría
Polygon Engine utiliza el rechazo de visibilidad conservador para reducir la geometría enviada a la tabla de ordenamiento de PS1. El sistema actual combina conectividad opcional de Room y Portal, procesamiento de geometría en tiempo de construcción, recopilación de candidatos espaciales en tiempo de ejecución, pruebas de límites, pruebas de cono truncado, política de cara posterior, recorte de plano cercano y verificaciones de distancia lejana.
No utiliza un buffer de oclusión de hardware moderno o un renderizador de tronco de portal plano exacto.
Preparación durante la compilación
La geometría estática incorporada que sea compatible puede preprocesarse y dividirse en fragmentos de malla para la ejecución. La compilación registra sus límites espaciales y metadatos de visibilidad e informa:
- los recuentos de mallas y triángulos,
- el recuento de renderizadores sectorizados,
- peores estimaciones de triángulos de grupos visibles,
- estimaciones de búfer de paquetes,
- geometría que no podía utilizar la trayectoria de visibilidad estática.
La escala de agrupación es un detalle de implementación del motor, no un contrato público de red mundial. No alinees las coordenadas del juego o los módulos de nivel a una dimensión codificada del sector de visibilidad.
Ruta de Candidato en Tiempo de Ejecución
El tiempo de ejecución construye una cuadrícula espacial a partir de límites de malla estáticos elegibles. Una jerarquía de capacidad fija agrupa las celdas de la cuadrícula en volúmenes conservadores para que un grupo fuera de la pantalla pueda ser rechazado antes de probar cada miembro. Los grupos potencialmente visibles todavía ejecutan pruebas exactas por celda, luego los límites de malla individuales y los triángulos pasan por la visibilidad normal del renderizador y la ruta de recorte.
La jerarquía se reconstruye solo cuando cambia la revisión de la cuadrícula de visibilidad. Si los datos de entrada no son válidos o exceden su capacidad, el entorno de ejecución vuelve a comprobar las celdas individualmente para evitar que desaparezca geometría.
Los objetos que no pueden entrar de forma segura en la cuadrícula estática permanecen en la lista de candidatos que no son de la cuadrícula. Esto incluye objetos dinámicos o de comportamiento como GameObjects y GameObjects con scripts, animación, colisión, audio, luces, cámaras, componentes de jugador o componentes de interacción.
Conservador significa que el sistema prefiere enviar un candidato adicional sobre ocultar incorrectamente la geometría visible. No significa que cada triángulo presentado será dibujado.
Conectividad de la Room
Los renderizadores de entorno se pueden asignar a la Room GameObjects. Cuando la cámara está dentro de una Room de autor, el tiempo de ejecución de PS1 retiene cada Room detrás de una abertura adyacente válida, luego sigue recursivamente Portales abiertos habilitados más tarde cuyos conos de apertura conservadores se superponen. Los portales unidireccionales atraviesan de la Room A a la Room B; los portales Two Sided también permiten B a A.
El cono alrededor de una abertura contiene todo el rectángulo creado. Esto puede conservar habitaciones adicionales, pero evita descartar geometría que podría ser visible a través de la cadena de portales. Cuando los datos del grafo, la cámara, las transformaciones, las aberturas o la capacidad son ambiguos o incorrectos, el sistema conserva la visibilidad. No se garantiza un búfer de oclusión por hardware ni una BVH, y los renderizadores globales o sin asignación siguen siendo candidatos. Play Mode del editor y el entorno de ejecución de PS1 usan la misma construcción de conos de abertura, tolerancias de superposición, límites de recursión y política ante errores. La compilación empaquetada sigue siendo la prueba definitiva de rendimiento y hardware. Consulta Habitaciones, portales y navegación.
Creación para una visibilidad fiable
- Divide los pisos y paredes muy grandes en trozos prácticos.
- Prefiere mallas de Level Builder o primitivas preparadas para PS1 en lugar de una sola malla importada enorme para todo el nivel.
- Mantén los límites representativos del objeto visible.
- Evita pequeños desplazamientos coplanares y superficies profundamente intersecantes.
- Subdivide la geometría que puede acercarse o cruzar el plano cercano.
- Usa materiales opacos para la geometría estructural siempre que sea posible.
- Marcar las superficies delgadas de doble cara solo cuando ambos lados deben realmente renderizar.
- Mantén los scripts y los componentes dinámicos alejados de los fragmentos de entorno puramente estáticos.
El UV Editor resuelve el diseño de coordenadas de textura; no cambia los límites de visibilidad ni el orden de los dibujos.
Diagnosticar un problema de visibilidad
- Determinar si el objeto está realmente ausente o está perdiendo un conflicto de orden o transparencia.
- Comprueba su material para semi-transparencia y renderizado de doble cara.
- Inspecciona los límites de malla y transforme la escala.
- Comprueba si un script, padre, colisionador, Animator u otro componente hace que el objeto sea dinámico.
- Si se asigna Renderer Room, comprueba la cámara Room y cada Portal abierto dirigido a lo largo de la ruta de conexión esperada.
- Revisa la carga de trabajo en tiempo de ejecución de PS1 Budget y el informe de escena posterior al preprocesamiento.
- Prueba los enfoques de cámara cercana, los ángulos oblicuos y el movimiento a través de los límites de los trozos en la compilación DuckStation empaquetada.
Si solo aparece un problema cerca de la cámara, revisa Renderizado y creación de niveles. Si aparece solo en superficies transparentes o que se cruzan, trate el pedido y la creación de materiales como los primeros sospechosos en lugar de aumentar el rango de visibilidad.