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

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

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

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

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


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

19989Шесть историй, которые умещаются на ладони 19986Как 30 000 аккаунтов Facebook оказались в руках вьетнамских хакеров? 19985LofyGang вернулась: как бразильские хакеры охотятся на геймеров через поддельные читы 19984Автономная проверка защиты: как не отстать от ИИ-атак 19983Взлом Trellix: хакеры добрались до исходного кода одной из ведущих компаний по... 19982Почему почти 3000 монет в норвежском поле перевернули представление о викингах? 19981Как поддельная CAPTCHA опустошает ваш счёт и крадёт криптовалюту? 19980Слежка за каждым шагом: как ИИ превращает государство в машину тотального контроля 19979Как хакеры грабят компании через звонок в «техподдержку» 19978Почему именно Нью-Йорк стал самым уязвимым городом восточного побережья перед... 19977Как одна команда git push открывала доступ к миллионам репозиториев 19976Зачем древние народы убивали ножами и мечами: оружие как основа власти 19975Как Python-бэкдор DEEPDOOR крадёт ваши облачные пароли незаметно? 19974Послание в бутылке: математика невозможного 19973Почему ИИ-инфраструктура стала новой целью хакеров быстрее, чем ждали все?
Ссылка