Ssylka

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

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

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

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

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


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

18666Почему мы отрицаем реальность, когда искусственный интеллект уже лишил нас когнитивного... 18665Химический след Тейи раскрыл тайну происхождения луны в ранней солнечной системе 18664Раскрывает ли извергающаяся межзвездная комета 3I/ATLAS химические тайны древней... 18663Масштабная кампания ShadyPanda заразила миллионы браузеров через официальные обновления 18662Как помидорные бои и персонажи Pixar помогают лидерам превратить корпоративную культуру 18661Как астероид 2024 YR4 стал первой исторической проверкой системы планетарной защиты и... 18660Агентные ИИ-браузеры как троянский конь новой эры кибербезопасности 18659Многовековая история изучения приливов от античных гипотез до синтеза Исаака Ньютона 18658Как выглядела защита от солнца римских легионеров в Египте 1600 лет назад? 18657Хакеры ToddyCat обновили арсенал для тотального взлома Outlook и Microsoft 365 18656Асимметрия безопасности: почему многомиллионные вложения в инструменты детекции не... 18655Как безопасно использовать репозитории Chocolatey и Winget, не подвергая инфраструктуру... 18654Масштабная утечка конфиденциальных данных через популярные онлайн-форматеры кода 18653Как расширение списка жертв взлома Gainsight связано с запуском вымогателя ShinySp1d3r 18652Как расширение Crypto Copilot незаметно похищает средства пользователей Solana на...