docs: learnings erfasst - cinematic render NameError, cancel-race, legacy-only pfad
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -506,3 +506,12 @@ Bug "Wälzkörper an falscher Position" war in Code durch commit 638b93b (IsSame
|
||||
- `BRepBuilderAPI_Transform` komplett entfernt — `RWGltf_CafWriter` konvertiert intern mm→m und Z-up→Y-up.
|
||||
- `writer.SetMergeFaces(True)` hinzugefügt — composited Face-Triangulationen zu korrekten Shape-Buffern (1.212 → 46.573 Vertices).
|
||||
**Merke**: OCC `TopLoc_Location` kann keine Skalierung (wirft `Standard_DomainError`). Für Skalierung entweder den Writer intern konvertieren lassen oder GLB post-process.
|
||||
|
||||
### 2026-07-21 | Debugging | NameError in cinematic render error path maskiert echten Blender-Fehler
|
||||
In `render_cinematic_to_file` (`render_blender.py`) las der Fehler-Handler nach `proc.returncode != 0` die Variablen `stdout` und `stderr` — beide nie definiert (tatsächlich heißen sie `log_lines` und `stderr_lines`). Jeder Blender-Absturz produzierte `{"error": "name 'stdout' is not defined"}` in der DB statt dem echten Fehlertext. **Lösung:** `stdout`/`stderr` → `log_lines`/`stderr_lines`-Referenz korrigiert.
|
||||
|
||||
### 2026-07-21 | Architektur | Cancel-Race im Render-Task — completed überschreibt cancelled
|
||||
Wenn ein Render-Job gecancelt wird, läuft Blender weiter. Wenn er fertig ist, schreibt `persist_order_line_output` `render_status=completed` ohne zu prüfen ob die Line mittlerweile cancelled wurde. **Lösung:** Guard am Anfang von `persist_order_line_output`: wenn `line.render_status == "cancelled"`, Early-Return ohne Statusmutation.
|
||||
|
||||
### 2026-07-21 | Architektur | Cinematic-Render ist ausschließlich Legacy-Pfad — kein Graph-Node
|
||||
Es gibt keinen `BLENDER_CINEMATIC`-Node im Workflow-Graph-System. Cinematic-Renders laufen ausschließlich über den Legacy-Pfad (`render_order_line_task`), ausgelöst durch `output_type.render_settings.cinematic=true`. Für einen Cinematic-Output-Type darf deshalb kein `workflow_definition_id` gesetzt sein — sonst wird der Job als Graph-Workflow geroutet, der keinen Cinematic-Node hat und leer bleibt.
|
||||
|
||||
Reference in New Issue
Block a user