Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2003.09.11;
Скачать: [xml.tar.bz2];

Вниз

Палитра в DirectDraw   Найти похожие ветки 

 
Kobik   (2003-03-02 11:41) [0]

У меня вот какая проблема. Делаю я игру с разрешением 800x600x8. Поверхность заполняется методом Lock. Обычно все хорошо и без инициализации IDirectDrawPalette, но если например паралельно включен Winamp, то все цвета сбиваются.
Пробовал я эту самую палитру загружать из bmp, но тоже ничего хорошего не вышло (песок розовый, деревья зеленый и т.д.)
Подскажите, как вообще с этой палитрой работать и что она собственно говоря дает,


 
Сергей Чурсин   (2003-03-02 17:55) [1]

x8. Палитра - это какие собственно цвета использовать, то есть соответсвие каждой позиции в твоей 256-цветной к R-G-B. Думаю, не гемороися ты с 256colors, а делай в 800x600x24. :)

"инициализации IDirectDrawPalette
загружать из bmp,
(песок розовый, деревья зеленый "
тогда уж - у тебя BMP 256цветные ? Все с одинаковой палитрой ?






 
Kobik   (2003-03-02 19:01) [2]

Все картинки у меня хранятся в файлах (file of byte). При создании этих файлов и при выводе этих картинок на поверхность используется одна палитра (как я понял с одной поверхностью можно связать только одну палитру). Но цвета совсем не те.

На 24 я не перехожу, т.к. для этой игры подходит и 8, а вот разница в размере файлов с картинками весьма ощутима.

Что мне делать?




 
Сергей Чурсин   (2003-03-02 20:54) [3]

Kobik... file of byte - ието что ? Что представляет твой формат и чем ты его заполняешь ? Очевидно, все равно спрайты ты рисовал где-то ? и что дальше ?
BMP которые ты конвертнул в свои file of byte были 256 colors все с одинаковой палитрой ? и ее ты и используешь ?


"При создании этих файлов и при выводе этих картинок на поверхность используется одна палитра (как я понял с одной поверхностью можно связать только одну палитру). "
Это все твои file of byte должны быть в одной палитре изготовлены - еще в BMP...

"24 я не перехожу, т.к. для этой игры подходит и 8" гимор на задницу.


 
Omar2002   (2003-03-06 16:35) [4]

Ну чего Санек мучаешься с палитрой, да?


 
Kobik   (2003-03-06 19:44) [5]

Ага, Omar-ыч. Так вот значит 4-е сообщение?...

Придется все-таки перейти на 16, там нет таких глюков.


 
cyborg   (2003-03-06 21:14) [6]

Kobik © сейчас задался целью для себя на будущее сделать конвертер из ВМР в 16 битовый формат данных формата 565, в общем там ничего сложного нет, уже даже конвертит, хотя удобства ещё не сделал и пока только 24 битовые обрабатывает. Интересно то, что 16 битовые данные картинки лучше сжимаются, RAR например до 15 раз сжимает такие данные, ZIP около 8. Эти данные можно сразу копировать на 16 битовую поверхность.

Если кому интересно потом выложу как сделаю.


 
Kobik   (2003-03-07 19:51) [7]

Дело в том, что я уже тоже написал 2 такие программы (а как же без них???). Одна конвертирует bmp-шки в 8 бит, другая в 16. Особых трудностей при этом небыло. Все проблемы начинаются при выводе 8 битных (цвета то те, то не те).

Спасибо всем за советы. Черт с ними с 8 битами.
Теперь только 16.


 
Сергей Чурсин   (2003-03-08 20:39) [8]

Так я же говорю - то что ты конвертируешь (bmp) -должно быть изначально сделано в режиме 256 (в dos-PainBrush, к примеру) - и иметь общую подогнанную для всех картинок палитру. То есть все bmp и должны быть нарисованы в этой палитре с использование только 256 выбранных (назначенных тобой) цветов.
(В принципе, такое может делать и конвертор - но он должен быть "интелектуальным", то есть сам подбирать к rgb-пикселю соответсвующий цвет в основной (единственной) 256colors палитре, и все равно вручную лучше будет конечно :) )

Палитра.
Как это работает. В 8бит режиме на цветовую точку (pixel) приходится 1 байт, содержащий номер цвета в палитре (в отличие от 24, там три байта содержат R-G-B). Соответсвенно, если ты сделал bmp 1 - в одной палитре (или там в rgb) и использовал bmp1-палитру для экранной, а 2ой - в другой, то при выводе на экран 2ой - будут "неправильные" цвета. Поскольку у другой - палитра изначально не та. В картинке же содержимое пикселя-байта (в 8бит) означает - просто номер цвета в палитре.

Найди Ла Мот "Секреты программирования игр" - там это хорошо описано...





Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2003.09.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.111 c
1-33583
Pirat
2003-08-28 13:57
2003.09.11
мерцание TListView при скроллировании


3-33491
stud
2003-08-19 11:53
2003.09.11
роли interbase


1-33676
tvic
2003-08-29 15:44
2003.09.11
Произвольная кнопка


1-33607
som
2003-09-01 13:27
2003.09.11
Как программно создать ярлык?


14-33722
sasami737
2003-08-21 17:57
2003.09.11
Как сделать критический процесс ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский