Дневник: сессия по жалобам — вьюмодель, спавн, HDR/Android/анимации в работе
This commit is contained in:
parent
f58eafeb46
commit
c1b35b6263
2 changed files with 36 additions and 2 deletions
|
|
@ -479,7 +479,11 @@ fn real_weapon_model_structure() {
|
|||
return;
|
||||
};
|
||||
let vfs = mount_game(&root);
|
||||
for name in ["models/weapons/v_pistol.mdl", "models/weapons/w_pistol.mdl"] {
|
||||
for name in [
|
||||
"models/weapons/v_pistol.mdl",
|
||||
"models/weapons/w_pistol.mdl",
|
||||
"models/props_c17/oildrum001.mdl",
|
||||
] {
|
||||
let Ok(data) = vfs.read(name) else { continue };
|
||||
let mdl = formats::mdl::Mdl::parse(&data).expect("разбор");
|
||||
let base = name.trim_end_matches(".mdl");
|
||||
|
|
@ -507,7 +511,14 @@ fn real_weapon_model_structure() {
|
|||
mesh.strip_groups.iter().map(|g| g.vertices.len()).sum();
|
||||
let idx: usize =
|
||||
mesh.strip_groups.iter().map(|g| g.indices.len()).sum();
|
||||
format!("({verts}в/{idx}и)",)
|
||||
format!(
|
||||
"({verts}в/{idx}и, flags {:#x}, группы {:?})",
|
||||
mesh.flags,
|
||||
mesh.strip_groups
|
||||
.iter()
|
||||
.map(|g| (g.flags, g.strips.len(), g.indices.len()))
|
||||
.collect::<Vec<_>>()
|
||||
)
|
||||
})
|
||||
.collect();
|
||||
eprintln!(" парт {p} модель {m} lod {l}: {}", summary.join(" "));
|
||||
|
|
|
|||
|
|
@ -124,6 +124,29 @@ origin. Посадка: глаз + 20 вперёд + 6 вправо − 10 вн
|
|||
`batch.material` с позицией материала в `world.materials` (дедупликация по
|
||||
имени); (3) `--only-material` фильтрует батчи, но не мешает ли ему что-то ещё.
|
||||
|
||||
**2026-10-23, сессия по жалобам пользователя.** Закрыто коммитом `f58eafe`:
|
||||
|
||||
- падение wgpu на втором спавне («Copy at offset … overrunning the bounds»):
|
||||
буферы GPU не росли — добавлены `ensure_capacity` (рост вдвое с перезаливкой)
|
||||
и `refresh_materials` (bind group для новых материалов, иначе новые батчи
|
||||
молча не рисовались);
|
||||
- вьюмодель: обновляется после `player.update` и `camera.pos` (раньше
|
||||
отставала на кадр — «плывёт при повороте»), по умолчанию `w_pistol.mdl`,
|
||||
курс −90° (у модели ствол вдоль +Y, а не +X), дистанция 26, анимация `idle01`;
|
||||
- `bone_world_transforms` обходит кости рекурсивно (порядок в файле не
|
||||
гарантирован);
|
||||
- HUD: отладочные строки (verts/tris, лог Lua) скрыты по умолчанию, клавиша `.
|
||||
|
||||
**Известная проблема:** `v_pistol.mdl` рисуется плоским «листом» (2157 вершин,
|
||||
2 меша, 1 материал, скиннинг при этом цел — тест `real_view_model_skin_stays_coherent`
|
||||
даёт максимальный сдвиг 4 юнита). Похоже на проблему загрузки геометрии именно
|
||||
этой модели; до выяснения по умолчанию стоит `w_pistol.mdl`.
|
||||
|
||||
**Запущены параллельно (воркдеревья от `f58eafe`):** `feat/android` — APK под
|
||||
Android 12+; `feat/hdr` — HDR, тонмаппинг, bloom и мягкие тени/свет; `feat/anim` —
|
||||
RAWROT/RAWPOS/RAWROT2, выбор анимации по состоянию (идёт/бежит/приседает/
|
||||
прыжок), покачивание вьюмодели.
|
||||
|
||||
**A26, состояние на 2026-10-17:** сделаны секвенции (с определением шага записи
|
||||
по данным), кости и веса вершин, слияние включённых моделей (у игрока 465
|
||||
секвенций), чтение `.ani` (7,1 МБ, 1563 анимации, 247 блоков), декодер кадров
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue