Уже неделю ковыряю формат уровней для PSX версии. Весят они почти в два раза меньше, чем аналогичные для PC версии (1.5 против 2.4 иб).
Текстуры (256х256 * 13) 4-битные, но палитр 512 каждая из которых хранит по 16 цветов (16 битных). В итоге получаем возможность закодировать до 28к уникальных цветов, когда как PC версия имела одну палитру на 256 18-битных цветов. Но для современных подходов в графике сделано это весьма неудобно, т.к. каждый фейс модели может ссылаться на любой участок текстуры и любую палитру (коих 512).
Вторая занимательная вещь, то что звук закодирован в чём-то типа 4-битного ADPCM. С ним мне ещё предстоит разобраться, аналогичный декодер уже писал "впрок" для проигрывания саундтреков из TR3, но пока не ясно насколько он совместим с PSX кодированием аудио (Sony vag).
Ну и ещё одно наблюдение, первая сонька имела всего 1.5 мб оперативной памяти. Если увязать этот факт с размером файла-уровня и большими зонами заполненными нулями в нём, можно предположить, что уровень целиком грузился в оперативную память, а внутри его свободных участков формировались различные run-time переменные.
А чего это она вся в сеточку?
Darthman
bias для теней не выставлен
на playstation 1 игра лучше всего выглядит. На пк визуально видно что игра более серая.
XProger
> Ну и ещё одно наблюдение, первая сонька имела всего 1.5 мб оперативной памяти.
> Если увязать этот факт с размером файла-уровня и большими зонами заполненными
> нулями в нём, можно предположить, что уровень целиком грузился в оперативную
> память, а внутри его свободных участков формировались различные run-time
> переменные.
Странно. Им проще было хранить кучу нулей на диске, вместо того, чтобы усложнять загрузчик уровня, который бы раскладывал его по памяти, как надо?
Написал декодер аудиоформата для PSX версии, и обнаружил, что звук там действительно чище, даже несмотря на то, что PSX версия имеет вдвое меньшую частоту 11025 против 22050 Hz на PC. Выгрузил дампы звуков, 068.wav очень наглядно демонстрирует разницу.
Обновил демку теперь используется PSX формат уровней. Добавлена поддержка мягких теней от ближайшего источника света.
XProger
Поиграл немного.
Какое-то управление странное: стрелять можно через Ctrl (мышью не получилось), целится Лариса сама, и толком мне наводится на целю не удалось. В узком коридоре летучие мыши вогнали наполовину в стену, вырваться от них я смог только прыжками.
В оригинале всё также плохо было, или это косяк твоего движка?
Panzerschrek[CN]
> В оригинале всё также плохо было, или это косяк твоего движка?
В оригинале она тоже сама целилась
Продолжаю пилить графические фитчи. Теперь настала очередь расчёта Ambient Cube, для получение более плавного и точного изменения фонового света.
В направлении каждой грани куба рендерится уровень в текстуру 64х64 затем даунсемплится (64 -> 16 -> 4 -> 1), после чего полученный усреднённый цвет используется как величина фонового света в данном направлении. Выборка и интерполяция цветов происходит по нормали. Вот видео и скриншот того, что получается
может это дело лучше запечь?
E-Cone
В игру, которая на первом пне еще бегала, наверное, можно добавить пару-тройку реалтайм технологий.
E-Cone
Конечно, как раз кешированием занят. Клетки уровня будут запекаться при необходимости по несколько штук за кадр, чтобы сильно по фпс не бить.
Вот ещё парочка скринов с более заметным color reflection
А я правильно понял, что полученный кубик из 6 пикселей используется только для ambient освещения главного игрока?