Войти
ПроектыФорумОцените

OpenLara - движок классического Tomb Raider (alpha 3) (3 стр)

Страницы: 1 2 3 4 531 Следующая »
#30
18:11, 29 ноя. 2016

Сомневаюсь что получится доделать этот проект так как надо много времени.


#31
18:47, 29 ноя. 2016

Andrey
> да забей ты на это и так много работы проделано.

я не с целью придраться, я просто на C# привык класс в одном файле описывать, а в C++ меня напрягает между файлами скакать, думал вот попробовать такой подход и узнаю о подводных камнях

#32
(Правка: 4:31) 4:13, 7 дек. 2016

Уже неделю ковыряю формат уровней для 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 переменные.
Изображение

#33
14:22, 7 дек. 2016

А чего это она вся в сеточку?

#34
14:43, 7 дек. 2016

Darthman
bias для теней не выставлен

#35
15:20, 7 дек. 2016

на playstation 1 игра лучше всего выглядит. На пк визуально видно что игра более серая.

#36
16:34, 7 дек. 2016

XProger
> Ну и ещё одно наблюдение, первая сонька имела всего 1.5 мб оперативной памяти.
> Если увязать этот факт с размером файла-уровня и большими зонами заполненными
> нулями в нём, можно предположить, что уровень целиком грузился в оперативную
> память, а внутри его свободных участков формировались различные run-time
> переменные.
Странно. Им проще было хранить кучу нулей на диске, вместо того, чтобы усложнять загрузчик уровня, который бы раскладывал его по памяти, как надо?

#37
16:42, 7 дек. 2016

> Странно. Им проще было хранить кучу нулей на диске, вместо того, чтобы усложнять загрузчик уровня, который бы раскладывал его по памяти, как надо?

может оно сжимается/распаковывается на лету? (просто предположение, я не в курсе)

#38
4:40, 11 дек. 2016

Написал декодер аудиоформата для PSX версии, и обнаружил, что звук там действительно чище, даже несмотря на то, что PSX версия имеет вдвое меньшую частоту 11025 против 22050 Hz на PC. Выгрузил дампы звуков, 068.wav очень наглядно демонстрирует разницу.

#39
11:21, 11 дек. 2016

Andrey
> Раскопан/изучен/дизассемблирован оригинальный старый движок

я так и не понял, какая именно версия ковыряется, пк или ps?

#40
11:28, 11 дек. 2016

XProger
> большими зонами заполненными нулями в нём, можно предположить, что уровень
> целиком грузился в оперативную память, а внутри его свободных участков
> формировались различные run-time переменные.

а можете это пояснить? спасибо
что значит заполнены нулями и зачем,свободные участки. а то интересно но вообще не понятно)

#41
(Правка: 13:35) 13:34, 19 дек. 2016

Обновил демку теперь используется PSX формат уровней. Добавлена поддержка мягких теней от ближайшего источника света.

#42
19:29, 19 дек. 2016

XProger
Поиграл немного.
Какое-то управление странное: стрелять можно через Ctrl (мышью не получилось), целится Лариса сама, и толком мне наводится на целю не удалось. В узком коридоре летучие мыши вогнали наполовину в стену, вырваться от них я смог только прыжками.

В оригинале всё также плохо было, или это косяк твоего движка?

#43
20:57, 19 дек. 2016

Panzerschrek[CN]
> В оригинале всё также плохо было, или это косяк твоего движка?
В оригинале она тоже сама целилась

#44
(Правка: 21 дек. 2016, 2:42) 22:23, 20 дек. 2016

Продолжаю пилить графические фитчи. Теперь настала очередь расчёта Ambient Cube, для получение более плавного и точного изменения фонового света.
В направлении каждой грани куба рендерится уровень в текстуру 64х64 затем даунсемплится (64 -> 16 -> 4 -> 1), после чего полученный усреднённый цвет используется как величина фонового света в данном направлении. Выборка и интерполяция цветов происходит по нормали. Вот видео и скриншот того, что получается
Изображение

Страницы: 1 2 3 4 531 Следующая »
ПроектыФорумОцените