Fandom

Doom

Constructor de nodos

1.036páginas en
el wiki
Crear una página
Discusión0 Compartir

Un Constructor de nodos es una herramienta de creación de WADs.

Los lumps VERTEXES, LINEDEFS, SIDEDEFS y SECTORS describen completamente la estructura de un mapa, y es relativamente sencillo para un editor de niveles crearlos. Sin embargo, para la representación rápida y una simulación del juego, el motor de Doom necesita información sobre cómo estas estructuras se interrelacionan. Lo que más tiempo consume es la creación de una partición binaria del espacio (BSP) del mapa.

Usando los lumps básicos, un constructor de nodo crea los lumps NODES, SEGS, SSECTORS, REJECT y BLOCKMAP (y es probable que también se agregue el lump VERTEXES). Tener estas estructuras precalculadas y almacenadas en el archivo WAD, en lugar de determinarlas en tiempo de ejecución, es clave para la velocidad del motor.

El constructor de nodos utilizado por id Software se llama idBSP.

El proceso de construcción de nodos se describe con cierto detalle en Unofficial Doom Specs. Como se detalla en ese documento, son posibles muchas particiones diferentes de un nivel, ya que la elección de las líneas de partición es un tanto arbitraria. Hay dos objetivos en conflicto al crear el árbol BSP: tener un árbol equilibrado (que tiene aproximadamente el mismo número de subnodos de cada lado) y reducir al mínimo el número de divisiones (rompiendo linedefs en múltiples segs). Por lo tanto, los diferentes constructores de nodo probablemente producirán resultados diferentes para un nivel dado.

Formatos de nodo

Existen varios formatos de nodo diferentes.

Nodos regulares

Los nodos que se describen en los lumps NODES, SEGS y SSECTORS, utilizados por la versión original de todos los juegos con el motor de Doom. Ellos experimentan ciertas limitaciones, tales como un límite de 32.768 (o 65.536) para el número de segs y vértices y una falta de precisión de las coordenadas del nodo (que se almacenan como números enteros, en lugar de valores de punto fijo) que se traduce en muchos bugs conocidos con el nombre de rastros de limo.

Nodos DeeP

Para eliminar las limitaciones de los nodos regulares, el NodeBuilder DeePBSP utiliza un formato diferente que puede ser reconocido por una firma de partida de "xNd4 \ 0 \ 0 \ 0 \ 0" (0x784E643400000000) en el lump NODES. Los nodos DeeP utilizan valores de 32 bits con signo para hacer referencia a los vértices y segmentos, ampliando los límites de 64K a 2G. Sin embargo, todavía sufren de falta de precisión. Los nodos DeeP son soportados por Risen3D, así como PrBoom + 2.5.0.7+, ZDoom 2.5.0+ y GZDoom 1.5.0+.

Nodos GL

El renderizado de OpenGL tiene requisitos adicionales para los nodos que los procesadores de software pueden pasar por alto, ya que son mucho más estrictos sobre su necesidad de subsectores para ser convexos y la precisión de las coordenadas es primordial.

Nodos extendidos ZDoom

Los nodos extendidos de ZDoom, construidos por ZDBSP, utilizan valores sin signo de 32 bits para referirse a los vértices, segmentos y subsectores, teniendo un límite de 4G para cada uno. Además, todas las estructuras se enumeran en el mismo lump (NODES), incluyendo vértices adicionales creados por el NodeBuilder. Los lumps SEGS y SSECTORS se dejan vacíos.

Los nodos extendidos de ZDoom pueden ser comprimidos o no; si no están comprimidos empiezan con una firma "XNOD" (0x584E4F44), mientras que si están comprimido con una "ZNOD" (0x5A4E4F44).

ZDBSP también ofrece nodos GL prolongados.

¡Interferencia de bloqueo de anuncios detectada!


Wikia es un sitio libre de uso que hace dinero de la publicidad. Contamos con una experiencia modificada para los visitantes que utilizan el bloqueo de anuncios

Wikia no es accesible si se han hecho aún más modificaciones. Si se quita el bloqueador de anuncios personalizado, la página cargará como se esperaba.

También en Fandom

Wiki al azar