From d0bdbaa1ed76dfbf3211bb43eee48c49cc4fd448 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Mon, 22 Jun 2026 13:12:27 +0400 Subject: feat: implement FParkan architecture foundation Add the modular fparkan workspace, domain crates, adapters, apps, xtask policy/CI, acceptance evidence, and licensed corpus gates for the macOS-focused roadmap foundation. --- crates/render-demo/README.md | 84 -------------------------------------------- 1 file changed, 84 deletions(-) delete mode 100644 crates/render-demo/README.md (limited to 'crates/render-demo/README.md') diff --git a/crates/render-demo/README.md b/crates/render-demo/README.md deleted file mode 100644 index e9d5950..0000000 --- a/crates/render-demo/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# render-demo - -Тестовый рендерер Parkan-моделей на Rust (`SDL2 + OpenGL`: GLES2 с fallback на Core 3.3). - -## Назначение - -- Проверить, что `nres + msh-core + render-core` дают рабочий draw-path на реальных ассетах. -- Проверить текстурный path `WEAR -> MAT0 -> Texm` на реальных ассетах. -- Служить минимальным reference-приложением. - -## Запуск - -```bash -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`: - -```bash -brew install sdl2 pkg-config -``` - -После этого запускайте той же командой `cargo run ... --features demo`. - -Параметры: - -- `--archive` (обязательный): NRes-архив с `.msh` entry. -- `--model` (опционально): имя модели; если не задано, берётся первая `.msh`. -- `--lod` (опционально, default `0`). -- `--group` (опционально, default `0`). -- `--width`, `--height` (опционально, default `1280x720`). -- `--angle` (опционально): фиксированный угол поворота вокруг Y (в радианах). -- `--spin-rate` (опционально, default `0.35`): скорость вращения в интерактивном режиме. -- В интерактивном режиме FPS выводится в заголовок окна и в stdout (обновление примерно каждые 0.5 сек). -- `--texture `: явное имя `Texm` (override авто-резолва). -- `--texture-archive `: путь к архиву текстур (по умолчанию `textures.lib` рядом с `--archive`). -- `--material-archive `: путь к `material.lib` (по умолчанию соседний `material.lib`). -- `--wear `: имя wear-entry внутри модельного архива (по умолчанию `.wea`). -- `--no-texture`: отключить текстуры и рендерить однотонным цветом. - -## Авто-резолв текстуры - -Если не передан `--texture`, демо пытается взять текстуру из игровых данных: - -1. `model.msh -> model.wea` (первый wear-материал), -2. `material.lib` (`MAT0`) по имени материала с fallback `DEFAULT`, -3. первая непустая `textureName` фаза материала, -4. загрузка `Texm` из `textures.lib` (или `lightmap.lib` как fallback). - -## Детерминированный снимок кадра - -Для parity-проверок используется headless-сценарий с фиксированными параметрами: - -```bash -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" -``` - -Явный выбор текстуры: - -```bash -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). -- cgit v1.2.3