BlueGit

golden-age paperdoll-renderer

Overview

Activity

NovDecJanFebMarAprMayJunJulAugSepOctNov

225 contributions in the last 12 months

LessMore

Commits, merge requests and comments.

paperdoll-renderer
README.md

Paperdoll Renderer

Desktopeditor voor .ppd-projecten, modelimport en een geanimeerde 3D-preview.

Starten

Rust 1.96.0 staat in rust-toolchain.toml. Op Debian/Ubuntu gebruik je voor bouwen en het venster pkg-config, libxcb1-dev, libx11-dev, libxkbcommon-dev, libxkbcommon-x11-dev en libgl1-mesa-dev. De native filepicker gebruikt XDG Desktop Portal met een GTK/KDE-backend, of Zenity.

cargo run
cargo run -- "/pad met spaties/character.ppd"
cargo run -- --preview-fixture
cargo run -- --status

Project en bodies

Het startvenster biedt Project laden en Nieuw project, beide met een systeembestandkiezer. Nieuw project maakt character.ppd en de mappen assets/body/, assets/equipment/, presets/, cache/ en renders/. De CC0-testlichamen worden in assets/body/ voorbereid. --preview-fixture maakt een tijdelijk voorbeeldproject en opent de mannelijke body.

De eerste projectweergave toont de bodies. Kies man / Kies vrouw selecteert een model. Een extern bestand wordt naar de projectmap gekopieerd; bij een bestaande naam krijgt de kopie een eigen naam. Modellen met bijbestanden kun je met hun relatieve mappenstructuur in de projectmap zetten en daar selecteren. Importoverzicht toont meshes, materialen, textures, joints en clips van glTF/GLB, FBX en OBJ+MTL.

Open man / Open vrouw opent de body. Een geskind glTF/GLB-model is in de live preview zichtbaar:

  • Sleep om te orbiten, scroll om te zoomen. Een 24-bits depthbuffer zorgt dat voorste oppervlakken achterliggende delen afdekken.
  • Kies een animatieclip en gebruik Pauze / Speel.
  • Yaw − / Yaw + volgen twaalf hoeken van 30°; pitch -30 / 0 / 30 kiezen de hoogte. Yaw 0 kijkt naar de voorkant van de testlichamen (−Z).
  • Render maakt een gekleurd PNG-stilbeeld van de huidige pose en camera in renders/body-male-still.png of body-female-still.png. De preview toont achtereenvolgens de hoge resolutie en de ingestelde doelresolutie, met nearest-neighbor uitvergroot en een voortgangsbalk. Iedere pass behoudt zijn beeldverhouding en staat gecentreerd met zwarte balken waar nodig. Live 3D keert terug naar het model.
  • Stel breedte, hoogte en fps in de Bodies-weergave in.

!Bodyweergave met animatie- en camerabediening

Equipment en opslaan

Vanuit een body opent Equipment de lijst. Kies een definitie of Nieuw. De configuratie bewaart een unieke naam (kleine letters, cijfers, - en _) en een gekozen model. Verwijder verwijdert de definitie uit de projectlijst. Opslaan bewaart het project en equipment-configuraties in presets/.

Bij sluiten of Ander project / Nieuw project met wijzigingen kies je Opslaan, Niet opslaan of Annuleren. Als opslaan mislukt, blijft het project open. Annuleren in de bestandkiezer behoudt je huidige werk.

Openen met

  • Windows: start de uitgepakte .exe eenmaal om de editor voor het huidige account aan Openen met toe te voegen. Kies daarna bij een .ppd Openen met → Paperdoll Renderer (of selecteer de .exe via Bladeren).
  • Debian/Arch: de pakketten installeren de .ppd-MIME-koppeling, desktopstarter en iconen. Kies de editor in Openen met.
  • Linux AppImage/losse binary: bewaar het bestand op zijn vaste plek en voer "/pad/Paperdoll.AppImage" --install-desktop uit. Hiervoor zijn shared-mime-info en desktop-file-utils nodig. Daarna staat de editor in Openen met. Herhaal dit na verplaatsen van de AppImage.

Het venster, de Linux-starter en de Windows-executable gebruiken Tims applicatie-icoon.

Tests

cargo fmt --check
cargo check --workspace --all-targets --locked
cargo clippy --workspace --all-targets --locked -- -D warnings
cargo test --workspace --locked
# Linux GPU-regressie (Xvfb + Mesa): echte overlappende geometrie en pixelreadback
xvfb-run -a cargo run --example preview_depth_probe --locked

De testlichamen komen uit scripts/generate_test_bodies.py. Het FBX-testbestand wordt met Blender via scripts/convert_test_body_to_fbx.py gemaakt.