На главную | Регестрироваться | Вход Приветствую Вас Гость | RSS


[
Новые сообщения ·
Участники ·
Правила форума ·
Поиск ·
RSS ]

  • Страница 1 из 1
  • 1
Форум » МОДОСТРОЕНИЕ » МОДОСТРОЕНИЕ » ФОРМАТ ФАЙЛОВ ПОСТПРОЦЕССИНГА (ppe)
ФОРМАТ ФАЙЛОВ ПОСТПРОЦЕССИНГА (ppe)
aleks-dnkey1Дата: Воскресенье, 31.05.2009, 09:47 | Сообщение # 1
Свободный Админ
Группа: Администраторы
Сообщений: 38
Репутация: 1
Статус: Ушёл за Хабаром
Формат файлов постпроцессинга (ppe)
Вступление
Представляю на суд общественности результаты моих изысканий по формату файлов постпроцессинга (.ppe)
Нераскрытыми для меня осталось 6 переменных (переменные, которые я для себя назвал free, обязательно идут перед каждой триадой цепочек, управляющих цветом и 3 коэффициента, идут в каждом правиле после байта функции), но простенькие ppe-файлы можно делать и без них.
Вообще, оказалось, что возможности ppe были сильно мною переоценены (например тепловизор сделать с их помощью если и можно, то крайне проблематично). Основной недостаток - ppe можно применить только ко всему экрану, на отдельный обьект это не предусмотрено движком (даже стелс-режим кровососа реализуется подменой модели). Так что могу предложить только слегка улучшеный прибор ночного зрения.
Получилось так себе, просто убрал шумы, добавил яркости/контрастности, но зато теперь со включенным nv днем не побегаешь - засветка почти как на настоящем (как в кино показывают) и туман гораздо сильнее мешает, клубы тумана почти непрозрачны.
По поводу компилятора/декомпилятора, пришел к выводу, что фильтр постпроцесса изделие штучное, смысла в отдельных утилитах нет - я все анализировал, клепал, менял только с помощью блокнота и шестнадцатиричного редактора (кстати, выяснил, что при смене файла постпроцесса необязательно перезапускать сталкера и даже релоад делать ни к чему - изменения подхватываются при следующем выключении постпроцесса в данном случае nv).
При анализе ppe сильно помог тот факт, что постпроцесс существует в игре в текстовом и компилированом виде (кому интересно, копайте \gamedata\script\postprocess.script - полный разбор текстовых файлов написан обычным скриптом, там же, в самом конце функция main загружает погоду и файл постпроцессинга, сами файлы лежат \gamedata\config\scripts например proba.ltx). Компилированные ppe лежат в anims.

Практика
Итак, ppe-файл - это набор правил, как должен изменяться тот или иной параметр изображения во времени, всего этих параметров - 16 (названия взяты из текстовых версий, чтобы путаницы не было). В отличие от текстовой версии, цепочки должны идти только в этом порядке и их всегда должно быть только 16 (если игра вывалилась с сообщением в логах noise.grain cannot be zero, значит вы что-то пропустили).
Выбраная цветовая компонента умножается на коэффициент, то при параметре равным 1 чистый белый цвет останется белым, а чистый черный - черным, остальные преобретут компонентный оттенок.
· free1 - об этой переменной чуть ниже
· color_add_red
· color_add_green
· color_add_blue
Указанное значение принимается как база для данного цвета, то есть, если у данного пикселя значение цвета меньше указанного, то оно принимается как указанное, а если больше, то остается прежним. Следует заметить, что это единственный набор переменных, задирать значения в которых выше 0.5 не имеет смысла, 0.5 прибавляется где-то в дебрях движка.
· free2
· color_base_red
· color_base_green
· color_base_blue
Эта триада правил отвечает за вес цвета в сером/яркостном представлении и в обычном цветном режиме результат не виден. Но при увеличении правила gray становится ясно, что при например color_gray_red = -1 чисто красные компоненты становятся черными, 0 = остаются без изменений, 1 - чисто белыми:
· free3
· color_gray_red
· color_gray_green
· color_gray_blue
Переменная управляет величиной обратной насыщенности, то есть, чем больше gray (максимум +1) тем меньше насыщенность изображения:
· gray
Размытие изображения, при больших значениях (пробовал 25) начинаются косяки, портится нижняя часть, если долго стоять на месте:
· blur
Раздвоение изображения по горизонтали и вертикали соответственно. Значение указывается относительно экрана, то есть при 1 копии обьекта, первоначально находящегося в центре окажутся точно по краям:
· duality_h
· duality_v
· noise_intensity - интенсивность шума
· noise_granularity - размер зерна шума
· noise_fps - сколько раз в секунду шум должен пересчитываться
Файл всегда начинается с 01 00 00 00 - скорее всего это синатура, по которой движок определяет содержимое(кстати, у файлов anm, которые содержать анимацию камеры и похоже имеют ту же логику строения, что и ppe сигнатурой является 00 11 00 00 ).
Затем идет 4 байта неопределенной переменной, которую я для себя назвал free. Всего их 3. Эти переменные стоят только перед триадами, отвечающими за изменения цветов, обычно равны 7C 00 00 00, но есть небольшие вариации. Визуально определить, что меняется при изменении этой переменной я не смог, если кто совершит этот подвиг - вечная слава smile
Затем начинаются цепочки в перечисленном выше порядке. Цепочка начинается с 01 01 ХХ 00, где ХХ - число правил в данной цепочке. Если указано 01 01 00 00 (то есть цепочка с 0 правил, то данная цепочка в постпроцессинге не участвует и сразу после нее должна начинаться следующая цепочка). Основная ошибка, которую можно допустить - несоответствие реального числа правил с указаным в заголовке цепочки. Контроль, контроль, и еще раз контроль.
Каждая цепочка состоит из правил изменения переменной. Исходя из скрипта разбора текстовых версий можно предположить, что правил в цепочке не должно быть больше 16 (хотя возможно это только для текстовых).Совершенно необязательно, что этих правил в разных цепочках будет одинаковое количество или даже длиться они будут одинаковое время.
Правило содержит в себе всегда ровно 23 байта. Примерное описание -
9A 99 99 3E 00 00 A0 40 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
----------- ----------- -- ----- ----- ----- -----------------------
значение время ф k1 k2 k3
· значение - 4-байтная float переменная, обычно меняется от -1 до +1
· время - в секундах 4-байтная float переменная
· ф - функция, во всех ppe равна 00, но попробовал менять(не должна быть 04 - игра вылетает). 00,03 - синус, 01,05 - косинус, 02 - линейная, остальные значения игнорируются и правило перестает работать вообще.
· k1, k2, k3 - коэффициенты для функций вот с ними почти не разбирался, на линейную фунуцию изменений не выявил, на синус/косинус влияют очень сильно, но на поиск закономерности не хватило времени, по умолчанию равны 00 80 00 80 00 80
· остаток строки во всех файлах 00 80 00 80 00 80 00 80 - изменение визуально ничего не меняет, возможно зарезервировано для следующих версий.
Вот и все. Поле для работы как видите еще есть - коэффициенты k[1,2,3] и переменные free[1,2,3] - предлагаю общественности устроить мозговой штурм на них.
Напоследок мой файл ночного зрения с комментариями (для использования комменты удалить, шестнадцатиричный код загнать в WinHex и сохранить как anims\x.ppe(имя любое), и не забыть поправить config\misc\postprocess.ltx в нужной секции).
01 00 00 00 // сигнатура

// Цвета выкручиваем на максимум
7C 00 00 00 // free1
01 01 02 00 // color_add_red
00 00 80 3F 00 00 00 00 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
00 00 80 3F 00 00 00 41 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
01 01 02 00 // color_add_green
00 00 80 3F 00 00 00 00 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
00 00 80 3F 00 00 00 41 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
01 01 02 00 // color_add_blue
00 00 80 3F 00 00 00 00 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
00 00 80 3F 00 00 00 41 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80

// Не понимаю как, но эта триада подкрашивает уже переведенное в
// чб изображение, то есть делаем слегка синеватым результат, заодно
// огрубляем слегка красные или зеленые.

6C 10 00 00 // free2
01 01 02 00 // color_base_red
CD CC CC 3D 00 00 00 00 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
CD CC CC 3D 00 00 00 41 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
01 01 02 00 // color_base_green
CD CC CC 3D 00 00 00 00 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
CD CC CC 3D 00 00 00 41 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
01 01 02 00 // color_base_blue
CD CC 4C 3E 00 00 00 00 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
CD CC 4C 3E 00 00 00 41 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80

// В сером режиме все красные обьекты - белым, синие и зеленые - черным

7C 00 00 00 // free3
01 01 02 00 // color_gray_red
00 00 80 3F 00 00 00 00 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
00 00 80 3F 00 00 00 41 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
01 01 02 00 // color_gray_green
00 00 80 BF 00 00 00 00 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
00 00 80 BF 00 00 00 41 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
01 01 02 00 // color_gray_blue
00 00 80 BF 00 00 00 00 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
00 00 80 BF 00 00 00 41 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80

// Полностью черно-белое изображение с учетом правил color_gray_*
01 01 02 00 // gray
00 00 80 3F 00 00 00 00 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80
00 00 80 3F 00 00 00 41 00 00 80 00 80 00 80 00 80 00 80 00 80 00 80

01 01 00 00 // blur

// Двоения в глазах не будет

01 01 00 00 // duality_h
01 01 00 00 // duality_v

// Шума не будет
01 01 00 00 // noise_intensivity
01 01 00 00 // noise_granularity
01 01 00 00 // noise_fps

 
Форум » МОДОСТРОЕНИЕ » МОДОСТРОЕНИЕ » ФОРМАТ ФАЙЛОВ ПОСТПРОЦЕССИНГА (ppe)
  • Страница 1 из 1
  • 1
Поиск:
Статистика Top 5
Последние новости Самые отвечаемые темы Последние статьи Последние сообщения
Открытый плейтес... 17.07.2009
Сергей Григорови... 30.06.2009
"S.T.A.L.K.E.R.:... 11.06.2009
Рецензия S.T.A.L... 02.06.2009
Новые скриншоты ... 01.06.2009
Обсуждения 11
Пожелания и Пред... 7
Бар 6
Новости 3
Методы редактиро... 2
Тема Дата, Время Автор Раздел
А можно как иг... 22.09.2018, 03:18 emgobkokyl">emgobkokyl Другие игры
Методы редакти... 22.09.2018, 03:17 aleks-dnkey1">aleks-dnkey1 МОДОСТРОЕНИЕ
Новости 22.09.2018, 03:15 aleks-dnkey1">aleks-dnkey1 Call of Pripyat / Зов Припяти
Обсуждения 22.09.2018, 03:14 aleks-dnkey1">aleks-dnkey1 Call of Pripyat / Зов Припяти
sZone-online O... 10.04.2013, 04:29 stre_lokkkkk">stre_lokkkkk Другие игры
Шаблоны сталке... 11.02.2012, 20:45 Seo">Seo Моды на сталкера
Внешний вид са... 12.09.2009, 11:28 JOHN">JOHN Пожелания и Предложения
Создание новог... 12.09.2009, 11:11 aleks-dnkey1">aleks-dnkey1 МОДОСТРОЕНИЕ
Бар 12.09.2009, 10:52 aleks-dnkey1">aleks-dnkey1 Бар
Редактирование... 12.09.2009, 10:44 aleks-dnkey1">aleks-dnkey1 МОДОСТРОЕНИЕ
Новые пользователи Активные пользователи Лучшие комментаторы
sava636 0
hesheatshit 0
Voron4Reiha 0
emgobkokyl 4
molevlya 0
aleks-dnkey1 38
nose-anton 5
Санёк 5
JOHN 4
emgobkokyl 4
anton 4
БОВИЧ 4
stalker№1 3
Maskal 3
Klidrak 3
 КТО БЫЛ СЕГОДНЯ НА САЙТЕ


Зарег. на сайте
Всего: 1429
Новых за месяц: 1
Новых за неделю: 0
Новых вчера: 0
Новых сегодня: 0
Из них
Администраторов: 3
Модераторов: 1
Проверенных: 0
Обычных юзеров: 1425
Из них
Парней: 1353
Девушек: 76








Copyright MyCorp © 2020
Конструктор сайтов - uCoz