Materialien, Beleuchtung und Rendern in Blender
Du arbeitest im Blender des Benutzers über die BlenderLab-Verbindung. Der Viewport-Screenshot und der finale Render sind unterschiedliche Dinge: Der Screenshot zeigt jeweils den aktuellen Shading-Modus des Viewports, der Render verwendet die Render-Engine, die Lichter und die Welt. Die meisten Probleme vom Typ „Es sah gut aus, aber der Render ist falsch“ haben hier ihre Ursache.
Deine Blender-Verbindung
Du arbeitest über BlenderLab, den offiziellen Blender Lab Server; seine Werkzeuge sind
blenderlab_…:
- Was in der Szene ist:
get_objects_summary; ein Objekt im Detail:get_object_detail_summary(nachname). Die Datei, ob gespeichert oder nicht, und ihr Pfad:get_blendfile_summary_path_info. - Python ausführen:
execute_blender_code. Nichts überlebt zwischen Aufrufen (trage deine Helfer in jedes Skript ein); was das Skript ausgibt, kommt zurück, und einresultzugewiesenes Dict kommt als Daten zurück. Die Schutzfunktion verweigert einige Operatoren (Blender beenden, Factory Resets). - Den 3D-Viewport sehen:
get_screenshot_of_area_as_imagemitarea_ui_type: "VIEW_3D"(das ganze Fenster:get_screenshot_of_window_as_image); auf ein Objekt ausrichten:jump_to_view3d_object_by_name. - Die Python-API überprüfen:
get_python_api_docs(ein Bezeichner wiebpy.types.BevelModifier),search_api_docs; das Handbuch:search_manual_docs. - Schnellrender:
render_thumbnail_to_path,render_viewport_to_path; das Bild geht in Blenders Temp-Ordner und das Ergebnis gibt den echten Pfad. - Export: Code (
bpy.ops.export_scene.gltf,bpy.ops.export_scene.fbx). - Asset-Bibliotheken und 3D-Generatoren: keine. Baue das Objekt oder bitte den Benutzer um eine Datei zum Importieren.
Wenn diese Werkzeuge nicht verfügbar sind, stoppe und sage das: Der Benutzer muss die BlenderLab-Verbindung installieren (Werkzeuge → Verbindungen), sie diesem Agenten geben und Blender mit dem gestarteten Add-on-Server geöffnet haben. Beschreibe keine Arbeit als erledigt, wenn du sie nicht ausführen konntest.
Arbeitsreihenfolge
- Schauen: mit dem Szenen-Werkzeug: welche Objekte, welche haben bereits Materialien, gibt es eine
Kamera, ein Licht, eine Welt? Lies
bpy.app.version_stringund die aktuelle Render-Engine aus. - Materialien, eines pro unterscheidbarer Oberfläche, benannt nach dem, was sie sind (
Oak_Wood,Brushed_Steel), über Objekte hinweg wiederverwendet. - Licht und Welt, bevor du ein Material beurteilst: Ein Material kann im Dunkeln nicht beurteilt werden.
- Kamera: auf das Motiv gerichtet, sinnvolle Brennweite.
- Testrender klein (25-50 % Auflösung, wenige Samples), anschauen, korrigieren.
- Finaler Render in eine Datei und Pfad, Engine, Auflösung und Zeit melden.
Code für jeden Schritt befindet sich in references/shading-and-render.md. Öffne es, bevor du das erste Skript schreibst.
Materialien: Was schiefgeht
- Farbe an der falschen Stelle gesetzt.
material.diffuse_colorundobject.colorsind nur Viewport-Anzeigefarben: Sie rendern nicht. Die Farbe, die rendert, ist der Base-Color-Eingang des Principled-BSDF-Knotens. Setze beide, wenn der Solid-Modus-Viewport übereinstimmen soll. - Eingangsnamen haben sich in Blender 4.0 geändert.
Transmissionwurde zuTransmission Weight,Emissionwurde zuEmission Color,Specularwurde zuSpecular IOR Level,Clearcoatwurde zuCoat Weight,Subsurfacewurde zuSubsurface Weight. Suche einen Eingang nach Namen und überprüfe, ob er existiert, bevor du ihn setzt; verwende das API-Werkzeug deiner Verbindung, wenn du unsicher bist. - Material erstellt, aber nie zugewiesen. Füge es an
obj.data.materialsan; für verschiedene Materialien auf Teilen eines Netzes weisepolygon.material_indexzu. - Finde den Knoten nach Typ, nicht nach Name. Der Knoten heißt nur in einer englischen
Benutzeroberfläche „Principled BSDF“. Verwende
next(n for n in nodes if n.type == 'BSDF_PRINCIPLED').
| Oberfläche | Principled BSDF-Einstellungen |
|---|---|
| Bemalt, Kunststoff | Base Color; Roughness 0,3–0,6; Metallic 0 |
| Metall | Metallic 1,0; Base Color = Farbe des Metalls; Roughness 0,15–0,5 |
| Glas | Transmission Weight 1,0; Roughness 0–0,05; IOR 1,45; benötigt eine Welt oder Lichter, um etwas zu brechen |
| Leuchtend | Emission Color + Emission Strength (1–20) |
| Gummi, Stoff, Matt | Roughness 0,8–1,0 |
| Autolack, Lack | Coat Weight 1,0; Coat Roughness 0,05 |
Metallic ist 0 oder 1, fast nie dazwischen. Reines Schwarz (0, 0, 0) und reines Weiß (1, 1, 1) als Base Color sehen unter Licht falsch aus: bleibe innerhalb von etwa 0,03–0,9.
Beleuchtung und Welt
- Keine Welt und kein Licht bedeutet einen schwarzen Render, und Glas oder Chrom, gerendert gegen eine leere Welt, werden selbst mit Lichtern schwarz, weil es nichts zu reflektieren oder zu brechen gibt. Gib der Welt eine Farbe und Stärke oder ein HDRI.
- Ein zuverlässiger Start: ein großes Bereichslicht als Key (45° zur Seite und darüber), ein schwächeres Fill auf der anderen Seite, ein Rim-Licht dahinter und eine Welt mit niedriger Stärke (0,2–0,5).
- Die Leistung eines Bereichslichts wird in Watt angegeben und muss groß sein: Ein 1 m Bereichslicht 2 m von einem kleinen Objekt entfernt benötigt grob 100–500 W. Die Stärke einer Sonne ist anders: 2–5.
- Eine Bodenebene unter dem Objekt gibt Kontaktschatten; ohne sie schwebt das Objekt.
- Ein HDRI gibt realistisches Licht und Reflexionen in einem Schritt. Die Blender (MCP für Blender)-Verbindung kann eines von Poly Haven herunterladen: Es handelt sich um Drittinhalte und erfordert eine Genehmigung in HydraOps, also frage zuerst. Bei BlenderLab bitte den Benutzer um eine HDRI-Datei.
Engines
| EEVEE | Cycles | |
|---|---|---|
| Geschwindigkeit | Sekunden | Sekunden bis Minuten |
| Verwendung für | Vorschauen, stilisiert, Animation | Finale Standbilder, Glas, genaues Licht |
| Achtung | Reflexionen und Brechungen benötigen Raytracing aktiviert; ohne sehen Glas und glänzende Oberflächen flach oder körnig aus | Rauschen: erhöhe Samples und lasse Rauschunterdrückung aktiviert; nutzt die GPU nur, wenn der Benutzer sie konfiguriert hat |
Der Engine-Bezeichner für EEVEE variiert je nach Version (BLENDER_EEVEE_NEXT in 4.2–4.5,
BLENDER_EEVEE davor und danach): Die Referenz zeigt, wie man sie setzt, ohne zu raten.
Ändere nicht das Render-Gerät oder die Einstellungen des Benutzers.
Kamera
- Erstelle eine, wenn es keine gibt, und mache sie zur Szenenkamera; verschiebe keine Kamera, die der Benutzer bereits platziert hat, es sei denn, du wirst darum gebeten.
- Richte sie mit einer Track-To-Constraint auf das Motiv oder auf ein Empty; 50–85 mm für Objekte, 24–35 mm für Räume und Umgebungen.
- Überprüfe den Bildausschnitt mit einem kleinen Testrender, nicht mit dem Viewport-Screenshot (der Viewport ist nicht die Kamera, es sei denn, du wechselst in die Kameraperspektive).
Rendern
- Rendere in eine Datei mit einem absoluten Pfad in einem Ordner, den der Benutzer finden kann (neben der .blend-Datei, wenn sie gespeichert ist, sonst frage oder verwende den temporären Ordner des Benutzers) und melde den vollständigen Pfad. Überschreibe niemals eine vorhandene Datei, ohne es zu sagen. Mache es mit Code (die Referenz enthält ihn): Die eigenen Render-Werkzeuge von BlenderLab sind für schnelle Überprüfungen und schreiben in Blenders Temp-Ordner, unabhängig davon, welchen Pfad du ihnen gibst; melde den Pfad, den sie im Ergebnis nennen.
- Teste erst klein. Ein Cycles-Render in voller Auflösung kann Minuten dauern und blockiert Blender, während er läuft; informiere den Benutzer, bevor du einen langen Render startest.
- Überprüfe das Ergebnis, bevor du den Erfolg erklärst: Ein Viewport-Screenshot zeigt keinen Render. Wenn du die gerenderte Datei nicht selbst ansehen kannst, sage das deutlich und beschreibe, was du eingerichtet hast, anstatt zu beschreiben, wie das Bild „aussieht“.
- Farbmanagement: Der standardmäßige View-Transform (AgX oder Filmic) entsättigt starke Farben
für Realismus; für flache, grafische Farben, die exakt übereinstimmen müssen, verwende
Standard.
Fehlerbehebung
| Symptom | Übliche Ursache |
|---|---|
| Render ist schwarz | Kein Licht und keine Welt; Kamera innerhalb eines Objekts; Objekt vor Render verborgen |
| Objekt ist grau oder weiß | Material nicht zugewiesen oder Farbe auf diffuse_color statt Base Color gesetzt |
| Glas ist schwarz | Leere Welt; bei EEVEE Raytracing aus |
| Pink oder Magenta | Fehlende Bildtextur-Datei |
| Körnig | Cycles: wenige Samples oder kein Rauschunterdrücker. EEVEE: Raytracing aus oder weiche Schatten bei niedrigen Samples |
| Flach, keine Tiefe | Nur ein Weltlicht: Füge ein Key-Licht und eine Bodenebene hinzu |
| Ausgewaschene Farben | View-Transform: versuche Standard oder senke die Belichtung |
| Blockige gekrümmte Oberflächen | Flache Schattierung: aktiviere glatte Schattierung |
Bevor du sagst, es sei erledigt
- Jedes sichtbare Objekt hat ein zugewiesenes Material, dessen Base Color am Knoten gesetzt ist.
- Es gibt ein Licht oder eine beleuchtete Welt sowie eine Kamera, die das Motiv einfängt.
- Ein Render wurde in eine Datei geschrieben, und du hast den Pfad, die Engine und die Auflösung angegeben.
- Du hast nur das geändert, was verlangt wurde: keine gelöschten Objekte, keine geänderten Einstellungen.