😈 DOOM и BSP-деревья: как нарисовать 3D на процессоре 386-го
😈 DOOM и BSP-деревья: как нарисовать 3D на процессоре 386-го Джон Кармак совершил революцию не графикой, а математикой. Чтобы «DOOM» (1993) работал на ПК того времени с приличным FPS, он использовал BSP (Binary Space Partitioning – двоичное разбиение пространства). Движок заранее (на этапе компиляции карты) разбивал уровень на выпуклые многоугольники и строил из них дерево. Во время игры движок обходил это дерево и отрисовывал только те полигоны, которые находятся перед игроком, игнорируя все, что закрыто стенами (ранняя форма Occlusion Culling). Хитро! Но без ложки дегтя не обошлось: именно из-за этой математики в DOOM нельзя сделать комнату над комнатой (без танцев с бубном), а пол и потолок всегда плоские. Движок просто не умел обрабатывать вертикальные перекрытия в одной ячейке сетки. ✏️ Резюме: С учетом набирающего обороты кризиса полупроводников, постоянного подорожания и дефицита комплектующих – вопрос о качественной оптимизации игр актуален, как никогда. И думать об оптимизации нужно начинать еще на этапе дизайна.