информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetСтрашный баг в WindowsSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
 20 лет Ubuntu 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / hardware
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
А почему собственно Pen? 16.01.06 14:44  Число просмотров: 2823
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
В GDI уже ДО ФИГА функций для работы с альфа каналами. А вот ты утверждаешь, что полноценной такая работа станет только после появления альфа-канала в COLORREF-е. Полупрозрачные pen-ы мне не особо и нужны, а вот полупрозрачные окна/иконки/прочие картинки - вполне нужное выразительное средство.

> И ещё... Всевозможные цветовые пространства, с которыми
> может работать видеокарта, является предметом гордости
> производителя... Всякие там RGB, YUY и проч, но про
> пространство типа RGBA не слышал...

А это скорее всего потому, что ВСЕМУ видеобуферу назначать альфаканал глупо. Просто потому, что когда картинка уже отображается - она уже сблендена как надо. А вот OpenGL/DirectX прибамбасы (многие из которых напрямую поддерживаются железом) сто пудов умеют давать канал прозрачности. Иначе не видели б мы в играх всяких силовых полей, стекол и прочей мути.

> ------------

> Да и вы что, Microsoft не знаете? Этож такой пеар!!! Они бы

А че ты меня на Вы? :-)

> вместо «Самая высокая (32 бита)» стали бы писать что-то
> вроде «RGB + Alpha (32-bit)»

И какой пеар? Юзеру непонятно название alpha, а вот цифирки чем_больше_тем_лучше - понятны. Изготовители винчестеров, процессоров (в частности AMD) это давно поняли. В микрософте тоже :-)

Вообще, согласен. 32-битный цвет в свойствах экрана - фиг его знает что (возникает вопрос ЧТО будет просвещаться под десктопом). Но то, что полноценный альфа-блендинг появится только в висте - все таки не совсем правда.
<hardware>
Pls, Объясните мне, ламеру, суть и идею 32-битного цвета в видеокартах? ;-) 16.01.06 07:13  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 16.01.06 11:38  Количество правок: 1
<"чистая" ссылка>
1) RGB. Три канала. по байту на канал — 24 бита.
2) 32 на 3 не делится ;-)
3) Виндовый GDI (к примеру), тоже получает значения цвета в виде RGB, 8 "лишних" бит не используются.

Итак, выставляя для рабочего стола глубину цвета в 32 бита, 1 байт в каждом пикселе экрана уходит в /dev/null ?

Всем заранее спасибо за ответы.
А кто рисует графику требующую больше 16 цветов перьями и... 16.01.06 21:07  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
> 1) RGB. Три канала. по байту на канал — 24 бита.
> 2) 32 на 3 не делится ;-)
> 3) Виндовый GDI (к примеру), тоже получает значения цвета в
> виде RGB, 8 "лишних" бит не используются.
>
> Итак, выставляя для рабочего стола глубину цвета в 32 бита,
> 1 байт в каждом пикселе экрана уходит в /dev/null ?
>
> Всем заранее спасибо за ответы.
А кто рисует графику требующую больше 16 цветов перьями и кистями?
Читаем например CreateDIBitmap. Поле biBitCount:
....
If the biCompression member of the BITMAPINFOHEADER is BI_BITFIELDS, the bmiColors member contains three DWORD color masks that specify the red, green, and blue components, respectively, of each pixel. Each DWORD in the bitmap array represents a single pixel.
Т.е. повторяется история с 256ю цветами по палитре.
...
Полагаю что если этот битмап вывести на DC выведется он именно в 32х битах. Те цветов на картинке будет 2^24й но отображены они будут согласно палитре.
Может эти линки прояснят ситуацию.. 16.01.06 10:56  
Автор: Garick <Yuriy> Статус: Elderman
<"чистая" ссылка>
http://www.ixbt.com/video/ramdac.html

http://www.ixbt.com/video/vidfaq.html

http://www.ixbt.com/video/videosystem.html

сам архив
http://www.ixbt.com/video-archive-9702.shtml
Интересно, зачем тебе это? 16.01.06 10:38  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
Интересно, зачем тебе это?
Если коротко, то чтоб быстрее работало.
В принципе в VESA стандарте все описано. Действительно бывают неиспользуемые биты. Два примера из частовстречающихся - один уже озвучен, второй - по 5 бит на компоненту в двухбайтовом слове. Там только один бит, шестнадцатый, "лишний". Такой режим в видеокарточках встречался. Хотя чаще можно встретить 5-6-5, то есть зеленому 6 бит отдается.
> 1) RGB. Три канала. по байту на канал — 24 бита.
Бывало и по три байта. Давно. Ради экономии видеопамяти. Когда ее по два-четыре мега на видеоплатах устанавливали. Попробуй пообрабатывать точки и поймешь, почему плюнули на все и четверть памяти лишней аллокировать больше стали, но неиспользуют.
> 2) 32 на 3 не делится ;-)
Слышал, но не видел, про режим 3х10бит (2 не используются).
> 3) Виндовый GDI (к примеру), тоже получает значения цвета в
> виде RGB, 8 "лишних" байт не используются.
Операционка не причем, это от железячников идет.
> Итак, выставляя для рабочего стола глубину цвета в 32 бита,
> 1 байт в каждом пикселе экрана уходит в /dev/null ?
Просто биты, которые в нем, не влияют на картинку именно в это режиме (8-8-8-8). Если переключится в режим (10-10-10-2) или те же восьмерки, но четырех компонентное цветообразование, то значение четвертого байта будет влиять на изображение.
> Всем заранее спасибо за ответы.
Затем, чтобы убедиться в том, что переключатель «Качество цветопередачи» в виндах на вкладке свойств видео с параметром «Самое высокое (32бита)» — фуфло. 16.01.06 14:14  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
А ведь действительно, фуфло. Хотя с другой стороны винда... 17.01.06 11:07  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
А ведь действительно, фуфло. Хотя с другой стороны винда честно кидает четырехбайтовое слово в видеобуфер. То что видеокарта только на три байта реагирует и программа RGB только в те же три байта раскладывает, это не проблема виндов как операционки.
Альфа канал в 2Д не нужен. Во первых, он абсолютно не нужен в видеобуфере, поскольку он нужен один на два буфера (видео и пользовательский/программный). Во вторых, если нужно вывести полупрозрачное изображение, то совсем необязательно коэффициент полупрозрачности припивывать каждому пикселю, а достаточно одного коэффициента/байта для всего изображения.
Никак не достаточно... Выдели штуки 3 иконки на рабочем столе в XP. Начни их перетаскивать. Красиво? Одним байтом там не обойтись. 17.01.06 12:13  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
Давно пора графический интерфейс в 3Д режим переделать... 17.01.06 12:31  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
Давно пора графический интерфейс в 3Д режим переделать. Сразу много "вкусностей" добавится. Плюс решится проблема многослойности окон. Есть два метода - либо окошко запоминает то, что было под ним, либо каждый раз перерисовывается все окна, начиная с самого "нижнего". В 3Д этим будет заведовать Z.
Layered windows (ws_ex_layered) 18.01.06 14:27  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
Существуют с 2000х виндов. Любое такое окно можно делать полупрозрачным + выбрать полностью прозрачный цвет на таком окне. Никаких проблем с перерисовкой. Поддерживается аппаратное ускорение видюх. Все что осталось сделать в висте (и что сделано многими сторонними утилитами) сделать в меню окна пункт - сменить степень прозрачности.
Говорят в висте так и есть. Кто ставил - поделитесь впечатлениями 17.01.06 12:42  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
Посмотрел на висту посвежее 19.01.06 18:07  
Автор: Killer{R} <Dmitry> Статус: Elderman
Отредактировано 19.01.06 18:25  Количество правок: 1
<"чистая" ссылка>
Win+Tab - трехмерный аналог Alt+Tab
Когда я учился в школе ходили слухи что 2000я будет полностью в 3D 18.01.06 14:32  
Автор: Killer{R} <Dmitry> Статус: Elderman
Отредактировано 18.01.06 16:00  Количество правок: 1
<"чистая" ссылка>
Оказалось трехмерным стал только курсор мышки. С тенью который.
Ставили у нас тут на виртуалку какуюто бету гдето месяц назад. Ну 2D стало красивее. 3D не заметил. Просто картинки стали "объемнее" но это просто картинки. + блендинг границ окон сделали. Кстати не удивлюсь если окажется что границы окна - просто другое окно созданное Theme Manager'ом просто с другой степеннью прозрачности. Жаль не проверил когда под рукой виста была..

Кстати ссылочка в тему: http://www.akihabaranews.com/en/news_10018.html
А зачем она, эта полупрозрачность. Дибилизм какой-то... 18.01.06 17:17  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
> окна - просто другое окно созданное Theme Manager'ом просто
> с другой степеннью прозрачности. Жаль не проверил когда под
> рукой виста была..
А зачем она, эта полупрозрачность. Дибилизм какой-то получится, особенно для людей с плохим зрением. Открыл одно окно, а через него другое просвечивает, а через другое и третье видно. Попробуйте наложить несколько текстов, а еще лучше картинок. Это все равно что слушать несколько песен одновременно. И еще, прикол будет сильный, когра тыкаешь мышом в пустой экран, а оказывается наткнулся на почти невидимую кнопку [Ок], подтверждающую форматирование диска.
Может быть один байт уходит на альфа-канал? 16.01.06 08:39  
Автор: ZloyShaman <ZloyShaman> Статус: Elderman
<"чистая" ссылка>
Голубая мечта KDE-шника, и вот, Vista тоже будет вся такая полупрозрачная :) 16.01.06 08:47  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 16.01.06 08:50  Количество правок: 2
<"чистая" ссылка>
В винде, по крайней мере, не нашёл никаких намёков на альфа-канал в структуре COLORREF.
Все таки альфа канал 16.01.06 12:07  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> В винде, по крайней мере, не нашёл никаких намёков на
> альфа-канал в структуре COLORREF.

Например макрос ImageList_Create принимает во флагах среди прочего две РАЗНЫХ константы: ILC_COLOR24 и ILC_COLOR32. Более того:

Using 32 Bit Anti-Aliased Icons
Windows XP imagelists, which are collections of images used with certain controls such as list-view controls, support the use of 32-bit anti-aliased icons and bitmaps. Color values use 24 bits, and 8 bits are used as an alpha channel on the icons. To create an imagelist that can handle a 32-bits-per-pixel (bpp) image, call the ImageList_Create function passing in an ILC_COLOR32 flag.

Это только пример (хотя иконка по сути - тот же DIB только с другим хедером)

32-битные BMP тоже используют один байт под альфа-канал.

В XP-шном (вообще то еще в 2000-ом) GDI тоже до фига функций для работы с альфа каналами (AlphaBlend() например), так что висту ставить для работы с альфой не обязательно :-)
Хм-м-м... Экспериментировал с полупрозрачностью... В 2000-й, как только эти фичи появились для окон... 16.01.06 12:15  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 16.01.06 12:28  Количество правок: 2
<"чистая" ссылка>
Интересно, доходит ли альфа до железяки? Мои эксперименты показывали жуткие тормоза с большими полупрозрачными элементами на экране на видеокарте NVIDIA-не-самая-слабая-для-того-времени.

Полупрозрачную картинку из ImageList'a можно вывести на любой DC... В том числе и на принтерный -))
Скорее всего с альфой ведутся напрочь софтовые игры GDI.

Приходим к выводу, что когда выбираем 32-битный цвет, на самом деле выбираем 24-битный.
Поскольку все функции GDI 24-битные по цвету, то винде нет особого смысла заюзывать экзотические режимы DAC 10-10-10-2 (про них постил Dmitry выше в этой ветке)...
Ничто не мешает в современную железяку эту возможность... 16.01.06 12:45  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
> Интересно, доходит ли альфа до железяки? Мои эксперименты
> показывали жуткие тормоза с большими полупрозрачными
> элементами на экране на видеокарте
> NVIDIA-не-самая-слабая-для-того-времени.

Ничто не мешает в современную железяку эту возможность впихнуть, даже если оно не очень то и надо. Само железо уже все умеет.

> Полупрозрачную картинку из ImageList'a можно вывести на
> любой DC... В том числе и на принтерный -))
> Скорее всего с альфой ведутся напрочь софтовые игры GDI.

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

> Приходим к выводу, что когда выбираем 32-битный цвет, на
> самом деле выбираем 24-битный.
> Поскольку все функции GDI 24-битные по цвету, то винде нет
> особого смысла заюзывать экзотические режимы DAC 10-10-10-2
> (про них постил Dmitry выше в этой ветке)...

А вот что делать, если производители начнут клепать достаточно профессиональные платы, поддерживающие режимы более, чем 8 бит на компоненту?...
В принципе динамический диапазон у человеческого глаза более 2,5. Фотолюбители, подтвердите, у фотопленки он около 3,5. Хотелось бы еще больше. Может не за горами 48 битный решим, как у сканеров - по 16 бит на компоненту.
Ага, я всегда балдею с 16-битных TIFF'ов — а как же мне увидеть всю прелесть вашей глубины? ;-) 16 бит на канал нуно для обработки фотошопом проблемные участки вытягивать... а после него уже нафиг-нафиг... 16.01.06 14:49  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
К стати есть еще одна проблема - слышал, что глубина цвета... 17.01.06 18:46  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
К стати есть еще одна проблема - слышал, что глубина цвета ограничена в ЖК мониторах. Раньше утверждалось, что в мониторах сами матрицы были по 6 бит на компоненту, сейчас будто на 8 бит вышли. Стало быть современный монитор более 24 бит уже не отобразит.
Я правда думаю что это чушь, поскольку цвет в ЖК мониторах не претерпевает цифровых преобразований в всем тракте.
1  |  2 >>  »  




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach