|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Alex Astafiev 2:5000/228.16 10 Jul 2001 15:10:10 To : Sergey Andrianov Subject : 24bit -> 256 color --------------------------------------------------------------------------------
[]
AM>> вывести на экран в видеомоде с палитрой в 256 цветов. Или
AM>> сконвертить в файл с палитрой. Гголову ломал долго, так и не
AM>> придумал как, чтобы быстро работало.
SA> Чтобы быстро - как раз элементарно.
SA> 1. Устанавливаешь палитру, которая... впрочем, думаю, из
SA> дальнейшего уже очевидно, как ее строить.
SA> 2. Из зеленого цвета берешь три старших бита и записываешь их в
SA> биты D7-D5.
SA> 3. Из красного берешь три старших бита и записываешь их в D4-D2.
SA> 4. Из синего - два в D1-D0.
SA> 5. Записываешь байт в текущую точку на экране.
SA> А вот чтобы _качественно_, тут следует и репу почесать, только
SA> заведомо, что быстро не получится.
[]
Выполнять pattern dithering тоже не сильно долго. ;)
Суть в том что у тебя есть таблица из 0..64 паттернов. Паттерн - блок 8x8 точек.
Когда ты выполняешь trunc цвета (как это описано сверху), то старшие биты aka
уходят в цвет, а младшие биты aka используешь как индекс паттерна. Т.е. паттерн
от 0..64 дает тебе как бы дополнительные уровни яркости для смешения цвета.
Реально таблица петтернов занимает 8*65 байт.
{обьяснение несколько сумбурное, но, надеюсь, понятно о чем я}
Паттерны эти лучше всего спросить в ZX.SPECTRUM у любого демомейкера, кто
chunks на спектруме делал. Они в последнее время только это и делают :))))
Либо сидеть с Softice над Windows...
Что касаемо скорости - суди сам, Sinclair ZX Spectrum делает это в real-time.
Windows это тоже делает в realtime, если экран физически 256 цветов.
--- Alex Raider / Flash inc.
* Origin: Alex Raider/ Flash inc. 1992-2001 (2:5000/228.16)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/174643b4b1d9a.html, оценка из 5, голосов 10
|