| 1 | # Paperdoll Renderer |
| 2 | |
| 3 | Desktopprogramma voor een paperdoll-project. Je bewaart een projectmap, leest modellen uit, en bekijkt een glTF-lichaam als bewegend 3D-model. |
| 4 | |
| 5 | Rust 1.96.0 staat in `rust-toolchain.toml`. Voor het venster: `pkg-config`, `libxcb1-dev`, `libx11-dev`, `libxkbcommon-dev`, `libxkbcommon-x11-dev` en `libgl1-mesa-dev`. |
| 6 | |
| 7 | ```bash |
| 8 | cargo run |
| 9 | cargo run -- --preview-fixture |
| 10 | cargo run -- --status |
| 11 | cargo test --locked |
| 12 | ``` |
| 13 | |
| 14 | `--preview-fixture` opent de preview met de testlichamen uit `tests/fixtures/bodies/`. |
| 15 | |
| 16 | ## Project |
| 17 | |
| 18 | **Nieuw** maakt een map met `character.ppd`, `assets/body/`, `assets/equipment/`, `presets/`, `cache/` en `renders/`. **Open** leest een `.ppd`. **Opslaan** schrijft het bestand via een tijdelijk buurbestand. |
| 19 | |
| 20 | In het bestand staan de projectnaam, de paden van het mannelijke en vrouwelijke model, de paden van equipment-presets, de uitvoermap, en breedte, hoogte en fps. Paden zijn relatief aan de projectmap. Een leeg geslachtsslot blijft leeg. **Lees man** en **Lees vrouw** tonen meshes, materialen, textures, joints en clips van glTF/GLB, FBX of OBJ+MTL. |
| 21 | |
| 22 | ## 3D-preview |
| 23 | |
| 24 | Het middelste vlak tekent een geskind glTF/GLB-lichaam. |
| 25 | |
| 26 | - **Laad testlichamen** zet de man en de vrouw uit de fixture in de view. |
| 27 | - **3D van project** gebruikt de `.glb`- of `.gltf`-paden van man en vrouw. |
| 28 | - **Man** en **Vrouw** wisselen het lichaam. **walk** en **attack** wisselen de clip. **Pauze** / **Speel** zet de animatie stil of laat haar lopen. |
| 29 | - Sleep in het vlak om te draaien. Scroll om te zoomen. |
| 30 | - **Yaw −** en **Yaw +** stappen langs twaalf hoeken van 30°. **pitch -30**, **pitch 0** en **pitch 30** zetten de drie hoogtes. Yaw 0 kijkt op de voorkant; de testlichamen wijzen naar −Z. |
| 31 | |
| 32 | ## Tests |
| 33 | |
| 34 | ```bash |
| 35 | cargo fmt --check |
| 36 | cargo clippy --workspace --all-targets --locked -- -D warnings |
| 37 | cargo test --workspace --locked |
| 38 | ``` |
| 39 | |
| 40 | De testlichamen komen uit `scripts/generate_test_bodies.py`. Het FBX-bestand van de man komt uit `scripts/convert_test_body_to_fbx.py` met Blender. |