diff --git a/docs/AIRCRAFT-MODELS.md b/docs/AIRCRAFT-MODELS.md index 927acf1..952886b 100644 --- a/docs/AIRCRAFT-MODELS.md +++ b/docs/AIRCRAFT-MODELS.md @@ -9,6 +9,16 @@ Дополнительные ракурсы: [Ланцет до](media/aircraft-pass/lancet-before-nose.png), [Ланцет после](media/aircraft-pass/lancet-after-nose.png), [Х-101 до](media/aircraft-pass/kh101-before-nose.png), [Х-101 после](media/aircraft-pass/kh101-after-nose.png). -Снимки сделаны в изолированных мирах Horizon, offscreen, без звука, при времени 6000 и ясной погоде, со светящейся платформой и одинаковыми координатами камеры. В пакетах одинаковы код и остальные ресурсы; для варианта «до» заменены два JSON модели на версии d410e2c. Оба блока после установки проверены через `block`. Ландшафт и состояние подгрузки различаются; снимки не ретушированы. На кадрах видна геометрия обоих силуэтов, но повёрнутые поверхности «Ланцета» остаются почти чёрными даже рядом со светом, как и в исходной модели: это не позволяет уверенно оценить их материал. Полёт, анимация, ночное освещение и массовая производительность не проверены; художественная приёмка остаётся открытой. +## Проверка игрового инстанса + +| До | После | +|---|---| +| ![Инстанс до](media/aircraft-pass/lancet-instance-before-nose.png) | ![Инстанс после](media/aircraft-pass/lancet-instance-after-nose.png) | + +[Ракурс сверху до](media/aircraft-pass/lancet-instance-before-top.png) · [ракурс сверху после](media/aircraft-pass/lancet-instance-after-top.png). + +Временный проверочный мод `tools/model-preview` выставляет модель через игровой `render.set-models` с `glow=false` в открытом воздухе. На этих кадрах видны цвет, крылья и нос; это статичный инстанс, полёт и анимация не проверены. На сегментах крыльев заметны различия яркости, требующие отдельной оценки. + +Остальные снимки выше показывают модели как установленные блоки в изолированных мирах Horizon, offscreen, без звука, при времени 6000 и ясной погоде, со светящейся платформой и одинаковыми координатами камеры. В пакетах одинаковы код и остальные ресурсы; для варианта «до» заменены два JSON модели на версии d410e2c. Оба блока после установки проверены через `block`. Ландшафт и состояние подгрузки различаются; снимки не ретушированы. Непрозрачный установленный блок местами выглядит почти чёрным, поэтому его снимки нельзя использовать для оценки освещения игровых инстансов. Ночное освещение и массовая производительность не проверены; художественная приёмка остаётся открытой. Редактируемые источники — `airdef-mod/source-assets/assets/airdef/models/block/{lancet,kh101}.json`. Для переэкспорта запустите `python3 tools/aircraft_models.py`, затем `python3 tools/gen_models.py` для установки ресурсов и пересчёта габаритов. diff --git a/docs/media/aircraft-pass/lancet-instance-after-nose.png b/docs/media/aircraft-pass/lancet-instance-after-nose.png new file mode 100644 index 0000000..3478441 Binary files /dev/null and b/docs/media/aircraft-pass/lancet-instance-after-nose.png differ diff --git a/docs/media/aircraft-pass/lancet-instance-after-top.png b/docs/media/aircraft-pass/lancet-instance-after-top.png new file mode 100644 index 0000000..04000dc Binary files /dev/null and b/docs/media/aircraft-pass/lancet-instance-after-top.png differ diff --git a/docs/media/aircraft-pass/lancet-instance-before-nose.png b/docs/media/aircraft-pass/lancet-instance-before-nose.png new file mode 100644 index 0000000..40e8410 Binary files /dev/null and b/docs/media/aircraft-pass/lancet-instance-before-nose.png differ diff --git a/docs/media/aircraft-pass/lancet-instance-before-top.png b/docs/media/aircraft-pass/lancet-instance-before-top.png new file mode 100644 index 0000000..0045fdf Binary files /dev/null and b/docs/media/aircraft-pass/lancet-instance-before-top.png differ diff --git a/tools/model-preview/Cargo.toml b/tools/model-preview/Cargo.toml new file mode 100644 index 0000000..7f7d6e6 --- /dev/null +++ b/tools/model-preview/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "model-preview" +version = "0.1.0" +edition = "2024" +[lib] +crate-type = ["cdylib"] +[dependencies] +horizon-mod-sdk = { path = "../../horizon/crates/horizon-mod-sdk" } +[workspace] diff --git a/tools/model-preview/horizon-mod.toml b/tools/model-preview/horizon-mod.toml new file mode 100644 index 0000000..9d31888 --- /dev/null +++ b/tools/model-preview/horizon-mod.toml @@ -0,0 +1,7 @@ +id = "model_preview" +name = "Model Preview" +version = "0.1.0" +api = "0.1" +side = "client" +capabilities = ["render"] +experimental = ["render"] diff --git a/tools/model-preview/src/lib.rs b/tools/model-preview/src/lib.rs new file mode 100644 index 0000000..bbb76b9 --- /dev/null +++ b/tools/model-preview/src/lib.rs @@ -0,0 +1,9 @@ +use horizon_mod_sdk::{Mod, Registration, render}; +struct Preview; +impl Mod for Preview { + fn init() -> Result<(Self, Registration), String> { Ok((Self, Registration::new().on_tick())) } + fn tick(&mut self, _: u64) { + render::set_models(&[render::ModelInstance { id: 1, model: "airdef:lancet".into(), x: 0.5, y: 110.5, z: 0.5, rotation: (0.,0.,0.,1.), scale: 1., glow: false }]); + } +} +horizon_mod_sdk::export_mod!(Preview);