Q2PRO-X 1.5 — HDR в Q2PRO-X 1.5
Полная локальная HTML-версия принятого документа. Оригинал DOCX доступен в карточке документации.
Q2PRO-X 1.5
HDR в Q2PRO-X 1.5
Расширенный динамический диапазон, тон-маппинг и снимки экрана
Русская редакция • Q2PRO-X 1.5 • 25 августа 2026 года
Содержание
Пункты кликабельны: щелчок переходит к разделу.
4. Гамма и совместимость со старыми конфигами
Что такое HDR в Q2PRO-X
HDR в Q2PRO-X разделён на две независимые части.
Внутренний HDR можно использовать и без настоящего HDR-дисплея: он всё равно улучшает работу со светом и переярким. Максимальный эффект виден, когда включены обе части и монитор действительно поддерживает HDR.
| Рекомендация меню. Для наилучшего HDR-эффекта используйте бэкенд win32wgl. win32egl тоже умеет выводить HDR, но на Windows зависит от включённого системного HDR и имеет отдельную калибровку белого. |
|---|
Где находятся настройки
Путь по меню: [[GEN:menu_path:q2prox_hdr]]
Настройки HDR
| Тип | Раздел | Пункт | Переменная или переход | Что делает |
|---|---|---|---|---|
| Раздел | Рендер и вывод | Рендер и вывод | ||
| Список | Рендер и вывод | HDR рендеринг | gl_hdr | gl_hdr: режим HDR-рендера. Off — текущий LDR-вид. Применяется сразу. [Выкл / Авто / Принуд.] |
| Список | Рендер и вывод | HDR вывод на дисплей | gl_hdr_output | Настоящий HDR-сигнал монитору (нужен Windows HDR; применяется сразу через перезапуск видео). Применяется сразу. [Выкл. / Вкл.] |
| Список | Рендер и вывод | Режим HDR-вывода | gl_hdr_output_mode | Паритет бумажного белого или реальные пики выше белого. Применяется сразу. [Паритет белого / Расшир. пики] |
| Список | Рендер и вывод | Формат сцены | gl_hdr_scene_format | Формат HDR-буфера сцены. Авто — лучший поддерживаемый. Применяется сразу. [Авто / RGBA16F / R11F_G11F_B10F / RGBA8] |
| Список | Рендер и вывод | Tone mapping | gl_hdr_tonemap | Как переяркий свет сжимается под дисплей. Применяется сразу. [Линейный / Reinhard / ACES / Uncharted] |
| Раздел | Яркость | Яркость | ||
| Ползунок | Яркость | Пиковая яркость | gl_hdr_peak_nits | Целевая пиковая яркость дисплея. Применяется сразу. |
| Ползунок | Яркость | Белый лист | gl_hdr_paper_white_nits | Яркость обычного белого. Применяется сразу. |
| Ползунок | Яркость | EGL белый | gl_hdr_egl_app_white_max | EGL-only потолок app-side белого для настоящего HDR-вывода. Ниже — больше защиты деталей ламп/солнца/луны от пересвета EGL; выше — ярче EGL HDR. На win32wgl не действует. Применяется сразу. |
| Ползунок | Яркость | Экспозиция | gl_hdr_exposure | Ручная компенсация яркости сцены в стопах EV. Применяется сразу. |
| Раздел | Сияние HDR | Сияние HDR | ||
| Ползунок | Сияние HDR | Порог сияния HDR | gl_hdr_bloom_threshold_nits | Порог сияния в HDR-единицах. Применяется сразу. |
| Ползунок | Сияние HDR | Сила сияния HDR | gl_hdr_bloom_strength | Сила сияния с учётом HDR. Применяется сразу. |
| Раздел | Пики яркости | Пики яркости | ||
| Ползунок | Пики яркости | Пик эмиссии | gl_hdr_emissive_peak_scale | HDR-пик эмиссивного света карты / спавна. Применяется сразу. |
| Ползунок | Пики яркости | Пик небесных тел | gl_hdr_celestial_peak_scale | Пик дисков солнца/луны + небесный bloom. Применяется сразу. |
| Ползунок | Пики яркости | Пик эффектов | gl_hdr_fx_peak_scale | HDR-пик вспышки неба и bloom-свечения AVFX-молнии. Применяется сразу. |
| Раздел | Сервис | Сервис | ||
| Список | Сервис | Отладка HDR | gl_hdr_debug | Диагностический оверлей HDR. Применяется сразу. [Выкл / Псевдоцвет / Гистограмма / Засветка] |
| Переход | Сервис | Инфо об HDR... | gl_hdr_info | Печатает в консоль HDR-возможности и пробу форматов сцены. |
1. Быстрая настройка
1. Включите HDR для монитора в настройках Windows.
2. В Q2PRO-X выберите бэкенд win32wgl, если хотите максимум эффекта и драйвер стабильно работает с WGL.
3. Загрузите карту. Проверять вывод HDR надёжнее именно после загрузки карты: часть пути вывода становится очевидной только на реальном рендере.
4. Откройте [[GEN:menu_path:q2prox_hdr]].
5. Поставьте «HDR-рендер» в «Авто», «Вывод HDR» — включить, «Режим вывода» — расширенные светлые тона.
6. Установите «Бумажно-белый» под комфорт обычного белого: обычно 160–250 нит.
7. Установите «Пиковую яркость» под свой монитор: например 1000, 1300 или 1600 нит.
8. Выполните gl_hdr_info и проверьте, что бэкенд, формат сцены и путь вывода выглядят ожидаемо.
Пример для дисплея на 1300 нит:
vid_driver win32wgl
gl_hdr 1
gl_hdr_output 1
gl_hdr_output_mode 1
gl_hdr_paper_white_nits 200
gl_hdr_peak_nits 1300
gl_hdr_tonemap 2
gl_hdr_info
| gl_hdr_output применяется после перезапуска видеорежима. |
|---|
2. Основные параметры
| Переменная | Допустимые значения | Описание |
|---|---|---|
| gl_hdr | 0=выкл / LDR (по умолчанию) / 1=авто (HDR при поддержке) / 2=принудительно (разработка) | Главный переключатель опционального HDR / tone-mapping рендера. Off оставляет принятый LDR-вид без изменений. Авто включает HDR-рендер сцены, когда backend реально умеет рендерить в float-буфер сцены (проверяется при старте — см. gl_hdr_info). Принудительно — режим разработчика, запрашивает HDR даже на пограничных backend'ах. HDR держит свет в линейном расширенном диапазоне до финального tone-map под дисплей, поэтому солнце, молнии, звёзды и эмиссивные эффекты могут превышать обычный белый и сжиматься, а не клиппиться в плоский белый. |
| gl_hdr_output | 0=SDR с tone-mapping (по умолчанию) / 1=настоящий HDR (scRGB FP16, vid_restart) | Настоящий HDR-вывод на дисплей (HDR-6B). 0 = SDR-вывод с tone-mapping (принятый путь, байт-совместим). 1 = попытка РЕАЛЬНОГО аппаратного HDR: при vid_restart движок выбирает FP16-поверхность окна (R16G16B16A16 float) на win32egl/ANGLE D3D11 и выводит линейный scRGB, который Windows компонует как HDR. Нужно ВСЁ сразу: включённый gl_hdr, включённый Windows HDR для монитора под окном, бэкенд win32egl на пути ANGLE D3D11 и подходящий FP16-конфиг с сохранением depth/stencil/MSAA (stencil молча не теряется). При любом несработавшем условии — откат на принятый SDR-путь, а gl_hdr_info печатает точную причину; true_hdr_output=1 reason=active появляется ТОЛЬКО когда активная поверхность реально FP16. ВАЖНО (HDR-6C): буфер приложения — линейные scRGB-единицы, но композитор Windows может умножать его на системный SDR-reference-white (ползунок «Яркость SDR-содержимого» в настройках Windows HDR); gl_hdr_info показывает активное значение и фактический экранный paper white. screenshotjxr пишет значения как на мониторе (presentation-matched); screenshotjxr_raw — точный вывод приложения. Смена требует vid_restart. |
| gl_hdr_output_mode | 0=паритет бумажного белого (по умолчанию) / 1=расширенные пики | Режим маппинга настоящего HDR-вывода (действует только на живой FP16-поверхности). 0 = паритет бумажного белого: картинка соответствует принятому SDR-виду с якорем gl_hdr_paper_white_nits (белый UI == белый сцены == paper white; ничего его не превышает). 1 = расширенные пики: финальный кламп поднят до peak/paper, и значения тон-кривой выше 1.0 (диски солнца/луны, молния, накрученные пики эмиссии, экспозиция) выводятся РЕАЛЬНОЙ яркостью выше бумажного белого. UI не бустится ни в одном режиме. Маппинг scRGB: значение = ниты / 80 в БУФЕРЕ приложения; на экране композитор Windows может умножать на системный SDR-reference-white (см. gl_hdr_output / gl_hdr_info). |
| gl_hdr_scene_format | 0=авто (по умолчанию) / 1=RGBA16F / 2=R11F_G11F_B10F (без альфы) / 3=RGBA8 (LDR/отладка) | Формат пикселей HDR-буфера сцены. Авто выбирает лучший формат, который реально проходит проверку полноты framebuffer на этом backend'е. RGBA16F — безопасный дефолт, сохраняет альфа-канал, на который опирается маскирование неба / god-ray. R11F_G11F_B10F быстрее и экономнее по памяти, но БЕЗ альфы, поэтому допустим только после переноса пользователей альфа-маркера. RGBA8 принудительно ставит legacy LDR-буфер (отладка). Неподдерживаемый выбор откатывается на RGBA8 с причиной в gl_hdr_info. |
| gl_hdr_tonemap | 0=линейная/clamp (отладка) / 1=Reinhard / 2=ACES filmic (по умолчанию) / 3=Uncharted filmic | Кривая tone-mapping, сжимающая HDR-свет сцены под дисплей. Линейная/clamp — отладочный проброс. Reinhard — простой безопасный спад. ACES filmic — рекомендуемая качественная кривая. Uncharted — альтернативная filmic-кривая. |
| gl_hdr_peak_nits | 100..2000 нит (по умолчанию 1000) | Целевая пиковая яркость дисплея в нитах, на которую ориентируется tone-mapper. Большие значения позволяют ярким источникам оставаться ярче до спада. На SDR-дисплее это верхний якорь кривой tone-mapping, а не буквальная яркость панели. |
| gl_hdr_paper_white_nits | 100..400 нит (по умолчанию 200) | Яркость, назначаемая обычным белым поверхностям мира / UI внутри HDR-сцены. Повышение поднимает полутона; понижение даёт больше запаса очень ярким источникам до клиппинга. |
| gl_hdr_egl_app_white_max | 0.25..8.0 (по умолчанию 1.1; рекомендовано 1.1 для win32egl HDR) | Ограничитель настоящего HDR-вывода только для win32egl: потолок app-side scRGB white scale. Он ограничивает буфер EGL-приложения до того, как композитор Windows применит свой HDR SDR-white presentation scale. Ниже — лучше сохраняются детали ярких ламп/солнца/луны от пересвета EGL; выше — EGL HDR ярче, но пики могут выгорать. На win32wgl не действует. |
| gl_hdr_exposure | -4..+4 EV (по умолчанию 0) | Ручная компенсация экспозиции в стопах EV, применяемая к HDR-сцене до tone mapping. 0 — нейтрально; +1 удваивает яркость сцены, -1 уменьшает вдвое. |
| gl_hdr_bloom_threshold_nits | 0..8 HDR-единиц (по умолчанию 2.0) | Порог начала сияния (bloom) в HDR-единицах сцены (производных от нит). Пиксели ярче порога начинают сиять. Больше — сияют только самые яркие источники. |
| gl_hdr_bloom_strength | 0..3 (по умолчанию 1.0) | Множитель силы HDR-сияния, применяемый поверх цепочки bloom в HDR-режиме. |
| gl_hdr_saturation | 0..2 (по умолчанию 1.0) | Опциональная корректировка насыщенности после tone-map. 1.0 — нейтрально; меньше обесцвечивает, больше усиливает цвет. |
| gl_hdr_contrast | 0..2 (по умолчанию 1.0) | Опциональная корректировка контраста после tone-map. 1.0 — нейтрально; больше повышает контраст, меньше делает плоским. |
| gl_hdr_emissive_peak_scale | 0..8 (по умолчанию 1.0) | HDR-множитель пиковой яркости эмиссивного света КАРТЫ и точек СПАВНА (канал статического эмиссивного света). 1.0 — нейтрально; больше — эти источники ярче до tone mapping. Работает только при включённом gl_hdr. (В HDR-3b подключены только карта/спавн; молнии/искры/снаряды — отложено.) |
| gl_hdr_celestial_peak_scale | 0..8 (по умолчанию 1.0) | HDR-множитель пика небесных бликов. Сейчас влияет на пик дисков солнца/луны и принятый bloom солнца/звёзд/планет. НЕ масштабирует прямой цвет точек звёзд/планет (этот эксперимент дал артефакт «ромбиков» и откачен; повторная попытка потребует мягкого свечения без дробления ядра). Работает только при включённом gl_hdr. |
| gl_hdr_fx_peak_scale | 0..8 (по умолчанию 1.0) | HDR-множитель пиковой яркости визуального семейства AVFX-МОЛНИИ. 1.0 — нейтрально; больше — истинный overbright, молния вспыхивает за белый через tone mapping вместо плоского клиппинга. Работает только при включённом gl_hdr. HDR-4b масштабирует только явно помеченные пути семейства AVFX-молнии: вспышку неба, force-bloom сегменты луча/halo/поверхностных разрядов молнии и подсветку облаков. Оболочки моделей/powerup'ов, vis-тинты предметов, снежные блики, обычные лучи крюка/BFG, искры оружия, свет снарядов и статичные эмиссивные источники карты этим ползунком НЕ масштабируются. Подключение прочих не-молниевых FX отложено. |
Практические ориентиры:
3. WGL и EGL
win32wgl — основной рекомендуемый путь для настоящего HDR. Он даёт более прямой путь вывода OpenGL на современных драйверах и обычно лучше сохраняет яркие пики без потери деталей.
win32egl полезен для производительности и совместимости. Для вывода HDR ему нужен включённый системный HDR Windows. Из-за отличий цепочки вывода и цветового пространства EGL может требовать отдельной подстройки ограничения белого.
| Переменная | Допустимые значения | Описание |
|---|---|---|
| gl_hdr_egl_app_white_max | 0.25..8.0 (по умолчанию 1.1; рекомендовано 1.1 для win32egl HDR) | Ограничитель настоящего HDR-вывода только для win32egl: потолок app-side scRGB white scale. Он ограничивает буфер EGL-приложения до того, как композитор Windows применит свой HDR SDR-white presentation scale. Ниже — лучше сохраняются детали ярких ламп/солнца/луны от пересвета EGL; выше — EGL HDR ярче, но пики могут выгорать. На win32wgl не действует. |
Если на EGL яркие источники превращаются в белые пятна:
1. Оставьте пиковую яркость и бумажно-белый такими же, как на WGL.
2. Понижайте ограничение белого шагами 0,05: 1,10 → 1,05 → 1,00.
3. Если картинка стала слишком тусклой, верните 1,10 или слегка поднимите экспозицию.
4. Для финальной картинки используйте WGL, если нет причин оставаться на EGL.
4. Гамма и совместимость со старыми конфигами
Это отдельная тема, которую легко перепутать с HDR.
| Переменная | Допустимые значения | Описание |
|---|---|---|
| vid_gamma | по умолчанию 1 / диапазон 0.3..3 / шаг 0.05 / r_reload/vid_restart | Совместимая текстурная гамма старых конфигов Q2/Q2PRO. По умолчанию 1.0 — без коррекции; меньшие значения осветляют полутона текстур, большие затемняют. В программных WGL/EGL запекается при загрузке текстур стен/моделей и требует r_reload или vid_restart; весь финальный кадр не изменяет. При vid_hwgamma 1 дисплейный бэкенд может применить эту кривую аппаратным gamma-ramp. При включённых глобальных видеонастройках хранится в едином глобальном конфиге. |
| vid_display_gamma | по умолчанию 1 / диапазон 0.3..3 / шаг 0.05 | Необязательная живая гамма всего финального кадра для программных WGL/EGL. По умолчанию 1.0 — нейтрально; меньшие значения осветляют весь кадр, большие затемняют. Новый регулятор намеренно независим от старой vid_gamma и никогда не наследует сохранённое значение. При включённых глобальных видеонастройках хранится в едином глобальном конфиге. |
Если старый конфиг делал картинку неожиданно светлой или тёмной, начните именно отсюда, а не с настроек HDR.
5. Пресеты HDR в AVFX
Пресеты HDR находятся в разделе пресетов AVFX. Они рассчитаны на включённый внутренний HDR-рендер. Музыкальные варианты останавливают текущую композицию онлайн-музыки и запускают свою; обычные варианты меняют только визуальный профиль.
Подробности о слотах и правилах пресетов — в руководстве по пресетам AVFX.
6. Снимки экрана
Для обычного сравнения достаточно снимка в JPEG. Для настоящего HDR используйте:
screenshotjxr
screenshotjxr_raw
Формат JXR нужен, чтобы сохранить расширенный диапазон. JPEG может выглядеть нормально как иллюстрация, но не является проверкой данных HDR. Качество HDR проверяется глазами на HDR-дисплее и через gl_hdr_info.
7. Диагностика
gl_hdr_info печатает возможности бэкенда, формат сцены и текущий путь вывода. Команда ничего не меняет.
Отдельно существует диагностический оверлей HDR. Он предназначен для разработчика, действует только в текущем сеансе и не сохраняется в конфиг:
| Переменная | Допустимые значения | Описание |
|---|---|---|
| gl_hdr_debug | 0=выкл / 1=псевдоцвет яркости / 2=гистограмма / 3=маска засветки | Диагностический оверлей HDR. Выкл — обычный рендер. Псевдоцвет показывает полосы яркости по пикселям. Гистограмма показывает распределение экспозиции / яркости. Засветка подсвечивает пиксели вне диапазона дисплея. Помощник разработчика; не архивируется. |
Маска засветки — самый полезный режим для пользователя: она прямо показывает пиксели, вышедшие за диапазон дисплея.
8. Типовые проблемы
| Симптом | Что проверить |
|---|---|
| Нет эффекта HDR | Системный HDR Windows, включённый вывод HDR, бэкенд и загруженную карту |
| Сцена выглядит как обычная | Режим вывода «расширенные светлые тона», пиковую яркость и бумажно-белый; попробуйте WGL |
| Лампы, Луна и Солнце превращаются в пятна на EGL | Уменьшите ограничение белого для EGL |
| Интерфейс или обычный белый слишком яркие | Уменьшите бумажно-белый |
| Всё слишком тёмное | Сначала поднимите бумажно-белый, затем осторожно экспозицию |
| Картинка изменилась после загрузки старого конфига | Проверьте гамму, а не HDR |