Субпиксельная растеризация на непрозрачных фонах

Я работаю над субпиксельным растеризатором. Вывод должен быть представлен на непрозрачном растровом изображении. Я дошел до того, что правильно отображать текст белым на черном (потому что я могу игнорировать содержимое растрового изображения).

Проблема в смешивании. Каждый фактически визуализированный пиксель также влияет на уровни интенсивности его соседей из-за техники фильтрации нижних частот (я использую 5-отводную пихту - 1/9, 2/9, 3/9 и т. Д.), А также альфа-уровни пиксель для визуализации. Затем этот результат должен быть округлен на целевом изображении, где и возникает проблема...

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

Как это должно быть сделано? Единственное решение, которое я могу себе представить, будет работать, это рендеринг в отдельное изображение с альфа-каналами для каждого цвета, затем какой-то сложный алгоритм наложения и, наконец, возможность его подстановки к месту назначения. Как-то.

Тем не менее, я не смог найти никаких ресурсов о том, как на самом деле это сделать - кроме базовых концепций рендеринга субпикселей lcd и красивых изображений крупным планом пикселей монитора. Если кто-нибудь может помочь мне по пути, я был бы очень благодарен.

1 ответ

Сегодня вечером я проснулся и больше не мог заснуть. Я не мог позволить потратить всю эту энергию мозга и наткнулся на точно такую ​​же проблему.

Я придумал два разных решения, оба без проверки.

  • Вы должны использовать 3-канальную альфа-маску, по одной для каждого субпикселя, смешивая каждый цвет со своей собственной альфа.
  • Вы можете использовать цветовые каналы каждый как альфа-маску, если вы визуализируете только серый / черно-белый шрифт (1-color_value, если вы рисуете темный текст на светлом фоне), снова применяя каждый цвет по отдельности. Само значение цвета должно рассматриваться как 1 в этом случае.

Надеюсь, это немного поможет, я заполнил этим ~2 часа бессонницы.

Январь

Другие вопросы по тегам