Kurz gesagt
- Mit bpy.data.materials.new(name=...) lässt sich ein neues Material in der Hauptdatenbank erstellen.
- Zu den grundlegenden Darstellungseinstellungen eines Materials gehören diffuse_color, metallic und roughness.
- In der aktuellen API wird für Transparenz und Kompatibilität die Eigenschaft surface_render_method verwendet.
- Beim Entfernen eines Materials sorgt do_unlink=True dafür, dass Verknüpfungen vor dem Löschen entfernt werden.
Was lernen Sie in diesem Leitfaden?
Blenders Python API ermöglicht es, Materialien per Code zu erstellen und ihre grundlegenden Eigenschaften einzustellen, statt sie einzeln über die Benutzeroberfläche zu bearbeiten. In diesem Leitfaden erstellen wir einen Material-Datenblock, legen seinen Namen fest und passen Farbe, Metallizität und Rauheit an. Anschließend sehen wir uns die in der API-Dokumentation aufgeführten Transparenzoptionen sowie die Methode zum Entfernen nicht verwendeter Materialien aus der Datenbank an.
Die Blender-API-Dokumentation beschreibt den Material-Datenblock als eine Struktur, die das Erscheinungsbild geometrischer Objekte beim Rendern definiert. Materialien werden in einer Sammlung der Blender-Hauptdatenbank verwaltet. Die folgenden Beispiele basieren auf der dokumentierten Verwendung dieser Sammlung und der Materialeigenschaften; sie behandeln nicht, wie ein Material einer bestimmten Szene oder einem bestimmten Objekttyp zugewiesen wird.
Voraussetzungen und Versionshinweis
Für die Beispiele benötigen Sie eine Blender-Umgebung, in der Sie auf die Python API von Blender zugreifen können. Die Quelldokumentation stellt die API-Seiten als „current“ bereit und setzt keine bestimmte Blender-Version voraus. Daher sollten Sie prüfen, ob die Eigenschaften auf der API-Seite mit der in Ihrem Projekt verwendeten Version übereinstimmen. In den Quellen werden weder ein Konto noch ein Abonnement oder eine separate Lizenz vorausgesetzt.
Die Codebeispiele sind in Python geschrieben und verwenden Blenders bpy-API. Führen Sie sie in einer Umgebung aus, die Zugriff auf Blenders Python API hat; die Beispiele garantieren nicht, dass eine externe Python-Umgebung auf Blender-Daten zugreifen kann. Ein erster Test mit einer Kopie einer wichtigen Projektdatei hilft, unerwünschte Datenänderungen von der Originalszene fernzuhalten.
Schritt für Schritt ein Material erstellen
1. Einen neuen Material-Datenblock erstellen
BlendDataMaterials.new(name) fügt der Hauptdatenbank ein neues Material hinzu und gibt den erstellten Material-Datenblock zurück. Der Parameter name legt den Namen des neuen Datenblocks fest; laut Dokumentation darf dieser Wert nicht None sein.
import bpy
mat = bpy.data.materials.new(name="Mimari_Materyal")Nach diesem Schritt verweist die Variable mat auf das erstellte Material. Das Material wird der Datenbank hinzugefügt, aber vom Code keiner bestimmten Geometrie zugewiesen. Deshalb sollten Sie das Erstellen eines Materials und seine Verwendung in der Materialsammlung eines Objekts als getrennte Schritte betrachten.
2. Farbe und Oberflächencharakter einstellen
In der Dokumentation werden diffuse_color, metallic und roughness als Materialeigenschaften aufgeführt. diffuse_color ist als Array mit vier Elementen definiert. Metallizität und Rauheit nehmen Werte zwischen 0 und 1 an; die Dokumentation nennt 0,4 als Standardwert für die Rauheit und 0 als Standardwert für die Metallizität.
mat.diffuse_color = (0.72, 0.64, 0.52, 1.0)
mat.metallic = 0.0
mat.roughness = 0.4Diese Werte sind Beispiele für einen Ausgangspunkt, keine geprüfte Rezeptur für ein bestimmtes Produkt oder einen realen Baustoff. Sie können die vier Komponenten des Farb-Arrays und die numerischen Eigenschaften nach Bedarf ändern. Bei mehreren Varianten erleichtern unterscheidbare Materialnamen die Verwaltung der Einträge in der Datenbank.
3. Eine Transparenzmethode auswählen
Die aktuelle Material-API enthält surface_render_method, das festlegt, wie Oberflächen gemischt werden und mit welchen Funktionen die jeweilige Methode kompatibel ist. Die Dokumentation führt die Optionen DITHERED und BLENDED auf. DITHERED verarbeitet Transparenz mithilfe einer Graustufenverteilung und wird als kompatibel mit Render-Passes und Raytracing beschrieben. BLENDED ermöglicht farbige Transparenz; laut Dokumentation kann es jedoch nicht zusammen mit Render-Passes und Raytracing verwendet werden.
mat.surface_render_method = 'DITHERED'Mit dieser Zeile wählen Sie die Transparenzmethode aus; einen bestimmten Deckkraftwert legt sie allein nicht fest. Wenn farbige Transparenz erforderlich ist, kommt die Option BLENDED infrage. Berücksichtigen Sie bei der Entscheidung, ob Render-Passes oder Raytracing in Ihrem Workflow benötigt werden.
alpha_threshold gehört ebenfalls zu den dokumentierten Materialeigenschaften. Pixel, deren Alphawert über diesem Schwellenwert liegt, werden gerendert. Die Eigenschaft arbeitet im Bereich von 0 bis 1; als Standardwert nennt die Dokumentation 0,5. Wenn Sie diesen Wert ändern, testen Sie das gewünschte Erscheinungsbild und prüfen Sie die API-Beschreibung für Ihre Blender-Version.
4. Das Material bei Bedarf entfernen
Wenn ein Material nicht mehr benötigt wird, können Sie es mit BlendDataMaterials.remove aus der aktuellen Blend-Datei entfernen. do_unlink=True sorgt dafür, dass Verknüpfungen, in denen das Material verwendet wird, vor dem Löschen entfernt werden. Die übrigen Parameter betreffen die Aktualisierung der Benutzerzähler und stellen sicher, dass die Benutzeroberfläche nicht mehr auf das gelöschte Material verweist.
bpy.data.materials.remove(mat, do_unlink=True)Vergewissern Sie sich vor dem Ausführen dieses Codes, dass das richtige Material entfernt wird. Mit do_unlink=True werden Verknüpfungen vor dem Löschen ebenfalls entfernt; wenn das Material weiterhin in der Szene verwendet werden soll, kann dieses Verhalten unerwünschte Folgen haben. Ein sicherer Kontrollschritt ist, das Entfernen zunächst in einer Dateikopie auszuprobieren.
Häufige Fehler
Eine ältere Eigenschaft für die aktuelle Methode halten:
blend_methodist eine ältere Eigenschaft für transparente Oberflächen. Die Dokumentation empfiehlt stattdessensurface_render_method. Verwenden Sie für neue Arbeiten die Methode aus der aktuellen API.use_nodesals Einstellungsoption verwenden: In der Dokumentation ist diese Eigenschaft ab Blender 5.0 als veraltet markiert. Es wird angegeben, dass ihre Einstellung keine Wirkung hat, sie beim Auslesen immerTruezurückgibt und ihre Entfernung für Blender 6.0 geplant ist. Deshalb verwenden wir diese Eigenschaft nicht im Beispiel-Workflow.Farb- und Zahlenbereiche verwechseln:
diffuse_colorist ein Array mit vier Elementen;metallicundroughnessnehmen Werte im Bereich von 0 bis 1 an. Prüfen Sie die erwarteten Datentypen und Wertebereiche in der API-Dokumentation.Das Erstellen eines Materials mit der Zuweisung zu einem Objekt gleichsetzen: Ein neuer Datenblock wird der Hauptdatenbank hinzugefügt; dadurch wird er nicht automatisch einem Geometrieobjekt zugewiesen.
Beim Löschen Verknüpfungen übersehen:
do_unlink=Trueentfernt sämtliche Verwendungen des Materials vor dem Löschen. Führen Sie Bereinigungscode nicht in einer bestehenden Datei aus, ohne die Auswirkungen dieser Option zu verstehen.
Einsatz in Architektur- und Visualisierungs-Workflows
Diese Methode ist ein Ausgangspunkt für Architekturbüros, Innenarchitekten und Visualisierungsteams, die ähnliche Material-Datenblöcke per Code erzeugen oder grundlegende Eigenschaften wiederholbar einstellen möchten. Wenn bei mehreren Materialien dieselbe Benennung und dieselbe Grundeinstellung verwendet werden soll, kann die Erstellung per Code wiederkehrende manuelle Arbeit reduzieren. Dieser Leitfaden beschreibt jedoch keinen Workflow für die Zuweisung zu Objekten, das Verhalten bestimmter Render-Engines oder externe Materialbibliotheken.
Vergleichen Sie vor dem Einsatz im Projekt die verwendete Blender-Version mit der aktuellen API-Dokumentation und prüfen Sie die Kompatibilität der Transparenzmethode mit Render-Passes und Raytracing. Da die Quellen keine Angaben zu Hardwareanforderungen, Leistungsmessungen, Gebühren oder Lizenzkosten machen, lässt sich dazu keine sichere Aussage treffen. In Büros empfiehlt es sich, Code mit datenverändernden Schritten wie dem Löschen zunächst in einer Dateikopie zu testen.
Nächste Schritte
Nachdem die grundlegenden Schritte zum Erstellen und Einstellen funktionieren, prüfen Sie die API-Seiten zu Material und BlendDataMaterials für die in Ihrem Projekt verwendete Blender-Version. Die Dokumentation führt außerdem die Eigenschaft node_tree des Material-Datenblocks und verschiedene Sammlungen auf, die auf Materialien verweisen; dieser Leitfaden erklärt nicht, wie diese bearbeitet werden. Wenn Sie den nächsten Entwicklungsschritt festlegen, reduzieren die Orientierung an dokumentierten Eigenschaften und an den geprüften Projektanforderungen das Risiko von Kompatibilitätsproblemen.
Quellen und Lizenz
Dieser Leitfaden wurde anhand der Blender-API-Dokumentationsseiten zu BlendDataMaterials und Material ins Türkische übertragen. Beide Quellen stehen unter der Lizenz CC BY-SA 4.0. Die Codebeispiele wurden für diesen Leitfaden geschrieben; es wurden keine Codeauszüge aus den Quellen übernommen.
Quellen
2 QuellenQuelltexte werden nicht neu veröffentlicht; kurze Zitate sind gekennzeichnet, der Rest ist eigene Zusammenfassung und Einordnung.
Mit der Blender Python API Materialien zu erstellen, ist ein praktischer Einstieg für Büros und Visualisierungsteams, die wiederkehrende Grundeinstellungen standardisieren möchten. Farbe, Metallizität und Rauheit per Code festzulegen, kann dabei helfen, über mehrere Dateien hinweg dieselbe Ausgangskonfiguration beizubehalten.
Die Dokumentation erläutert jedoch weder das Ergebnis dieser Eigenschaften in bestimmten Render-Engines noch ihre Auswirkungen auf die Leistung oder Lizenzkosten in der Türkei. Teams sollten die verwendete Blender-Version, die Kompatibilität der Transparenzmethode und bestehende Szenenverknüpfungen prüfen. Insbesondere sollten sie das Löschen von Materialien zuerst in einer Projektkopie testen. In den Quellen wird dieser Ansatz nicht als Funktion beschrieben, die ein Hardware-Upgrade erfordert.
Häufige Fragen
Wie erstellt man ein Material mit der Blender Python API?
Der Aufruf `bpy.data.materials.new(name="...")` erstellt ein neues Material in der Hauptdatenbank und gibt den Material-Datenblock zurück.
Wie stellt man die Metallizität und Rauheit eines Materials in Blender ein?
Den Eigenschaften `metallic` und `roughness` des `Material`-Datenblocks können Werte zugewiesen werden. Die API-Dokumentation nennt für beide den Bereich von 0 bis 1.
Welche aktuelle Transparenzmethode gibt es für Blender-Materialien?
Die aktuelle API führt `surface_render_method` für die Mischmethode und deren Kompatibilität auf. Als Optionen werden `DITHERED` und `BLENDED` genannt.



