Ssylka

Как Quake обеспечивал видимость сложных 3D-миров?

Quake использовал порталы для определения видимых областей. Сначала строится граф из порталов, соединяющих листья (пространства) карты. Затем выполняется грубая оценка видимости, чтобы определить, какие листья потенциально видны через каждый портал. Далее происходит более точная проверка. Она состоит в последовательном усечении видимых объёмов через цепочки порталов, что позволяет отбросить невидимые объекты.
Как Quake обеспечивал видимость сложных 3D-миров?
Изображение носит иллюстративный характер

Усечение выполняется путем создания разделительных плоскостей между исходным и проходным порталами. Плоскости строятся на основе комбинаций вершин и граней порталов. Целевой портал усекается этими плоскостями, пока не будет доказано, что он полностью невидим или пока не останется минимальный объем. Процесс повторяется для каждого портала, а затем результаты объединяются для каждого листа, чтобы создать PVS (potentially visible set), который показывает, какие листья видны из данного листа.

Используется рекурсивный обход графа порталов, где каждая итерация сужает область видимости. Обход начинается с портала, а затем продолжается через другие порталы, которые потенциально могут быть видимы из исходного. Массив видимых листьев (mightsee) уменьшается по мере прохождения по графу порталов. Если портал или лист больше не видим, ветка рекурсии завершается.

После определения видимости, данные сохраняются в файл BSP, который используется в игре. При этом данные сжимаются для уменьшения размера файла. Вычисления видимости проводятся один раз при компиляции карты, но этот процесс требует значительного времени. Для ускорения процесса можно использовать многопроцессорность, тесты ограничивающих сфер, кэширование плоскостей и другие оптимизации.


Новое на сайте

18594Записная книжка против нейросети: ценность медленного мышления 18593Растущая брешь в магнитном щите земли 18592Каким образом блокчейн-транзакции стали новым инструментом для кражи криптовалюты? 18591Что скрывается за ростом прибыли The Walt Disney Company? 18590Является ли ИИ-архитектура, имитирующая мозг, недостающим звеном на пути к AGI? 18589Как Operation Endgame нанесла сокрушительный удар по глобальной киберпреступности? 18588Кибервойна на скорости машин: почему защита должна стать автоматической к 2026 году 18587Как одна ошибка в коде открыла для хакеров 54 000 файрволов WatchGuard? 18586Криптовалютный червь: как десятки тысяч фейковых пакетов наводнили npm 18585Портативный звук JBL по рекордно низкой цене 18584Воин-крокодил триаса: находка в Бразилии связала континенты 18583Опиум как повседневность древнего Египта 18582Двойной удар по лекарственно-устойчивой малярии 18581Почему взрыв массивной звезды асимметричен в первые мгновения? 18580Почему самые удобные для поиска жизни звезды оказались наиболее враждебными?