From a8faba8aad441e87f8a8b94c148c01f9c075d621 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sun, 11 Oct 2026 13:12:50 +0400 Subject: feat: complete map viewer scene and static CTL pose preview Complete the interactive mission viewer with environment rendering, audio events, dynamic shadows, free-flight camera controls, and per-component CTL pose sampling. --- README.md | 51 ++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 9 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 02d4420..1ec8d08 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,12 @@ # FParkan Открытый движок *Паркан: Железная стратегия* на Rust и Vulkan. Он читает -ресурсы установленной оригинальной игры. Сейчас приложение загружает миссию -и показывает её ландшафт и модели в статическом окне Vulkan. +ресурсы установленной оригинальной игры. Сейчас приложение показывает +интерактивную сцену выбранной карты: terrain, все доступные MSH-компоненты +объектов, материалы, динамические тени, небо, погоду, lightning FX и звуковые +события. Это просмотр карты с полной графической сценой; прохождение миссии и +игровое поведение юнитов пока не запускаются, а модели показываются в статической +позе, заданной сохранёнными настройками узлов прототипа. ## Запуск @@ -10,16 +14,45 @@ репозиторий не входят. ```powershell -cargo run -p fparkan-game -- ` +cargo run --release -p fparkan-game -- ` --root 'C:\GOG Games\Parkan - Iron Strategy' ` - --mission 'MISSIONS\Autodemo.00\data.tma' --frames 240 + --mission 'MISSIONS\Autodemo.00\data.tma' ``` -`--frames` задаёт число кадров. `--preview-roots N` ограничивает число объектов, -`--legacy-camera-capture` читает сохранённую матрицу камеры, -`--static-animation-frame` и `--static-material-phase` выбирают позу и фазу -материала. `--readback-out target/frame.raw` сохраняет последний кадр GPU. -Без сохранённой камеры используется вид карты сверху. +Окно работает в интерактивном режиме до закрытия и по умолчанию загружает все +корневые объекты миссии (`--preview-roots N` ограничивает их число только для +диагностики). +`WASD` перемещают камеру относительно её направления, `E/Q` поднимают и +опускают её, `Shift` ускоряет, `Ctrl` замедляет движение. Удержание правой +кнопки мыши включает relative-look; движение мыши вращает yaw/pitch. При +потере фокуса обзор отключается и нажатые клавиши сбрасываются. `Esc` +отпускает обзор или закрывает окно. + +В каталоге миссии ищется `sky.ske`. Если файл найден, приложение читает её +расписание и `sky.wea`; связанные MAT0/WEAR-материалы и +`effects.rlb/env_lightning` загружаются из ресурсов игры. Без `sky.ske` +окружение отключено; если файл есть, отсутствие `sky.wea`, `env_lightning` или +связанного материала считается ошибкой. Параметр `--atmosphere-seconds N` +задаёт начальное время; по умолчанию используется начало расписания. Когда +окружение загружено, небо, солнце и +луна, flares, молнии, дождь и снег, point lights, динамические тени и связанные +звуковые события обновляются в каждом кадре. + +`--frames N` ограничивает запуск числом кадров для smoke/readback-проверок; +значение `0` означает бесконечный интерактивный запуск. `--legacy-camera-capture` +читает сохранённый захват камеры и запускает воспроизводимый режим без +free-flight управления. `--static-animation-frame ` задаёт один кадр для +всех узлов. Если параметр не указан, приложение берёт сохранённые настройки +узлов из явной ссылки прототипа на `.ctl`; для узлов без такой настройки +используется кадр `0`. Статическая поза не запускает игровой Control, AI или +полное поведение юнитов. +`--static-material-phase ` выбирает фиксированную фазу материала. +`--readback-out target/frame.raw` сохраняет последний кадр GPU. `--validation` +включает Vulkan validation layers и завершает запуск с ошибкой при предупреждении +или ошибке. Readback сохраняет байты в формате surface без преобразования; +размер — `width × height × 4`. Порядок каналов и encoding определяются значением +`readback_format` в выводе; на текущем GPU обычно используется +`VK_FORMAT_R8G8B8A8_UNORM`. ## Разработка -- cgit v1.2.3