Was macht polywright-references?
Referenzen entscheiden über den Großteil eines 3D-Ergebnisses: Ein Image-to-3D-Modell kopiert die Beleuchtung, Perspektive und Fehler seiner Eingabe; ein Modellbauer oder ein bpy-Skript benötigt Maße und Ansichten. Sammle oder erstelle diese zuerst, lege sie im refs/-Ordner des Assets ab und dokumentiere jede mit pw.py manifest --add-source (automatisch generierte benennen das Modell und den Seed).
Zurück zum Hub: ../polywright/SKILL.md. Prompt-Vorlagen und Checks: references/reference-kit.md.
Schritt 1: Was dieses Modell benötigt
| Modell | Sammeln (echt) | Generieren (vorgestellt oder fehlend) |
|---|---|---|
| Reales Objekt | Fotos von 6 Seiten mit einem Lineal in der Bildebene, Nahaufnahmen, echte Abmessungen (Herstellerdatenblatt, Wikipedia, Maßband) | Orthografische Nachbearbeitungen nur, wenn die Fotos schlecht sind |
| Fahrzeug, Produkt, Möbel | Blaupausen oder CAD-Zeichnungen (eine bekannte Abmessung prüfen), Herstellerabmessungen | Front-, Seiten- und Draufsicht im technischen Zeichenstil |
| Gebäude | Grundriss (OSM), Höhe oder Anzahl der Stockwerke, Fotos jeder Fassade, Dachform | Aufrisse pro Fassade, Dachplan |
| Realer Ort | Kartenausschnitt, Höhenprofil, Luftbild, Bodenfotos von Wahrzeichen | Keine: Orte stammen aus Daten (polywright-capture) |
| Imaginäre Requisite | Stilreferenzen | Ein Dreiviertel-Heldenbild, dann Front/Seite/Rückseite/Rechts im gleichen Maßstab |
| Charakter oder Kreatur | Stil- und Kostümreferenzen | Turnaround: Front, Seite, Rückseite, Dreiviertel, A-Pose, Höhenbalken, einfarbiger Hintergrund |
| Oberflächen (Wände, Boden, Gelände) | Foto des Materials, flach und gleichmäßig ausgeleuchtet | Nahtlos kachelbarer Albedo, dann Maps (Schritt 4) |
Füge immer eine Maßstabsreferenz hinzu: eine bekannte Abmessung, eine 1,8 m große menschliche Silhouette, einen Höhenbalken auf dem Blatt.
Ein History-Recherche-Paket (ein Ordner mit answer.md, refs/index.json und anachronism.md, erstellt vom
historywright-Plugin) ist bereits ein gültiger Asset-Ordner: Starte davon, suche nicht erneut. Lese
refs/index.json: Jede Referenz hat das Datum, den Ort, die Institution, die Inventarnummer und die Lizenz des Objekts. Verwende nur Referenzen, deren object_date in den Zeitraum des Briefings passt. Lass eine Referenz mit nc: true außen vor bei einem kommerziellen Modell. Überprüfe jede generierte Ansicht vor dem Meshing anhand von anachronism.md.
Schritt 2: Ansichten generieren (wichtige Regeln)
Bitte das Bildtool um: ein Objekt, zentriert, etwa zwei Drittel des Bildes ausfüllend; weißer oder hellgrauer Hintergrund; flaches, gleichmäßiges, schattenloses Licht; keine starke Perspektive (langes Objektiv oder orthografischer Look); 1024 px oder mehr; kein Text. Charaktere stehen in einer entspannten A-Pose (Arme 30 bis 45 Grad nach unten, Beine leicht auseinander): T-Posen verzerren Proportionen und Action-Posen scheitern in Generatoren und Rigging-Systemen. Vorlagen pro Art befinden sich im Kit.
Für konsistente zusätzliche Ansichten aus einem Bild erhält ein Bildbearbeitungsmodell mit einem Multi-Winkel-Adapter (Qwen Image Edit mit einem Multiple Angles LoRA, 2025–2026) die Identität besser als das separate Prompten jeder Ansicht; erwarte Farbverschiebungen und passe jede Ansicht farblich an die Front an. Überprüfe jede generierte Ansicht mit der Front: gleiche Proportionen, gleiche Anzahl Arme, gleiche Gegenstände, nichts neu ausgerichtet. Verwerfe eine abweichende Ansicht; eine falsche Rückansicht ist schlimmer als keine. Benenne die Farbe eines realen Objekts aus den Pixeln des Fotos (mittlerer Farbton, Sättigung, Helligkeit), nicht aus einem Wort: Das Bearbeitungsmodell folgt dem Wort über das Bild (L-003). Rückansichten neigen dazu, eine vordere Markierung auf den Rücken zu kopieren.
Ein fertiger Workflow für einen Z-Image Turbo Host: references/zimage-reference.api.json
({SUBJECT} Platzhalter; getestet 2026-10-11).
Schritt 2b: Das Blatt einer entworfenen Requisite stammt aus dem Modell
Wenn die Requisite entworfen ist (eine Waffe, ein Werkzeug, ein Fahrzeugteil, das mit Worten oder auf einem Fanblatt beschrieben wird) und Textprompts immer nur die halbe Form liefern, höre auf zu prompten: Baue es mit einem bpy-Skript (polywright-blender Rezept „Eine entworfene Requisite aus einer schriftlichen Beschreibung“) und rendere das Blatt aus dem Modell, Seiten- und Draufsicht orthografisch auf flachem Mittelgrau, Cycles auf der CPU, wenn die GPU beschäftigt ist. Ein Modell ist exakt, lässt sich nach jeder Notiz in Sekunden neu rendern, und dieselbe Datei setzt später die Requisite in Bilder ein (Hub: „Ein Modell in ein Bild komponieren“). Hebe die Seitenkamera um 10 bis 15 Grad an, wenn Teile als Spiegelbildpaare vorkommen oder eines das andere verdeckt.
Schritt 3: Ansichten aus einem Blockout (wenn Ansichten ständig abweichen)
Baue ein grobes Blockout (Primitive oder ein erstes nur-frontal generiertes Mesh), rendere es mit
pw.py render <datei> --out refs/blockout --views front,right,back,left --color clay, und lasse dann ein Bildbearbeitungsmodell jedes graue Rendering in den Farben und Details des Motivs übermalen (Image-to-Image mit dem Rendering als erster Referenz und der Frontansicht als zweiter). Nur die Kamera bewegt sich, also kann nichts neu ausgerichtet werden oder zusätzliche Gliedmaßen bekommen; die Rückseite kann nur zeigen, was das Blockout impliziert. Füttere das übermalte Set in die Multi-View-Generierung.
Schritt 4: Texturen und Materialien
- Bevorzuge ein CC0-Material (Poly Haven, ambientCG) gegenüber einem generierten.
- Generierte kachelbare Textur: Anfragen mit „nahtlos, kachelbar, Draufsicht, flaches gleichmäßiges Licht“ bei einer Zweierpotenz, dann
pw.py texture <img> --out refs/tex --seamless(Offset-Blend-Nähte) und betrachte eine 2×2-Kachelung. - Schnelle Maps aus einem Foto oder Albedo:
pw.py texture <img> --out refs/tex [--convention opengl|directx]erstellt aus der Luminanz abgeleitete Höhen-, Normal- und Rauigkeitskarten. Gut für Requisiten und Gelände, falsch für gemessene Materialien. Normal Maps: OpenGL (Y+) für Blender, Unity, Godot, glTF, three.js, Roblox; DirectX (Y−) für Unreal. - Eingebranntes Licht in einem Foto wird zu eingebranntem Licht im Albedo: Korrigiere dies upstream mit flachem Licht oder füge
--delighthinzu (teilt breite Gradienten heraus; scharfe Schlagschatten bleiben, diese übermalen). Normal Maps ändern nur die Schattierung: Silhouetten bleiben flach und große Formen brechen bei streifenden Blickwinkeln, also modelliere große Formen und mappe nur kleine Details.
Schritt 5: In die Praxis umsetzen
- In Blender: Referenzbilder als Empties in Front-, Rechts- und Draufsicht, skaliert auf eine bekannte Abmessung
(orthografische Renderings von
pw.py rendergebenmetres_per_pxaus); Rezept in polywright-blender. - Für Image-to-3D: quadratisch, mit Padding, 1024 px;
pw.py genfügt Padding hinzu und entfernt Hintergründe automatisch. Beurteile das Bild vor dem GPU-Durchlauf und was darin zu korrigieren ist, statt im Mesh: references/images-for-3d.md. - Auf einem Board (PureRef 2.1) für einen Menschen: Gruppiere nach Ansicht, notiere Abmessungen auf dem Board.
Wartung
Evergreen-Einheit, Stufe fast. Begleiter: RESEARCH.md, CHANGELOG.md,
LEARNINGS.md, TESTS.md mit evals/evals.json, MAINTENANCE.md,
Zustand in evergreen.json. Lese evergreen.json bei jeder Verwendung; aktualisiere, wenn fällig.