# Pli — Blender-Übergabepaket, Version 1.0.0

Eine originale Studie von RenderParcel: Flakon aus violetter Keramik, satinierte orange Halsmanschette, Winkelband-Etikett auf Papier und Sockel aus Ton. Die Bildkomposition ist für ein Produktbild mit freier Fläche links vorgesehen. Es handelt sich weder um ein Kundenobjekt noch um ein aus einer Fotografie reproduziertes Modell.

## Was der Download tatsächlich enthält

Dieses Paket liefert einen **Szenengenerator**, eine originale Textur, ein Rezept und Kontrollen. In der Vorbereitungsumgebung wurde keine `.blend`-Datei und kein Blender-Rendering erzeugt: Blender war dort nicht vorhanden. Die durchgeführte Validierung betrifft die Dateien, die Pfade, das PNG, die Python-Syntax und Abhängigkeitsfehler. Lesen Sie `VALIDATION.md`.

Das Rekonstruktionsziel ist **Blender 4.5.x LTS**, mit dem integrierten Python und Cycles. Das Skript lehnt einen anderen Zweig ab, um eine vermutete Kompatibilität nicht als getestet auszugeben. Es werden keine externen Python-Module, Blender-Erweiterungen, Schriften, HDRIs oder Modelle benötigt. Ein eigenständiges Python 3.10+ genügt für die Kontrolle des Ordners; die mitgelieferten Tests wurden mit Python 3.14.6 unter Windows ausgeführt.

## Verzeichnisstruktur und Einstiegspunkt

```text
blender-v1/
  README.md, LICENSE.txt, VALIDATION.md
  scene.json                    Rezept, Versionen, Abhängigkeiten und Ausgaben
  manifest.sha256.json           Größe und SHA-256 der verteilten Dateien
  generate_scene.py              Einstiegspunkt, der IN Blender ausgeführt wird
  inspect_scene.py               Kontrollöffnung in einem zweiten Blender
  validate_pack.py               Dateikontrolle OHNE Blender
  01_sources/make_texture.py     Originalrezept des PNG
  02_projet/                    nimmt die rekonstruierte .blend auf
  03_ressources/pli-chevron.png  sRGB-Textur, die erhalten bleiben muss
  04_caches/                    kein Cache für diese feste Szene
  05_rendus/                    nimmt die CPU-Vorschau auf, falls angefordert
  06_livraison/                 Empfangsblatt und Berichte nach der Ausführung
```

Das Manifest deckt die verteilten Dateien ab, mit Ausnahme seiner selbst, um einen zirkulären Fingerabdruck zu vermeiden. Die danach erzeugten Ausgaben gehören nicht zu diesem Manifest. Ein Fingerabdruck erkennt eine Dateiabweichung; er bescheinigt weder deren Herkunft noch deren Aussehen. Für Ihre eigene Lieferung erstellen Sie ein neues datiertes Verzeichnis, das die freigegebenen Ausgaben einschließt.

## 1. Entpacken und prüfen, bevor Blender geöffnet wird

Entpacken Sie das ZIP in einen neuen Ordner und öffnen Sie dann ein Terminal im Stammverzeichnis `blender-v1`. Führen Sie keinen Befehl aus dem Inneren eines noch komprimierten Archivs aus.

```sh
python validate_pack.py --root . --json
```

Das Ergebnis muss `"ok": true` enthalten, und der Exit-Code muss 0 sein. Eine fehlende, veränderte oder außerhalb des Ordners liegende Datei oder ein ungültiges PNG führt zu einem Fehlschlag (Code 1). Brechen Sie hier ab, wenn die Kontrolle fehlschlägt. Schreiben Sie das Manifest nicht einfach neu, um einen Fehler zu verschleiern.

Unter Windows kann `py -3` `python` ersetzen. `blender` unten muss Ihre Blender-4.5.x-Executable bezeichnen; wenn ihr Ordner nicht im PATH liegt, verwenden Sie ihren vollständigen Pfad in Anführungszeichen (mit `&` vor diesem Pfad in PowerShell).

## 2. In einem dedizierten Blender-Prozess rekonstruieren

Das Skript erzeugt eine leere Szene im Speicher neu; führen Sie es nicht in einem nicht gespeicherten Projekt aus. Aus dem entpackten Ordner:

```sh
blender --background --factory-startup --python-exit-code 1 --python generate_scene.py -- --render-preview
```

Dieser Befehl muss Folgendes erzeugen:

- `02_projet/renderparcel_pli_v1.blend`: feste Szene, Bild 1, Kamera `Pli_Camera`, Cycles CPU, 1.200 × 750 Pixel und 64 Samples;
- `05_rendus/pli_controle_cpu.png`: **sofern das Rendering gelingt**, CPU-Vorschau mit 480 × 300 Pixeln, 16 Samples, ohne Denoising;
- `06_livraison/reconstruction.json`: tatsächlich verwendete Blender-Version, Objekte, gewähltes Gerät und tatsächlicher Status des Renderings.

Entfernen Sie `-- --render-preview`, um nur die `.blend` zu erstellen. Der Bericht gibt dann `renderExecuted: false` an. Das Skript speichert die Szene in ihrer Arbeitsdefinition vor der reduzierten Berechnung; die `.blend` wird also nicht durch die Vorschau-Einstellungen ersetzt. Die Befehle starten niemals eine GPU.

Vorhandene Ausgaben werden abgelehnt. Entpacken Sie für einen neuen Versuch das Paket erneut in einen anderen Ordner, statt ein beibehaltenes Ergebnis zu überschreiben. Eine Ausnahme wird dem System durch `--python-exit-code 1` gemeldet; bewahren Sie die Terminal-Meldungen im Fehlerfall auf.

## 3. Die Szene in einem zweiten Prozess erneut öffnen

```sh
blender --background --factory-startup --python-exit-code 1 --python inspect_scene.py
```

Die Prüfung öffnet die `.blend`, ohne deren interne Skripte auszuführen, und kontrolliert die zehn Objekte, die Kamera, Cycles CPU, die Einstellungen, den Bereich eines Bildes, AgX, die eingebettete Textur und ihren relativen Pfad. Das Ergebnis geht nach `06_livraison/inspection-blender.json`. Diese Prüfung bewertet nicht die Schönheit des Bildes und ersetzt nicht dessen Begutachtung.

Öffnen Sie anschließend das PNG mit einem Bildbetrachter. **Kopieren** Sie `06_livraison/modele-reception.csv` in eine neue Datei `06_livraison/reception-executee.csv` und füllen Sie diese Kopie aus: vollständiges Fläschchen im Bildausschnitt, creme-/violett-/orangefarbenes Muster auf der Vorderseite, Kontakt mit dem Sockel, keine magenta Textur, lesbare Reflexionen. Das Modell bleibt unverändert, um seine Prüfsumme zu bewahren; die ausgefüllte Kopie ist eine Ausgabe, die in Ihre eigene Lieferung aufzunehmen ist. Diese Kriterien sind Absichten, die nach dem Wiederaufbau zu prüfen sind; kein Blender-Referenzrendering ist in der verteilten Version enthalten.

## 4. Den Transfer ohne die alten Ressourcen prüfen

Kopieren Sie **den gesamten wiederaufgebauten Ordner** auf den Zielrechner oder in eine Umgebung, in der die Pfade des Arbeitsplatzes nicht erreichbar sind. Führen Sie die Dateiprüfung aus und öffnen Sie dann die Kopie der `.blend`. Ein bloßes Verschieben auf demselben Arbeitsplatz genügt nicht, wenn die alten absoluten Pfade weiterhin verfügbar sind.

Die externe Textur wird in `03_ressources` aufbewahrt. In der `.blend` lautet der vorgesehene Pfad `//../03_ressources/pli-chevron.png`, denn `//` ist relativ zur Blender-Datei, die in `02_projet` liegt. Der Generator lädt die Textur und bettet sie über `Image.pack()` vor dem Speichern ein. Diese beiden Formen erlauben es, die Quelle zu ändern und gleichzeitig die Einbettung zu kontrollieren; nach einer Änderung neu laden/einbetten und die gewählte Version speichern.

Für ein bestehendes Projekt: im Zielordner speichern; File → External Data → Make Paths Relative verwenden; Report Missing Files starten. Find Missing Files kann Verknüpfungen reparieren, sie aber absolut machen: erneut kontrollieren. Pack Resources enthält nicht alle externen Daten, insbesondere nicht Videos. Verknüpfte Bibliotheken erfordern ihr eigenes Verfahren; dieses Paket verwendet keine.

## 5. Das Rezept an Ihr Projekt anpassen

Beginnen Sie mit einer separaten Kopie, denn jede Änderung an den Quellen macht das ursprüngliche Manifest ungültig. Halten Sie Software/Version, Kamera, Szene, Engine, Auflösung, Samples, Ansichtstransformation, Texturen, Erweiterungen und Ziel der Ausgaben in einem eigenen Verzeichnis fest. Das PNG des Pakets ist eine sRGB-Basisfarbe, keine Normalen- oder Verschiebungskarte.

Diese Szene verwendet **keine Animation, keinen Simulationscache, keinen Ton, keine Schriftart und keine verknüpfte Bibliothek**. Wenn Sie Rauch, Stoff oder animierte Geometrie hinzufügen, erfassen Sie den Cache-Typ, seinen Speicherort, den vollständigen Bereich und das Verfahren zur Vorberechnung. Frieren Sie Caches ein, bevor Sie sie kopieren. Kontrollieren Sie die Zwischenbilder und jede Datei der Sequenz: ein korrektes Bild 1 validiert keine Animation.

Das Volumen der ZIP misst nicht die VRAM des Renderings. Eine reduzierte CPU-Vorschau erlaubt es nicht, eine GPU-Zeit abzuschätzen. Um Ihre Produktion zu dimensionieren, messen Sie Ihre vollständige Szene in der endgültigen Auflösung und prüfen Sie die Speicherspitze mit einer Reserve für ihre anspruchsvollen Schritte. Bewahren Sie eine unabhängige Sicherung bis zur Abnahme auf.

## Rekonstruktion der Textur, optional

```sh
python 01_sources/make_texture.py --output 05_rendus/motif-reconstruit.png
```

Die Berechnung des Musters ist deterministisch und verwendet nur Ganzzahloperationen. In den veröffentlichten Tests entsprechen die rekonstruierten PNG-Bytes der gelieferten Datei mit derselben zlib-Bibliothek. Vergleichen Sie zwischen Kompressionsversionen auch die Pixel, statt identische komprimierte Bytes anzunehmen.

## Quellen des Verfahrens

- [Manuel Blender 4.5, données incorporées](https://docs.blender.org/manual/sr/4.5/files/blend/packed_data.html) : portée de Pack Resources, sauvegarde et bibliothèques liées.
- [Manuel Blender 4.5, External Data](https://docs.blender.org/manual/ja/4.5/interface/window_system/topbar.html) : chemins relatifs et recherche de fichiers absents.
- [API Blender 4.5, Wm Operators](https://docs.blender.org/api/4.5/bpy.ops.wm.html) : enregistrement et ouverture avec scripts internes désactivés.
- [API Blender 4.0, Image](https://docs.blender.org/api/4.0/bpy.types.Image.html) : image externe/incorporée et opération `pack` ; référence accessible consultée, la page 4.5 n'était pas accessible pendant cette préparation.
- [Manuel Blender 4.5, ligne de commande](https://docs.blender.org/manual/es/4.5/advanced/command_line/arguments.html) : exécution du script et code de sortie Python.
- [Manuel Blender 4.5, gestion des couleurs](https://docs.blender.org/manual/sr/4.5/render/color_management.html) : interprétation des textures et transformation d'affichage.
- [Manuel Blender 4.5, précalcul](https://docs.blender.org/manual/fr/4.5/physics/baking.html) : traitement distinct des caches et plages de simulation.

Les traductions officielles sont utilisées lorsque la page anglaise ne répondait pas. Elles documentent les opérations, sans remplacer l'essai Blender qui reste à effectuer. Les liens commerciaux et le choix de GPU figurent dans le guide RenderParcel, pas dans la recette technique.

## Compatibilité des dossiers antérieurs

Les nouvelles reconstructions enregistrent `02_projet/renderparcel_pli_v1.blend`. Aucun fichier déjà créé n'est déplacé ni renommé. Si cette nouvelle sortie est absente, `inspect_scene.py` peut encore ouvrir `02_projet/prismora_pli_v1.blend`, le nom de sortie historique. Si les deux fichiers existent, l'inspection choisit la nouvelle sortie.

Les identifiants de schéma `prismora.blender-transfer.v1` et `prismora.integrity.v1`, les propriétés techniques `prismora_pack_version` et `prismora_purpose`, ainsi que le nom de module interne `prismora_validator`, restent stables pour la lecture des dossiers v1. Ce sont des clés de compatibilité, pas la marque affichée du dossier.
