Fix dynamic model lighting and document GPU comparison (#123)
Co-Authored-By: Kimi Code <noreply@moonshot.ai>
This commit is contained in:
+12
-2
@@ -17,8 +17,18 @@
|
||||
|
||||
[Ракурс сверху до](media/aircraft-pass/lancet-instance-before-top.png) · [ракурс сверху после](media/aircraft-pass/lancet-instance-after-top.png).
|
||||
|
||||
Временный проверочный мод `tools/model-preview` выставляет модель через игровой `render.set-models` с `glow=false` в открытом воздухе. На этих кадрах видны цвет, крылья и нос; это статичный инстанс, полёт и анимация не проверены. На сегментах крыльев заметны различия яркости, требующие отдельной оценки.
|
||||
Проверочный мод `tools/model-preview` выставляет модель через игровой `render.set-models` с `glow=false` и HD-освещением в открытом воздухе. На этих кадрах видны цвет, крылья и нос; это статичный инстанс, полёт и анимация не проверены. Различия яркости наклонных сегментов на старых кадрах исправлены в #123.
|
||||
|
||||
Остальные снимки выше показывают модели как установленные блоки в изолированных мирах Horizon, offscreen, без звука, при времени 6000 и ясной погоде, со светящейся платформой и одинаковыми координатами камеры. В пакетах одинаковы код и остальные ресурсы; для варианта «до» заменены два JSON модели на версии d410e2c. Оба блока после установки проверены через `block`. Ландшафт и состояние подгрузки различаются; снимки не ретушированы. Непрозрачный установленный блок местами выглядит почти чёрным, поэтому его снимки нельзя использовать для оценки освещения игровых инстансов. Ночное освещение и массовая производительность не проверены; художественная приёмка остаётся открытой.
|
||||
## Исправление нормалей (#123)
|
||||
|
||||
| До | После |
|
||||
|---|---|
|
||||
|  |  |
|
||||
|
||||
[Сверху после исправления](media/aircraft-pass/lancet-instance-normal-fix-top.png) · [ночь после исправления](media/aircraft-pass/lancet-instance-normal-fix-night.png).
|
||||
|
||||
Пара «до/после» снята в одном scratch-мире, с одинаковыми координатами камеры, временем и погодой на Apple M5/Metal. Динамический block-model путь теперь вычисляет нормаль из неколлинеарных вершин квада и использует прежний осевой fallback только для вырожденной геометрии. Unit-тест покрывает оба знака наклона 45°, другие углы, осевые и вырожденные квады. Массовая производительность и полёт этой проверкой не измерялись.
|
||||
|
||||
Остальные снимки выше показывают модели как установленные блоки в изолированных мирах Horizon, offscreen, без звука, при времени 6000 и ясной погоде, со светящейся платформой и одинаковыми координатами камеры. В пакетах одинаковы код и остальные ресурсы; для варианта «до» заменены два JSON модели на версии d410e2c. Оба блока после установки проверены через `block`. Ландшафт и состояние подгрузки различаются; снимки не ретушированы. Непрозрачный установленный блок местами выглядит почти чёрным, поэтому его снимки нельзя использовать для оценки освещения игровых инстансов. В исходной серии ночное освещение не проверялось; ночной кадр Lancet после #123 представлен выше. Массовая производительность не проверена; художественная приёмка остаётся открытой.
|
||||
|
||||
Редактируемые источники — `airdef-mod/source-assets/assets/airdef/models/block/{lancet,kh101}.json`. Для переэкспорта запустите `python3 tools/aircraft_models.py`, затем `python3 tools/gen_models.py` для установки ресурсов и пересчёта габаритов.
|
||||
|
||||
@@ -70,3 +70,12 @@ h264 + AAC, отчёт мода совпадает с `ffprobe nb_frames`, от
|
||||
Подробности и ограничения (очистка временных файлов движком при ошибке энкодера) —
|
||||
[HD-RENDERER](HD-RENDERER.md) (раздел про кинорежиссёра) и [ENGINE](ENGINE.md) (раздел про
|
||||
захват). 10-минутный экспорт и Windows/Linux по-прежнему не проверены.
|
||||
|
||||
## Обновление #123
|
||||
|
||||
Engine `45b43f00d`: dynamic block models используют геометрическую нормаль квада вместо осевого
|
||||
`facing`; для вырожденных вершин сохранён прежний fallback. Unit-тест покрывает `±45°`, другие
|
||||
наклоны, осевые и вырожденные квады. На реальном Lancet-инстансе через `set-models`, `glow=false`
|
||||
и HD получены парные кадры до/после в одном мире и ракурсе, а также вид сверху и ночью; полосы
|
||||
осевого освещения устранены. [Кадры и ограничения](AIRCRAFT-MODELS.md). Массовый FPS и полёт не
|
||||
измерялись.
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
для Rust и Python; #102: измеренный fuel, API29 light/source milestones и изоляция камер;
|
||||
#96: массовый deterministic offline capture; #115: authored Lancet/Х-101 и кадры инстансов.
|
||||
Текущий engine pin — API29; старые номера/числа ниже описывают предыдущие этапы.
|
||||
Новая оставшаяся проблема нормалей модели — #123.
|
||||
Проблема нормалей модели #123 исправлена в engine `45b43f00d`; парные HD-кадры и ночная проверка Lancet записаны в галерее.
|
||||
|
||||
| Issue | Реализовано | Что остаётся для полной приёмки |
|
||||
|---|---|---|
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.6 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.7 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 7.2 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 6.4 MiB |
+1
-1
Submodule horizon updated: 57f8b2853c...45b43f00df
@@ -3,6 +3,7 @@ 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_lighting(render::Lighting { hd: true, exposure: 1., bloom: 0.55 });
|
||||
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 }]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user