3.5 KiB
3.5 KiB
render-demo
Тестовый рендерер Parkan-моделей на Rust (SDL2 + OpenGL: GLES2 с fallback на Core 3.3).
Назначение
- Проверить, что
nres + msh-core + render-coreдают рабочий draw-path на реальных ассетах. - Проверить текстурный path
WEAR -> MAT0 -> Texmна реальных ассетах. - Служить минимальным reference-приложением.
Запуск
cargo run -p render-demo --features demo -- \
--archive "testdata/Parkan - Iron Strategy/animals.rlb" \
--model "A_L_01.msh" \
--lod 0 \
--group 0
macOS prerequisites
Для macOS render-demo ожидает системный SDL2 через pkg-config:
brew install sdl2 pkg-config
После этого запускайте той же командой cargo run ... --features demo.
Параметры:
--archive(обязательный): NRes-архив с.mshentry.--model(опционально): имя модели; если не задано, берётся первая.msh.--lod(опционально, default0).--group(опционально, default0).--width,--height(опционально, default1280x720).--angle(опционально): фиксированный угол поворота вокруг Y (в радианах).--spin-rate(опционально, default0.35): скорость вращения в интерактивном режиме.--texture <name>: явное имяTexm(override авто-резолва).--texture-archive <path>: путь к архиву текстур (по умолчаниюtextures.libрядом с--archive).--material-archive <path>: путь кmaterial.lib(по умолчанию соседнийmaterial.lib).--wear <name.wea>: имя wear-entry внутри модельного архива (по умолчанию<model_stem>.wea).--no-texture: отключить текстуры и рендерить однотонным цветом.
Авто-резолв текстуры
Если не передан --texture, демо пытается взять текстуру из игровых данных:
model.msh -> model.wea(первый wear-материал),material.lib(MAT0) по имени материала с fallbackDEFAULT,- первая непустая
textureNameфаза материала, - загрузка
Texmизtextures.lib(илиlightmap.libкак fallback).
Детерминированный снимок кадра
Для parity-проверок используется headless-сценарий с фиксированными параметрами:
cargo run -p render-demo --features demo -- \
--archive "testdata/Parkan - Iron Strategy/animals.rlb" \
--model "A_L_01.msh" \
--lod 0 \
--group 0 \
--width 1280 \
--height 720 \
--angle 0.0 \
--capture "target/render-parity/current/animals_a_l_01.png"
Явный выбор текстуры:
cargo run -p render-demo --features demo -- \
--archive "testdata/Parkan - Iron Strategy/animals.rlb" \
--model "A_L_01.msh" \
--texture "PG09.0"
Ограничения
- Используется только базовая texture-фаза (без полной material/fx анимации).
- Вывод через
glDrawElements(GL_TRIANGLES)с index-buffer (позиции+UV).