Полная Версия: Как определить какой FRM требует особой палитры?
mick
Сообщение было выделено из темы Fallout в браузере.

http://mickfallout.ru/f2/game.swf
делаю потихоньку =)
Буду очень благодарен, если кто-нибудь подскажет по палитрам Fallout'a. Мне не понятно как определить какой FRM требует особой палитры, и как собственно палитру считывать — с какого смещения начинается список цветов?...
Материалы с TeamX читал, не помогло =(
The Master
QUOTE
Мне не понятно как определить какой FRM требует особой палитры
Если в ресурсах помимо картинки лежит pal-файл с аналогичным названием, то картинка особая. Их относительно немного — помощь игроку(helpscreen по F1), картинка Главного меню, финальные слайды...
Остальная графика использует color.pal, лежащий в корне master.dat

Насчёт остального вот инфа:
QUOTE
Я это не проверял, но судя по коду в Mapper2.exe и Fallout2.exe в color.pal по смещению 0х300 идет таблица, которая используется для преобразования RGB-значения в индекс в палитре. Размер этой таблицы — 32768 байт. Перед использованием 24-битный RGB преобразуется в 15 битный по следующему правилу — из 8-битной компоненты цвета берутся старшие 5 бит, а уж из них собирается 15 битная.
Это 15-битное число является индексом в эту таблицу преобразования. Ну а в таблице в этом месте находится индекс в палитру.

Настоящие, непреобразованные для заданной яркости цвета Фолла ты можешь увидеть внутри Фолла, выставив минимальную яркость в настройках.

Таблица "цвет-индекс" в color.pal также одна. Но она приводит ЛЮБОЙ заданный цвет к цветам базовой палитры.  Алгоритм следующий
wFalloutRGB = (((Color.m_Red   >> 3) & 0x7F) « 10) |
  (((Color.m_Green » 3) & 0x7F) «  5) |
  ((Color.m_Blue  » 3) & 0x7F);

ColorIndex = ((BYTE*)g_FalloutPal)[0x300 + wFalloutRGB];

©Anchorite

Саму палитру можно достать из Фола(master.dat\color.pal), просмотрщик есть на TeamX в разделе «Файлы». У меня был адаптированный для Фотошопа или GIMP файл, но надо далеко и долго искать.
UPD: вроде нашёл, вроде оно. Не помню, где взял и зачем оно мне было надо :)
http://rghost.ru/39736608
mick
Спасибо. GIMP-палитру я и использовал раньше, т.к. не знал как её получить самому) Вопрос в том как именно её получить из файла color.pal? Почти правильно получается если взять первые 256 тройки байт из файла. Каждая такая тройка — RGB представление цвета. Домножив цвета на четыре получаем почти в точности GIMP-палитру. Но остается два момента:
1) в GIMP-палитре первые четыре цвета какие-то странные(черный, темно-красный, зеленый, бледно-салатовый) а в файле первые четыре цвета это градации светло-серого.
2) в GIMP-палитре цвета более блеклые и более светлые видимо.
Вот сделал наглядное сравнение. Верхняя строка — GIMP-палитра, нижняя — создана из троек байт файла color.pal.
The Master
Как выяснилось, формула не совсем правильная, но близка к истине.
Вот комментарий Hexxx'а:
QUOTE
Формула похожа на правду, но не сходится. Берем стандартный фолаутовский зеленый:
3CF800
По формуле:
wFalloutRGB = (((0x3C >> 3) & 0x7F) « 10) | (((0xF8 » 3) & 0x7F) « 5) | ((0 » 3) & 0x7F);
Считаем:
wFalloutRGB = (0x1C00 | 0x3E0 | 0x0) = 0x1FE0

В движке же используется wFalloutRGB = 0x3E0

QUOTE
Вопрос в том как именно её получить из файла color.pal?

http://teamx.ru/site_arc/utils/PALView.rar
Позволяет просматривать color.pal

http://teamx.ru/site_arc/docs/index.html
Раздел «Исследования движка», файл «Цветопередача в Fallout»

Больше пока ничем помочь не могу, нужно призывать Старейшин.
Wasteland Ghost
mick, изучай архивы TeamX. С палитрой от и до разобрался Anchorite, на сайте есть его дока и программа работы с палитрой с исходниками.
Ваш ответ: