LINUX.ORG.RU

Субпиксельное... и полноэкранное!.. тёплый ламповый графониум для X11 (ШГ или нормально?)

 fsaa, , ,


1

1

Нет, это не сон.

Если что, на скриншоте — горизонтальный rgb. Если у вас другая субпиксельная раскладка — попробуйте повернуть на 90, 180 или 270 градусов.

На днях случайно заметил опцию в xrandr --scale. По сути, это делает виртуальный монитор с разрешением помноженным на физическое. И тут в голове завертелось.

Поставил свежий picom, у него как раз есть опция –window-shader-fg для экспериментального glx (в egl не завелось). Ставлю масштаб дисплея в 3x3. Этакий виртуальный HiDPI. К сожалению, билинейное работает максимум на 2x, начиная с 3x — скатывается в ближайшее. Впрочем, другого и не надо. Как я надеялся, ускорение не отваливается (прям как я мечтал — виртуальный HiDPI монитор, только тут — сразу из коробки).

Подсовываю Picom шейдер, который выполняет размытие — по сути, ту самую lcd фильтрацию, как у freetype. Хотя что-то не так. Если freetype lcdfilter=lcdlight (базовая коробка 3x, в теории — для субпиксельной больше не надо), то шрифты — чётче некуда, хотя с default тоже нормально. У меня — если с коробкой 3x3, то по чёткости недотягивает даже до default.
Или дотягивает? Непонятно.

Пока игрался, решил засунуть и другие фильтры:

  • коробка 3x3 в сером (при технике kawase — даже смысла в делении на поосевые этапы нет, и так и так 4 пиксела на один);
  • линейный шириной 5 и пара синусов (один с точечным сэмплированием на 5, другой — интегрированием, шириной 7).

Требуются OpenGL 3.3 + GLSL 3.3.

А ещё железо. Хорошее. Возможно игровое. У меня проц с Intel HD 3000, попробовал на нём glxgears. При нормальной работе без масштаба и в исходном размере 300x300 выдаёт 8000fps. После масшатаба (ещё без picom и вообще композитора) упал до 4000-5000, а как развернул… 15fps (steam чтоли поставить… дискретку ещё не запускал). Хотя тут ещё тротлинг из за перегрева. Если на холодном железе — 30fps может выдать, хотя со временем падает.

Picom — если без шейдера и размытия, то ещё нормально (тени почти не нагружают). С шейдером — смотря сколько окон в поле зрения. Вообще, он рассчитан на то, чтобы быть экранным, а не оконным. Там даже есть опция, чтобы пропускать 1/9 пикселей при одном проходе и 4/18 при двух. Сейчас — если её включить, то окна видны только если координаты кратны 3. В общем, вероятность видимости окна с этой опцией 1/9.

Ссылка на шейдер:
https://github.com/yshui/picom/wiki/Shader-Shop#fullscreen-antialiasing-subpixel-filtering-support

>>> Просмотр (1366x768, 264 Kb)



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 4)
Ответ на: комментарий от Roy-Batty

Что такое «выдохнуть в шрифты»?

А происходит то же, что во freetype / cleartype:

  1. Рендеринг в трёх-кратном рахрешении (9x мегапикселей). В направлении субпикселей - каждый пиксель соответствует субпикселю. В передикулярном - вынужденная мера, т.к. приложения понимают только общий масштаб / HiDPI, но не неквадратные пикселы.

2.1. Каждый (суб)пиксел раскидывается на все три (по одной оси), чтобы полностью вносить цвет. 2.2. Сдвиг каналов, чтобы субпикселы из одной суперпиксельной группы совместились в одном, который и попадёт на вывод после даунсайза методом nearest neighbor в Xrandr. P.S> У меня эти операции в обратном порядке для оптимизации (сначала сдвиг, а потом усреднение только нужным 3м, тогда как краевые - только доноры субпикселов).

В поперечном направлении - одно усреднение, как в обычном FSAA.

  1. Даунсайз методом ближ. соседа. После всех пунктов 2.x - центр каждой группы 3x3 содержит готовы пикселы, чтобы просто взять и положить в целевой растр. Чем и занимается Xrandr.
nick87720z
() автор топика
Ответ на: комментарий от mord0d

Конкретно к вероятности видимости 1/9 - play "аццкий хохот Пацюка из Ночи перед рождеством" }8<D=

nick87720z
() автор топика
Ответ на: комментарий от nick87720z

Be advised: it’s very power hungry, which can overheat system, turn PC into toster, scramble cocroaches… (you were warned).

Понял.

Roy-Batty
()
Последнее исправление: Roy-Batty (всего исправлений: 3)

Скрин для темы на picom wiki: https://imgur.com/ZDv5a49.png

Собственно ради чего он тут:

обоина, цветные растровые эмодзи, gnuplot через несглаженный x11 (вот она чёткость, к сожалению - у меня с артефактами). Подозреваю, наличие артефактов может зависеть от графической карты (доступной точности), и принудительный формат float не идёт на пользу.

Err, короче, это результат шейдера в 3x разрешении, прямо перед попаданием на Xrandr. Именно в таком виже у меня создаются скриншоты, а то, что выше - я просто грузил в gimp и там делал работу xrandr (размер изображения = «…/3», сглаживание = «none»). Вот только загрузить его на тот же imgur иначе, как в диалоге самого xfce4-screenshooter, не удаётся.

nick87720z
() автор топика
Последнее исправление: nick87720z (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

Неполным хинтингом.

Я про вот эту драму: https://www.opennet.ru/opennews/art.shtml?num=52922

Проблема вызвана тем, что библиотека Pango перешла от использования FreeType для получения информации о кёрнинге (расстоянии между глифами) шрифтов к HarfBuzz, а разработчики последнего приняли решение не поддерживать сглаживание шрифтов по методу «hintfull».

squareroot ★★★★
()
Ответ на: комментарий от squareroot

Странно, а мне показалось, hintfull сзлишне искажает геометрию, в отличие от hintslight. Что интересно, hintmedium в принципе не существует (или я не знаю - может просто забит для реализации, но руки не доходят).

nick87720z
() автор топика
Ответ на: комментарий от squareroot

Однако... Прям какой то мирвой заговор бюрократии на тему «как всё сломать и чтобы починить стало невозможно».

kirill_rrr ★★★★★
()
Ответ на: комментарий от mord0d

У меня от мыла аж голова заболела…

Вот да. Сидеть с такими шрифтами на компе врагу не посоветуешь. Тоже голова заболела от простого рассматривания скриншота.

Пердолинг портит здоровье, кто бы мог подумать.

EXL ★★★★★
()
Ответ на: комментарий от nick87720z

hintfull сзлишне искажает геометрию, в отличие от hintslight.

Все правильно, чем точнее подгоняешь под пиксели, тем сильнее придется исказить форму глифа

Что интересно, hintmedium в принципе не существует (или я не знаю - может просто забит для реализации, но руки не доходят).

Тоже не замечал никогда.

squareroot ★★★★
()
Ответ на: комментарий от EXL

У меня не заболела от скриншота, но думаю, если реально так работать, заболит. Это сложно объяснить, но ощущение будто не нормально за компом сидишь, а смотришь стрим на ютубе/твитче, которым управляешь.

CrX ★★★★★
()
Ответ на: комментарий от e1nste1n

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

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 1)

«Ш у тебя Г и Р растут из Ж и вообще, купи нормальный монитор»

Neresar ★★
()
Ответ на: комментарий от e1nste1n

Что тут не одни шрифты, а вся графика так обработана. Зря что-ли для целого монитора утраивается разрешение. :)

nick87720z
() автор топика

как помне, так вполне приятный скриншот. ШГ не вижу, очки протирал

SpaceRanger ★★★
()
Ответ на: комментарий от bookman900

Не помню, расчитана ли она на это. Там скрипт-установщик, поддерживающий кое-какие параметры (большинство в выводе –help, но там тоже кое-чего нет). И тема параметризована (цветовое разнообразие - из шаблона). Я ебилдом ставил.

nick87720z
() автор топика
Последнее исправление: nick87720z (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.