IntegerScaler

IntegerScaler — бесплатная программа для цело­чис­ленного масштаби­рования (integer scaling) игр без размытия. Например, в разрешении Full HD (1920×1080) на 4K-мониторе (3840×2160) каждый логический пиксел выводится как квадратная группа из 4-х (2×2) физических пикселов одного цвета.

Такое масштаби­рование без потерь качества может быть полезно как для современных трёх­мерных игр, так и для старых игр и игр на основе пиксельной графики (pixel art). См., например, скриншот игры «SimCity 2000» () (собственное разрешение — 640×480), отмасштаби­рованной до 4K с помощью IntegerScaler.

В отличие от аналогов, IntegerScaler совместима не только с Windows 10+, но и с Windows 7. В отличие от FSR, DLSS и других подобных алгоритмов масштаби­рования, цело­чис­ленное масштаби­рование не требует ресурсо­ёмких вычислений, не снижает быстро­действие и обладает близкой к нулю задержкой.

Как пользоваться: пере­ключите игру в оконный режим и нажмите Alt+F11 при активном окне игры. Если Alt+F11 для конкретной игры не сраба­тывает, сделайте окно игры неактивным, включите отложенное масштаби­рование с помощью Ctrl+Alt+F11 или пункта «Масшта­бировать через 5 секунд» меню пикто­граммы IntegerScaler в области уведомлений (system tray) и снова сделайте окно игры активным. Удостоверьтесь, что игра работает в HiDPI-совместимом режиме. Подробнее читайте ниже.

Windows 11 и DirectX 12: некоторые пользователи сообщают, что в свежих версиях Windows 11 как минимум при использовании видеокарт nVidia появилось размытие при масштаби­ровании встроенными средствами Windows, в том числе при использовании стандартной Windows-программы «Экранная лупа» (Magnifier). Размытие также есть в играх, использующих DirectX 12 (например, «Cyberpunk 2077»), даже в Windows 10. Исправить это на уровне IntegerScaler невозможно, о проблеме следует сообщить в Microsoft: чем больше обращений, тем выше вероятность, что проблему устранят.

Проверенные игры

См. также
  • SmartUpscale — браузерное расширение для устранения размытия изображений на веб-страницах.
  • bsnes-mt — эмулятор SNES (Super Nintendo) с поддержкой цело­численного масштаби­рования.

Функциональность

  • Цело­чис­ленное масштаби­рование без размытия для игр, поддер­живающих оконный режим.
  • Поддержка Windows 7 и новее.
  • Возможность авто­мати­ческого масштаби­рования заданных игр (файл auto.txt).
  • Возможность задать произвольный цвет фона вместо чёрного (параметр -bg).
  • Возможность ограничить область движения указателя мыши окном игры (параметр -clipcursor).
  • Поддержка масштаби­рования с дробными масштабными коэффи­циентами (параметр -fractional).
  • Возможность указать произвольный масштабный коэффи­циент, в том числе дробный (параметр -ratio).
  • Возможность усечения (параметр -crop).
  • Возможность изменения размеров окна игры (параметр -resize).
  • Возможность отключения горячих клавиш (параметр -nohotkeys).
  • Возможность авто­мати­ческого масштаби­рования с заданной задержкой после запуска программы (параметр -scale).
  • Пикто­грамма с меню в области уведомлений (system tray).
  • Поддержка двух языков интерфейса: английского и русского.
  • 100% автономное (portable) приложение:

    • не нуждается в установке — просто распакуйте и пользуйтесь;
    • не сохраняет файлов за пределами своей папки;
    • не записывает ничего в реестр Windows;
    • свободно от зави­симостей типа .NET Framework;
    • может работать с внешнего накопителя типа USB-флэшки.

Программа имитирует полно­экранный режим для игр, запущенных в оконном режиме. Отмасшта­бированное изображение выводится по центру экрана. Пространство вокруг изображения заполняется одно­тонным фоном (по умолчанию чёрным).

Цело­чис­ленный масштабный коэффи­циент, обеспечивающий макси­мальное заполнение экрана, вычисляется авто­мати­чески и пере­счи­тывается при изменении размеров масштаби­руемого окна при изменении разрешения в игре.

Масштаби­рование не применяется к развёрнутым (maximized) окнам.

Масштаби­рование авто­мати­чески выключается при закрытии масштаби­руемого окна, а также временно выключается при сворачивании масштаби­руемого окна или его развора­чивании на весь рабочий стол и авто­мати­чески включается снова при возвращении окна в обычное (не свёрнутое и не развёрнутое) состояние. Масштаби­рование также временно выклю­чается, когда масшта­бируемое окно теряет фокус, например, при нажатии сочетания клавиш Alt+Tab.

Интерфейс

Пользова­тельский интерфейс программы состоит из двух частей:

  • сочетания клавиш (горячие клавиши) для управления масштаби­рованием;
  • пикто­грамма в области уведомлений (system tray) с меню.

Сочетания клавиш

Нажатие сочетания клавиш Alt+F11 включает масштаби­рование для активного в данный момент окна. Повторное нажатие выключает масштаби­рование вне зависимости от того, какое окно активно.

Нажатие сочетания клавиш Ctrl+Alt+F11 включает масштаби­рование с задержкой 5 секунд. Это позволяет включить масштаби­рование даже в играх, блокирующих обработку сторонних сочетаний клавиш при активном окне игры: просто нажмите сочетание клавиш при неактивном окне игры и в течение 5 секунд пере­клю­читесь на окно игры. Для этой же цели служит пункт «Масшта­бировать через 5 секунд» меню программы.

Программа также выключает масштаби­рование при нажатии сочетания клавиш Ctrl+Alt+Delete.

Меню

По щелчку на пикто­грамме отображается меню, позволяющее включить масштаби­рование, просмотреть информацию о программе, перейти по ссылкам на связанные веб-страницы или выйти из программы.

Интерфейс программы поддерживает русский и английский языки, язык выбирается авто­мати­чески на основании языка интерфейса операционной системы.

Авто­масшта­бирование

Возможно авто­мати­чески применять масштаби­рование к заданным пользователем играм. Каждая игра задаётся и иденти­фицируется с помощью полного пути к её исполняемому файлу (*.exe). Такие пути следует указать каждый на отдельной строке в текстовом файле с именем auto.txt в папке IntegerScaler. Пример содержимого файла auto.txt:

D:\games\Steam\steamapps\common\GRID Autosport\GRIDAutosport_avx.exe
D:\games\Steam\steamapps\common\Oddworld New n Tasty\NNT.exe
D:\games\Steam\steamapps\common\pCars\pCARS64.exe

Пользова­тельский интерфейс для редакти­рования этого списка не преду­смотрен, поэтому следует использовать сторонний текстовый редактор типа Блокнота Windows.

Файл auto.txt следует сохранить в кодировке UTF-8, это необходимо для правильной интер­претации национальных символов (например, кириллицы) в путях к файлам игр.

Параметры командной строки

Параметры (аргументы) командной строки позволяют включить не­обяза­тельные дополни­тельные функции IntegerScaler. Они не требуются для обычного исполь­зования IntegerScaler.

Параметры можно указать в поле «Объект» на вкладке «Ярлык» в свойствах ярлыка (*.lnk) исполняемого файла (*.exe) IntegerScaler. Создать ярлык можно с помощью пункта «Создать ярлык» контекстного меню исполняемого файла, вызываемого щелчком правой кнопкой мыши на испол­няемом файле.

Параметры указываются через пробел после пути к исполняемому файлу программы. Значение параметра указывается через пробел после его названия. Порядок указания параметров не имеет значения. Параметры можно исполь­зовать по отдельности, независимо друг от друга.

Обратите внимание, что параметры командной строки не имеют отношения к auto.txt и не будут работать, если поместить их туда.

в описаниях параметров ниже используются следующие условные обозначения:

  • слова, набранные заглавными буквами (например, POSITION1), пред­наз­начены для замены на реальные значения;
  • квадратные скобки вокруг значения параметра означают, что значение можно не указывать.
-align ПОЗИЦИЯ1[,ПОЗИЦИЯ2] или -a ПОЗИЦИЯ1[,ПОЗИЦИЯ2]

Выравнивает отмасшта­биро­ванное изображение относи­тельно экрана.

Возможные значения для вырав­нивания:

  • left (или l) — по левому краю;
  • top (или t) — по верхнему краю;
  • right (или r) — по правому краю;
  • bottom (или b) — по нижнему краю.

Если указано одно ключевое слово для выравнивания, по второму измерению отмасшта­биро­ванное изображение центрируется относительно экрана. Если указаны оба ключевых слова, отмасшта­биро­ванное изображение прижимается к соот­вет­ствующему углу экрана. Если указанные ключевые слова противоречат друг другу (например, left,right), параметр игнорируется.

Порядок ключевых слов в значении параметра не играет роли.

Примеры:
  • -align top
  • -align bottom,right
-background ЦВЕТ или -bg ЦВЕТ

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

Произвольный цвет задаётся в формате R,G,B (без пробелов), где RG и B — целые числа в диапазоне 0—255, соответ­ствующие красной, зелёной и синей составляющим цвета соответ­ственно, например, 64,128,192.

Доступны несколько предопре­делённых значений:

  • gray — серый;
  • white — белый;
  • none — отключает фон.
Примеры:
  • -background 64,128,192
  • -background gray
  • -background none
-clipcursor или -cc
Ограничивает область движения указателя мыши клиентской областью (областью окна за исключением рамок и заголовочной панели) окна игры.
-crop [ЗНАЧЕНИЯ] или -c [ЗНАЧЕНИЯ]

Усекает окно игры. Синтаксис значений:

-crop ШИРИНАxВЫСОТА[,ПОЗИЦИЯ1[,ПОЗИЦИЯ2]]

Клиентская область окна игры усекается до заданного размера (например, 640x480) с воз­можностью вырав­ни­вания усечённой области относи­тельно исходной клиентской области. Для усечения лишь по одной из осей следует установить размер по другой оси равным нулю: например, 0x216 усечёт до 216 пикселов по высоте, не влияя на ширину.

Возможные значения для вырав­нивания:

  • left (или l) — по левому краю;
  • top (или t) — по верхнему краю;
  • right (или r) — по правому краю;
  • bottom (или b) — по нижнему краю.

Если указано одно ключевое слово для выравнивания, по второму измерению усечённая область центрируется относительно клиентской области окна. Если указаны оба ключевых слова, усекаемая область прижимается к соот­вет­ствующему углу.

Порядок ключевых слов в значении параметра не играет роли.

Если указано более двух ключевых слов или ключевые слова противо­речат друг другу, параметр игнорируется.

Примеры:
  • -crop 640x480
  • -crop 640x480,top,right
  • -crop 0x216,bottom
-crop [ШИРИНА_Л[,ШИРИНА_В[,ШИРИНА_П[,ШИРИНА_Н]]]]

Клиентская область окна игры усекается путём отсечения полос заданной ширины по периметру начиная с левой стороны в порядке по часовой стрелке.

Примеры:
  • -crop 10
  • -crop 10,20
  • -crop 10,20,30
  • -crop 10,20,30,40
-crop [ПОЗИЦИЯ1[,ПОЗИЦИЯ2]]

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

Примеры:
  • -crop
  • -crop top
  • -crop bottom,right
-fractional или -f
Не рекомендуется.
Включает использование дробных (нецело­чис­ленных) масштабных коэффи­циентов при авто­мати­ческом вычислении масштаба. Позволяет использовать экран более полно, но может приводить к искажению изображения и дрожанию пикселов (pixel shimmering) из-за неравных размеров пикселов.
-locale ЯЗЫК или -l ЯЗЫК

Пере­опре­деляет язык интерфейса программы. Поддер­живаемые значения:

  • en — английский;
  • ru — русский.

По умолчанию используется язык интер­фейса операционной системы, если он русский, и английский язык — в любом другом случае.

Пример:
  • -locale en
-maxratio МАСШТАБ или -mxr МАСШТАБ

Позволяет указать макси­мальный масштабный коэффи­циент. Указанный коэффи­циент игнори­руется, если он меньше 1. Особое значение system соответствует системному масштабу: например, при системном масштабе 200% оно эквивалентно значению 2.

Примеры:
  • -maxratio 2
  • -maxratio system
-nohotkeys или -nohk
Отключает горячие клавиши (сочетания клавиш).
-ratio МАСШТАБ или -r МАСШТАБ

Внимание: исполь­зование дробных масштабных коэффи­циентов не реко­мендуется, т. к. приводит к искажению изображения и дрожанию пикселов (pixel shimmering) из-за неравных размеров пикселов.

Позволяет указать произвольный масштабный коэффи­циент. Поддерживаются как цело­численные (например, 2), так и дробные (например, 1.5) значения — вне зависимости от того, указан ли параметр -fractional. Указанный коэффи­циент игнори­руется, если он меньше 1. Если задан коэффи­циент 1 в сочетании с отклю­чённым фоном, масштаби­рование не осущест­вляется, и только изменяется размер окна игры, если задан параметр -resize.

Пример:
  • -ratio 3
-resize ШИРИНАxВЫСОТА или -rs ШИРИНАxВЫСОТА

Не пред­наз­начен для масштаби­рования! Для указания произвольного масштаба используйте параметр -ratio.

Изменяет размеры окна игры так, чтобы клиентская область окна (область окна за исключением рамок и заго­ловочной панели) имела заданные размеры в пикселах.

Полезно для игр, которые:

  • не изменяют размеры окна в соответствии с внутри­игровым разрешением;
  • или устанав­ливают неправильные размеры окна, не соответствующие разрешению игры;
  • или не позволяют изменять разрешение игры в оконном режиме, но под­страивают его под размеры окна.

В результате исполь­зования параметра -resize размер области отрисовки (клиентской области) окна игры до масшта­бирования и внутреннее разрешение игры должны совпадать. В противном случае исполь­зование этого параметра может привести к искажению изображения и дрожанию пикселов (pixel shimmering).

Пример:
  • -resize 1920x1080
-scale [ЗАДЕРЖКА] или -s [ЗАДЕРЖКА]

Применяет масштаби­рование через полсекунды после запуска IntegerScaler (если задержка не задана) или с задержкой, заданной в милли­секундах.

Примеры:
  • -scale
  • -scale 3000

Регистр символов значения параметров не имеет значения.

В этом примере фон пере­опре­деляется в серый, область движения указателя мыши ограни­чивается клиентской областью окна игры, размер окна игры изменяется так, чтобы его клиентская область имела ширину 1920 и высоту 1080, язык интерфейса пере­опре­деляется в английский, отключаются горячие клавиши и применяется масштаби­рование спустя 3 секунды (3000 мс) после запуска IntegerScaler:

IntegerScaler_64bit.exe -background gray -clipcursor -resize 1920x1080 -locale en -nohotkeys -scale 3000

Тот же пример с краткими вариантами параметров:

IntegerScaler_64bit.exe -bg gray -cc -rs 1920x1080 -l en -nohk -s 3000

Преимущества перед масштаби­рованием видео­картой (GPU)

  • Возможность выравнивания отмасштаби­рованного изображения не только по центру экрана, а по любой из сторон или углов экрана (параметр -align). Это позволяет, например, предотвращать выгорание (burn-in) OLED-экранов, более равномерно распределяя износ по площади экрана, когда изображение занимает не весь экран.
  • Возможность усечения изображения для более полного использования площади экрана (параметр -crop).
  • Возможность задать произвольный масштабный коэффициент, отличный от мате­матически макси­мального (параметр -ratio).
  • Возможность исполь­зования нецело­чис­ленных (дробных) масштабных коэффициентов для более полного использования площади экрана (параметры -ratio и -fractional). При масштабировании видеокартой такая возможность доступна только в драйверах Intel.
  • Возможность задать отличный от чёрного цвет фона вокруг отмасштабированного изображения (параметр -background).
  • В отличие от реализации nVidia, IntegerScaler совместима с расширенным динамическим диапазоном (HDR), в том числе с помощью функции «Auto HDR» в Windows 11.
  • В отличие от реализации цело­чис­ленного масштаби­рования AMD, выравнивание работает правильно. В реализации AMD изображение не центрируется по вертикали, а прижато к верхнему краю экрана, что проявляется, например, с видео­картами RX 550 и RX 570.
  • В отличие от реализаций цело­чис­ленного масштаби­рования nVidia и Intel, IntegerScaler работает не только в Windows 10+, но и в Windows 7.

Преимущества перед «Экранной лупой»

IntegerScaler выгодно отличается от стандартной Windows-программы «Экранная лупа»:

  • отображается только значимая часть окна — без рамок и заголовочной панели;
  • пространство вокруг изображения заполняется чёрным цветом, как в полно­экранном режиме;
  • изображение авто­мати­чески центрируется на экране без нужды в точном позицио­нировании мыши;
  • масштабный коэффи­циент подбирается авто­мати­чески для макси­мального заполнения экрана.

Совместимость с играми

Информацию о совместимости некоторых игр с оконным режимом и программой IntegerScaler см. в таблице.

Оконный режим

Программа совместима с подавляющим большинством игр, поддер­живающих оконный (windowed) режим, и не работает с играми, запущенными в полно­экранном режиме.

Если в настройках игры не предус­мотрено явное пере­клю­чение между полноэкранным (full-screen) и оконным режимами, может сработать сочетание клавиш Alt+Enter.

HiDPI-режим

Важно убедиться, что игра работает в HiDPI-совместимом (DPI-aware) режиме. Определить это легко: размер окна игры в физических пикселах (точках) должен соответ­ствовать разрешению, выбранному в настройках игры. Например, окно игры, работающей в разрешении Full HD, при системном масштабе 200% на 4K-мониторе должно занимать не весь экран, а примерно 1/4 экрана (1/2 по горизонтали и 1/2 по вертикали).

Для игр, формально несовме­стимых с HiDPI, требуется отключить DPI-виртуа­лизацию (DPI scaling) в свойствах исполняемого файла (*.exe), чтобы окно игры имело правильный размер и было свободно от размытия, возможного вследствие масштаби­рования, которое Windows авто­мати­чески применяет к HiDPI-несовме­стимым приложениям.

Отключить DPI-виртуа­лизацию для отдельно взятой игры можно в свойствах её исполняемого файла (пункт «Свойства» контекстного меню файла).

Windows 10
Пункт «Свойства» → вкладка «Совместимость» → секция «Параметры» → кнопка «Изменить параметры высокого DPI» → секция «Пере­опре­деление масштаби­рования с высоким разрешением» → галка «Пере­опре­делите режим масштаби­рования высокого разрешения. Масштаби­рование выполняется» → пункт «Приложение» выпадающего списка.
Windows 10 (устаревшие версии)
Пункт «Свойства» → вкладка «Совмес­тимость» → секция «Параметры» → галка «Пере­опре­делите режим масштаби­рования высокого разрешения. Масштаби­рование выполняется» → пункт «Приложение» выпадающего списка.
Windows 7
Пункт «Свойства» → вкладка «Совместимость» → секция «Параметры» → галка «Отключить масштаби­рование изображения при высоком разрешении экрана».

Мышь

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

Режим администратора

Для масштаби­рования игр, запущенных от имени админис­тратора, IntegerScaler тоже следует запускать от имени администратора.

Aero / DWM composition в Windows 7

Для работы масштаби­рования в Windows 7 необходимо, чтобы был включён режим Aero (DWM composition) (встроенной в Windows программе «Экранная лупа» это тоже необходимо). IntegerScaler авто­мати­чески пытается включить Aero, если он выключен. Windows 8 и выше это не касается — там функция DWM composition включена всегда.

Вопросы и ответы (FAQ)

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

Скорее всего, разрешение вашего экрана недостаточно для цело­чис­ленного масштаби­рования при выбранном разрешении конкретной игры. Разрешение экрана по гори­зонтали и вертикали должно быть как минимум вдвое больше размеров окна игры. В противном случае макси­мальный цело­чис­ленный масштаб равен 1,0 (100%), что эквивалентно обычному центри­ро­ванию без масштаби­рования.

Так происходит, например, при размере окна 1280×720 (HD) и разрешении экрана 1920×1080 (Full HD), т. к. 1920 / 1280 = 1080 / 720 = 1,5. Подробнее — в ответе на вопрос в статье о цело­чис­ленном масштаби­ровании.

Если более полное исполь­зование площади экрана для вас важнее качества изображения и отсутствия искажений, можете попробовать включить исполь­зование дробных масштабных коэффи­циентов с помощью параметра командной строки -f (-fractional).

Безопасно ли использовать эту программу с играми с античит-защитой?

IntegerScaler не внедряет ничего в программный процесс игры, поэтому использование программы с играми, снабжёнными античит-защитой (anti­cheat), должно быть безопасно при условии, что античит-ПО не рас­сматривает слепо любую запущенную параллельно с игрой программу как относящуюся к читам.

Никто из пользователей IntegerScaler не сообщал о каких-либо проблемах с античит-системами с момента выпуска первой версии IntegerScaler в .

Открыт ли исходный код?
Нет. Исходный код программы закрыт, и его открытие не планируется. Вас может заинте­ресовать авторская библиотека IntegerScaling (C++/Rust/JS/PHP) для вычислений, связанных с цело­численным масштаби­рованием.
Будет ли поддержка Linux?

Крайне мало­вероятно. В IntegerScaler используется механизм масштаби­рования, встроенный в Windows и отсут­ствующий в Linux. Но цело­численное масштаби­рование в Linux возможно уже сейчас другими способами:

  • xrandr 1.5.1+ поддерживает масштаби­рование без размытия с помощью фильтра nearest, но некоторые полно­экранные игры усекаются;
  • аналогичную xrandr функцио­нальность поддерживает драйвер nVidia при исполь­зовании фильтров транс­формации;
  • программная прослойка Proton, используемая в функции Steam Play для запуска Windows-игр, поддерживает цело­численное масштаби­рование.