Quake II Текстуры (Графика) [PSX]

Автор SPOT, 12 апреля 2016, 10:10

« назад - далее »

TTEMMA

Цитата: SPOT от 14 апреля 2016, 16:53 

Цитата: TTEMMA от 14 апреля 2016, 16:48Тоже имеются маленькие продвижения :)
Круто, как завершишь, расскажешь всё подробно?
 
Да, конечно, надо только до конца разобраться с этой странной палитрой.

SPOT

Отчёт об продолжение эксперимента:
Chest судя по всему это кусок туловища (туши), по крайне мере наложив текстуры он стал на неё похож.
 
Думаю вы узнаете пистолет, который носит название Blaster G. Правда он отображается с артефактами.

TTEMMA

Так, чтобы не забыть, с 0x0C идёт странных 4 байта, так вот:

  •   1 байт - кол-во текстур с расширением OPT
  •   1 байт - кол-во текстур с расширением LBM
  •   1 байт - Неизвестно, похоже, как-то связано с палитрой
  •   1 байт - Неизвестно, похоже, как-то связано с палитрой
Буду копать дальше.
В Quake II на PC в текстурах использовался Mipmaps, но не думаю, что на PS1 была такая фишка, видео чип не мог такого вытянуть.

SPOT

TTEMMA, на название файлов (текстур) есть где-то указатель?

TTEMMA

Нет, они идут строго после блока с палитрой

SPOT

Цитата: TTEMMA от 14 апреля 2016, 20:04Нет, они идут строго после блока с палитрой
Будет время, отпиши по палитре, пожалуйста.

Diablo

Гляжу у вас тут полным ходом идёт разбор ресурсов игры Квейк 2 ;). Повезёт так вы и левел едитор забабахаете)) Да и свою 3D модель было бы неплохо для игры сделать. Какого-то монстра своего вставить))

SPOT

Скорее всего chars.lbm, Legal.lbm, HamLogo.lbm и frontend.lbm это названия исходных файлов. Формат *.lbm, судя по всему, был распространённым графическим форматом в то время.
Открыть его можно, например, с помощью Deluxe Paint ver.3.0. Интересным фактом является то, что в качестве примера в DP есть файл CELTIC.LBM. Эту картинку можно так же наблюдать и в демонстрационном роме 32X Sample Program - Celtic - PWM Test для SEGA 32X.

SPOT

Вкратце на примере расскажу, как заменить одну 3D модель на другую.
Будем заменять модель Q2LOGO находящеюся в файле COMMON.DAT по адресу Q2DATA -> LEVELS -> QFRONT -> COMMON.DAT.
 
Первая модель (данные модели) начинается с $33F0 и заканчивается примерно на $5DFC.
 
Это модель логотипа QII, увидеть её можно в главном меню. Она там вертится.
 
Подменять будем на модель Chest находящеюся в файле Q2DATA -> LEVELS -> BASE0 -> COMMON.DAT. Адрес $1320 по $1B44.
 
Копируем 28 байт начиная с $1334 по $1350 из модели Chest и вставляем в модель Q2LOGO в $3404.
 
Далее копируем 2020 байт начиная с $1360 по $1B44 из модели Chest и вставляем в модель Q2LOGO в $3430.
 
Всё, модель заменена.

SPOT

TTEMMA, Есть какой-то прогресс с разбором палитры?

TTEMMA

Пока что нет :(
 
Кстати, в LBM использовалось сжатие - RLE, это же сжатие мы наблюдаем и в Quake II для PlayStation 1.

SPOT

TTEMMA, скинь адрес палитры Legal.lbm, я тоже попробую разобраться.

PSXDev

Цитата: TTEMMA от 17 апреля 2016, 17:37Кстати, в LBM использовалось сжатие - RLE, это же сжатие мы наблюдаем и в Quake II для PlayStation 1.
Я бы не сказал, что во второй кваке мы наблюдаем стандартный RLE. Это скорее, что-то очень сильно на него похожее.

TTEMMA

Выкладываю исходный код того, что уже было показано:
https://yadi.sk/d/pwPCZ5bWr5zoM
 
Работает, к сожалению, не со всеми файлами. Надо разбираться глубже с палитрой.

SPOT

Цитата: TTEMMA от 18 апреля 2016, 14:10Выкладываю исходный код того, что уже было показано:
 
 
Работает, к сожалению, не со всеми файлами. Надо разбираться глубже с палитрой.
Так и не смог понять из исходника как рассчитывается палитра (с какого места начинается) и какого она формата. Не можешь в паре словах описать?

SPOT

Как я понимаю формат палитры TBGR / A1B5G5R5, а вот с какого место в файле начинается палитра картинки HamLogo.lbm, так и не понял.

SPOT

Всё отбой. Нашёл палитру для картинки HamLogo.lbm, она начинается с 0x8BE (Хотя точно сказать сложно т.к. работает и с 0x8С0).

SPOT

Отыскал палитру для HamLogo.lbm какая используется непосредственно в самой игре. Эта палитра хранится в файле Q2DATA -> LEVELS -> QLOGOS2 -> COMMON.DAT по адресу $17078. 

SPOT

Разобрался как высчитывается палитра в файле и ещё какие-то данные до неё. Судя по всему в файле SNDVRAM.DAT нет палитры для файлов типа *.opt. Позже поправлю документацию и дополню новой информацией.
 
В связи с этим обновил программу Q2 Texture Viever до версии 1.1.
 
В программу были внесены следующие изменения:
- Добавлено отображение разрешения (ширина и высота) выводимого изображения
- Вывод названия файлов в списке
- Отображение палитры для файлов расширения *.lbm
- Возможность отключить вывод палитры для файлов *.lbm
- Ещё кое-что по мелочи
 
Скачать Q2 Textures Viewer v1.1:
Q2 Textures Viewer v1.1.7z

SPOT