Q2PRO-XНа сайт Q2PRO-XСодержаниеRUEN
II. Развитие клиента

Луна и звёзды над Quake II

18 мая — начало июля 2026 · Q2PRO-X 1.4

Работа над небом заняла почти всю линию Q2PRO-X 1.4. Его было видно через дворы, окна и проёмы, а местами — всего узкой полоской над стеной. Облака и небесные тела размещали с учётом этих просветов. При этом часть карт продолжала использовать прежний skybox: в июне нашёлся уровень, где ползунки меняли значения, но небо оставалось старым. Новый графический путь работал, настройки тоже; сама карта до него не доходила.

Как плоская карта становится поверхностью Луны. Иллюстрация NASA Scientific Visualization Studio к CGI Moon Kit, созданному по данным LRO; это поясняющий материал NASA, а не игровой кадр.
Как плоская карта становится поверхностью Луны. Иллюстрация NASA Scientific Visualization Studio к CGI Moon Kit, созданному по данным LRO; это поясняющий материал NASA, а не игровой кадр.

Луна, которую можно рассмотреть

Поначалу моря и кратеры Луны были придуманы процедурно. Для маленького диска рисунка хватало. Когда Луну увеличили, захотелось узнать на ней знакомые очертания, а не только увидеть рельеф. Взяли карту альбедо NASA/LROC — данные об отражательной способности настоящей поверхности. Позднее появился HD-вариант 8K. На крупной Луне стали различимы подробности, ради которых и обращались к съёмке; освещение при этом сохраняло фазу и объём шара.

У большой Луны обнаружились собственные странности. Иногда на другом участке неба появлялась обрезанная копия, звёзды светили сквозь тёмную половину, а попытка сделать серп ярче высветляла всю ночь. Свет диска, окружающий фон и освещение карты пришлось настраивать отдельно. Иначе, поправляя Луну, неизбежно портили что-нибудь рядом с ней.

Звёзды из каталога

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

Между каталоговыми звёздами оставили фоновый слой. Он заполнял небо, не сдвигая узнаваемые созвездия и не меняя их рисунок ради декоративного мерцания. На больших открытых картах вскрылось зеркальное повторение ниже горизонта. С незнакомой искрой его легко пропустить; вторая планета или повтор знакомой группы звёзд сразу выдавали ошибку.

Данные сначала проверяли вне игрового рендера. Строили обзор, сверяли яркие опорные звёзды и сегменты созвездий, убирали ненужный объём исходного каталога. Затем понадобились несколько способов передать результат видеокарте. Современный графический путь вмещал больше объектов, совместимый — меньше. Наличие дорогой видеокарты ещё не гарантировало доступность нужной возможности через выбранный API. Поэтому клиент сообщал, какой путь действительно используется. Человек мог понять, почему на его установке действует ограничение, вместо того чтобы безрезультатно двигать ползунок количества звёзд.

Метеоры и кометы двигались, оставляя хвосты, свет и дым. Облака могли скрывать их; отдельные следы появлялись при столкновении с поверхностью. Солнечные лучи, затмения и цветной лунный свет меняли вид пола, воды и моделей. При проверке приходилось смотреть и вверх, и вниз: небесное событие могло выглядеть исправным над стенами и совсем иначе — в луже под ногами.

На воде появились волны, пена и отражения. Старые карты не подсказывали новому рендеру, как всё это размещать: в их данных были поверхности и материалы, рассчитанные на прежнюю игру. Поэтому удачную настройку переносили в другой уровень и часто находили шов, неверное направление или неподходящий край. Затем возвращались на первую карту — проверять, что поправка не испортила её.

Расширенный диапазон яркости

HDR потребовал провести яркость через весь кадр. Между исходным светом и монитором находились промежуточные изображения, bloom, экспозиция и итоговое преобразование. Если один участок цепочки ограничивал значения слишком рано, последующая обработка уже не могла вернуть потерянные данные. Использовались буферы повышенной точности и соответствующий способ вывода. Снаружи ошибки выглядели очень по-разному: чёрный экран, слишком светлая ночь, неправильно выделившийся яркий объект. Разбирать их приходилось по этапам, проверяя, что именно получает следующая часть рендера.

Игровая сцена из материалов проверки HDR: яркая Луна и освещённое небо над тёмной картой. Обычный снимок показывает композицию сцены, но не передаёт весь диапазон яркости HDR-монитора.
Игровая сцена из материалов проверки HDR: яркая Луна и освещённое небо над тёмной картой. Обычный снимок показывает композицию сцены, но не передаёт весь диапазон яркости HDR-монитора.

Яркий небесный эффект однажды пришлось откатить: в кадре проступала лишняя геометрия. В ночных сценах отдельно поправляли гамму, затем проверяли мокрый объектив, который обрабатывал уже готовое изображение. Возникла и трудность со снимками. HDR-файл в неподходящей программе выглядел иначе, чем сама игра; прежде чем судить по нему об ошибке, требовалось проверить просмотр. Для сохранения таких кадров добавили JXR и работу с уровнем белого.

В те же недели расширялась локальная игра. На знакомую deathmatch-карту можно было прийти с монстрами, потренироваться или просто рассмотреть окружение. Боевой конфиг сохраняли отдельно от оформления такой прогулки. Иначе после вечера с погодой и насыщенными эффектами человек выходил бы на сервер с настройками, которые мешают ему видеть соперника.

К началу июля эти работы вошли в комплект Q2PRO-X 1.4. Проверка выстрела теперь занимала больше времени, чем весной: помимо оружия смотрели свет, отражение, мокрый объектив и результат смены графического пути. Круг знакомых тестовых карт расширялся, а старые из него не вычёркивали. Уже готовились следующие небесные объекты и материалы для летней версии.

Схема небесного оформления: фон, отдельные тела и движущиеся объекты образуют разные слои. Масштаб условный.
Схема небесного оформления: фон, отдельные тела и движущиеся объекты образуют разные слои. Масштаб условный.

Скачать книгу в PDF