Verify aircraft models as lit mod instances
build / mod (push) Failing after 20s

Co-Authored-By: Codex <noreply@openai.com>
This commit is contained in:
2026-11-04 16:15:59 +03:00
parent d45d59df9f
commit 914f723d1f
8 changed files with 36 additions and 1 deletions
+11 -1
View File
@@ -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` для установки ресурсов и пересчёта габаритов.
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 816 KiB

+9
View File
@@ -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]
+7
View File
@@ -0,0 +1,7 @@
id = "model_preview"
name = "Model Preview"
version = "0.1.0"
api = "0.1"
side = "client"
capabilities = ["render"]
experimental = ["render"]
+9
View File
@@ -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);