Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | | | |
Говорят в висте так и есть. Кто ставил - поделитесь впечатлениями 17.01.06 12:42 Число просмотров: 2740
Автор: amirul <Serge> Статус: The Elderman
|
|
<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: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 бит уже не отобразит.
Я правда думаю что это чушь, поскольку цвет в ЖК мониторах не претерпевает цифровых преобразований в всем тракте.
|
|
|