Альфа-канал

Поделись знанием:
Перейти к: навигация, поиск

В компьютерной графике альфа-композитинг (англ. Alpha compositing) обозначает комбинирование изображения с фоном с целью создания эффекта частичной прозрачности. Этот метод часто применяется для многопроходной обработки изображения с последующей комбинацией этих частей в единое двумерное результирующее изображение. Таким образом, альфа канал представляет собой пустое пространство, или просто прозрачность.

Термин альфа-канал (англ. Alpha channel)[1] впервые введён в оборот Алви Смитом в конце 1970-х и детально проработан в статье Томаса Портера и Тома Даффа 1984 года.[2]

В компьютерных играх, чтобы показать прозрачность того или иного объекта, используются текстуры с альфа-каналом.





Альфа-смешение

Альфа-смешение (англ. Alpha blending) - техника создания эффекта полупрозрачности путём объединения исходного пиксела с пикселом, уже находящимся во фрейм-буфере. Каждому пикселу обычно ставится в соответствие значения красного, зеленого и синего компонентов цвета (R,G,B). Если ставится в соответствие еще альфа-значение, то говорят что пикселы имеют альфа-канал (компонент A в схеме RGBA). Альфа-значение определяет степень прозрачности конкретного пиксела. Объекты могут иметь различную прозрачность, например 8-битный альфа-канал может представлять 256 уровней прозрачности от 0 (всё растровое изображение прозрачное) до 255 (всё растровое изображение непрозрачное).[3] Альфа-смешение есть процесс комбинирования двух объектов на экране с учетом их альфа-каналов. Альфа-смешение используется для: антиалиасинга, прозрачности, создания теней, зеркал, тумана.[4]

Расчет результирующего цвета

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

Result = Background * (1Alpha) + Foreground * Alpha

или (иная запись)

Result = Background + (ForegroundBackground) * Alpha

где

Background — яркость фонового пикселя,
Foreground — яркость накладываемого пикселя,
Alpha[0..1] — непрозрачность накладываемого пикселя.

Вторая приведённая запись отображает следующий смысл: значение Alpha указывает относительное положение на отрезке [Background..Foreground].

Использование в web-дизайне, поддержка в формате PNG и других

Альфа-канал, также известный как маска-канал, это просто способ объединить переходную прозрачность с изображением. Формат GIF поддерживает простую бинарную прозрачность (когда любой пиксель может быть либо полностью прозрачным, либо абсолютно непрозрачным). Формат PNG позволяет использовать 254 или 65534 уровня частичной прозрачности.

Все три типа PNG изображений («TrueColor», «GrayScale» и индексированная палитра) могут содержать альфа-информацию, хотя обычно она применяется лишь с «TrueColor» изображениями. Вместо того, чтобы сохранять три байта для каждого пикселя (красный, зелёный и синий, RGB), сохраняются четыре: красный, зелёный, синий и альфа, таким образом получается RGBA.

Такая переходная прозрачность позволяет создавать «спецэффекты», хорошо выглядящие на любом фоне. Например, эффекта фотовиньетки, для портрета, можно добиться путём установки полностью непрозрачной центральной области (то есть для лица и плеч), прозрачной остальной обстановки и с созданием плавного перехода между двумя этими различными областями. Соответственно, портрет будет плавно осветляться на белом фоне, и затемняться на чёрном. Ещё один спецэффект с прозрачностью — это отбрасывание тени.

Прозрачность наиболее важна для маленьких изображений, обычно используемых на web-страницах, вроде цветных (круглых) маркеров или причудливого текста. Альфа-смешивание позволяет использовать другой эффект, а именно сглаживание (anti-aliasing), создавая иллюзию гладких кривых на сетке прямоугольных пикселей, плавно изменяя их цвета, что позволяет добиться округлых изображений, хорошо отображаемых как на белом, так и на любом другом фоне. Таким образом одно и то же изображение может быть многократно использовано в нескольких местах без «призрачного» эффекта, свойственного GIF-изображениям.[5]

Windows XP поддерживает 32-битные значки (иконки) — 24-бита цвета RGB и 8-битный альфа канал. Это позволяет отображать значки со сглаженными (размытыми) краями и тенью, которые сочетаются с любым фоном.

CSS3 также, позволяет использовать цветовую модель RGBA и HSLA, где значение альфа принимает значения от 0 до 1 (рациональные числа). Также существует параметр прозрачности — Opacity[6]. Альфа-канал также используется в SVG.

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

Напишите отзыв о статье "Альфа-канал"

Примечания

  1. [msdn.microsoft.com/en-us/library/windows/desktop/hh308953%28v=vs.85%29.aspx MSDN. Direct3D 11. BC7 Format.]
  2. Thomas Porter and Tom Duff, Compositing Digital Images, Computer Graphics, 18(3), July 1984, 253—259. [dx.doi.org/10.1145/800031.808606 DOI:10.1145/800031.808606]
  3. [msdn.microsoft.com/en-us/library/windows/desktop/dd183352%28v=vs.85%29.aspx MSDN. Alpha blending]
  4. [www.xserver.ru/computer/graphic/obsh/2/2.shtml Альфа-смешение]
  5. [rus-linux.net/zen/png_feature/png_feature.html rus-linux.net] (лицензия GFDL)
  6. [htmlbook.ru/css/opacity htmlbook.ru — CSS — opacity]

Литература

  • Thomas Porter, Tom Duff: Compositing Digital Images. In SIGGRAPH 1984 Proceedings. S. 253–259. ACM, New York 1984, ISBN 0-89791-138-5 ([keithp.com/~keithp/porterduff/p253-porter.pdf PDF, 730 KB])
  • Alvy Ray Smith: Alpha and the History of Digital Compositing. Technical Memo 7, 1995 ([www.alvyray.com/memos/CG/Microsoft/7_alpha.pdf PDF, 40 KB])
  • Alvy Ray Smith: Digital Paint Systems: An Anecdotal and Historical Overview. IEEE Annals of the History of Computing 23, 2 (Apr–Jun 2001): 4–30, ISSN [www.sigla.ru/table.jsp?f=8&t=3&v0=1058-6180&f=1003&t=1&v1=&f=4&t=2&v2=&f=21&t=3&v3=&f=1016&t=3&v4=&f=1016&t=3&v5=&bf=4&b=&d=0&ys=&ye=&lng=&ft=&mt=&dt=&vol=&pt=&iss=&ps=&pe=&tr=&tro=&cc=UNION&i=1&v=tagged&s=0&ss=0&st=0&i18n=ru&rlf=&psz=20&bs=20&ce=hJfuypee8JzzufeGmImYYIpZKRJeeOeeWGJIZRrRRrdmtdeee88NJJJJpeeefTJ3peKJJ3UWWPtzzzzzzzzzzzzzzzzzbzzvzzpy5zzjzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzztzzzzzzzbzzzzzzzzzzzzzzzzzzzzzzzzzzzvzzzzzzyeyTjkDnyHzTuueKZePz9decyzzLzzzL*.c8.NzrGJJvufeeeeeJheeyzjeeeeJh*peeeeKJJJJJJJJJJmjHvOJJJJJJJJJfeeeieeeeSJJJJJSJJJ3TeIJJJJ3..E.UEAcyhxD.eeeeeuzzzLJJJJ5.e8JJJheeeeeeeeeeeeyeeK3JJJJJJJJ*s7defeeeeeeeeeeeeeeeeeeeeeeeeeSJJJJJJJJZIJJzzz1..6LJJJJJJtJJZ4....EK*&debug=false 1058-6180]

См. также

Отрывок, характеризующий Альфа-канал

В то же мгновение с разных сторон жалобно завыли женщины, испуганно заплакал ребенок и молча столпился народ с бледными лицами около кухарки. Из этой толпы слышнее всех слышались стоны и приговоры кухарки:
– Ой о ох, голубчики мои! Голубчики мои белые! Не дайте умереть! Голубчики мои белые!..
Через пять минут никого не оставалось на улице. Кухарку с бедром, разбитым гранатным осколком, снесли в кухню. Алпатыч, его кучер, Ферапонтова жена с детьми, дворник сидели в подвале, прислушиваясь. Гул орудий, свист снарядов и жалостный стон кухарки, преобладавший над всеми звуками, не умолкали ни на мгновение. Хозяйка то укачивала и уговаривала ребенка, то жалостным шепотом спрашивала у всех входивших в подвал, где был ее хозяин, оставшийся на улице. Вошедший в подвал лавочник сказал ей, что хозяин пошел с народом в собор, где поднимали смоленскую чудотворную икону.
К сумеркам канонада стала стихать. Алпатыч вышел из подвала и остановился в дверях. Прежде ясное вечера нее небо все было застлано дымом. И сквозь этот дым странно светил молодой, высоко стоящий серп месяца. После замолкшего прежнего страшного гула орудий над городом казалась тишина, прерываемая только как бы распространенным по всему городу шелестом шагов, стонов, дальних криков и треска пожаров. Стоны кухарки теперь затихли. С двух сторон поднимались и расходились черные клубы дыма от пожаров. На улице не рядами, а как муравьи из разоренной кочки, в разных мундирах и в разных направлениях, проходили и пробегали солдаты. В глазах Алпатыча несколько из них забежали на двор Ферапонтова. Алпатыч вышел к воротам. Какой то полк, теснясь и спеша, запрудил улицу, идя назад.
– Сдают город, уезжайте, уезжайте, – сказал ему заметивший его фигуру офицер и тут же обратился с криком к солдатам:
– Я вам дам по дворам бегать! – крикнул он.
Алпатыч вернулся в избу и, кликнув кучера, велел ему выезжать. Вслед за Алпатычем и за кучером вышли и все домочадцы Ферапонтова. Увидав дым и даже огни пожаров, видневшиеся теперь в начинавшихся сумерках, бабы, до тех пор молчавшие, вдруг заголосили, глядя на пожары. Как бы вторя им, послышались такие же плачи на других концах улицы. Алпатыч с кучером трясущимися руками расправлял запутавшиеся вожжи и постромки лошадей под навесом.
Когда Алпатыч выезжал из ворот, он увидал, как в отпертой лавке Ферапонтова человек десять солдат с громким говором насыпали мешки и ранцы пшеничной мукой и подсолнухами. В то же время, возвращаясь с улицы в лавку, вошел Ферапонтов. Увидав солдат, он хотел крикнуть что то, но вдруг остановился и, схватившись за волоса, захохотал рыдающим хохотом.
– Тащи всё, ребята! Не доставайся дьяволам! – закричал он, сам хватая мешки и выкидывая их на улицу. Некоторые солдаты, испугавшись, выбежали, некоторые продолжали насыпать. Увидав Алпатыча, Ферапонтов обратился к нему.
– Решилась! Расея! – крикнул он. – Алпатыч! решилась! Сам запалю. Решилась… – Ферапонтов побежал на двор.
По улице, запружая ее всю, непрерывно шли солдаты, так что Алпатыч не мог проехать и должен был дожидаться. Хозяйка Ферапонтова с детьми сидела также на телеге, ожидая того, чтобы можно было выехать.
Была уже совсем ночь. На небе были звезды и светился изредка застилаемый дымом молодой месяц. На спуске к Днепру повозки Алпатыча и хозяйки, медленно двигавшиеся в рядах солдат и других экипажей, должны были остановиться. Недалеко от перекрестка, у которого остановились повозки, в переулке, горели дом и лавки. Пожар уже догорал. Пламя то замирало и терялось в черном дыме, то вдруг вспыхивало ярко, до странности отчетливо освещая лица столпившихся людей, стоявших на перекрестке. Перед пожаром мелькали черные фигуры людей, и из за неумолкаемого треска огня слышались говор и крики. Алпатыч, слезший с повозки, видя, что повозку его еще не скоро пропустят, повернулся в переулок посмотреть пожар. Солдаты шныряли беспрестанно взад и вперед мимо пожара, и Алпатыч видел, как два солдата и с ними какой то человек во фризовой шинели тащили из пожара через улицу на соседний двор горевшие бревна; другие несли охапки сена.
Алпатыч подошел к большой толпе людей, стоявших против горевшего полным огнем высокого амбара. Стены были все в огне, задняя завалилась, крыша тесовая обрушилась, балки пылали. Очевидно, толпа ожидала той минуты, когда завалится крыша. Этого же ожидал Алпатыч.
– Алпатыч! – вдруг окликнул старика чей то знакомый голос.
– Батюшка, ваше сиятельство, – отвечал Алпатыч, мгновенно узнав голос своего молодого князя.
Князь Андрей, в плаще, верхом на вороной лошади, стоял за толпой и смотрел на Алпатыча.
– Ты как здесь? – спросил он.
– Ваше… ваше сиятельство, – проговорил Алпатыч и зарыдал… – Ваше, ваше… или уж пропали мы? Отец…
– Как ты здесь? – повторил князь Андрей.
Пламя ярко вспыхнуло в эту минуту и осветило Алпатычу бледное и изнуренное лицо его молодого барина. Алпатыч рассказал, как он был послан и как насилу мог уехать.
– Что же, ваше сиятельство, или мы пропали? – спросил он опять.
Князь Андрей, не отвечая, достал записную книжку и, приподняв колено, стал писать карандашом на вырванном листе. Он писал сестре: