# Blender Python API ile materyal oluşturma ve temel ayarları yapma

Kaynak: https://3dsinifi.com/haber/blender-python-api-ile-materyal-olusturma-ve-temel-ayarlari · Kategori: Eğitimler · Yayın: 3 Kasım 2026

> Blender’ın Python API’siyle materyal veri bloğu oluşturmayı ve renk, metalik, pürüzlülük gibi temel özellikleri düzenlemeyi adım adım öğrenin. Rehber, şeffaflık ayarları ve materyali güvenli biçimde kaldırma konularını da ele alıyor.

## Kısaca
- bpy.data.materials.new(name=...) ile ana veri tabanında yeni bir materyal oluşturulabilir.
- diffuse_color, metallic ve roughness özellikleri materyalin temel görünüm ayarları arasındadır.
- Güncel API’de şeffaflık ve uyumluluk için surface_render_method özelliği kullanılır.
- Materyali kaldırırken do_unlink=True, kullanım bağlantılarının silme öncesinde kaldırılmasını sağlar.

## Bu rehberde ne öğreneceksiniz?

Blender’ın Python API’si, materyalleri arayüzde tek tek düzenlemek yerine kodla oluşturup temel özelliklerini ayarlamaya imkân verir. Bu rehberde bir materyal veri bloğu oluşturacak, adını belirleyecek ve renk, metalik miktarı ile pürüzlülük değerlerini düzenleyeceğiz. Ardından API dokümantasyonunda listelenen şeffaflık seçeneklerine ve kullanılmayan materyali veri tabanından kaldırma yöntemine bakacağız.

Blender API belgeleri, `Material` veri bloğunu geometrik nesnelerin render sırasındaki görünümünü tanımlayan yapı olarak açıklar. Materyaller Blender’ın ana veri tabanındaki bir koleksiyonda tutulur. Aşağıdaki örnekler bu koleksiyon ve materyal özelliklerinin belgelenen kullanımına dayanır; belirli bir sahneye veya nesne türüne materyal atama adımlarını kapsamaz.

## Gereksinimler ve sürüm notu

Örnekleri kullanmak için Blender’ın Python API’sine erişilebilen bir Blender ortamı gerekir. Kaynak dokümantasyon API sayfalarını “current” olarak sunuyor ve belirli bir Blender sürümünü şart koşmuyor. Bu nedenle projede kullanılan sürümle API sayfasındaki özelliklerin örtüştüğünü kontrol etmek önemlidir. Kaynaklarda hesap, abonelik veya ayrı bir lisans gereksinimi belirtilmiyor.

Kod parçaları Python dilindedir ve Blender’ın `bpy` API’sini kullanır. Bunları Blender’ın Python API’sine erişilebilen bir ortamda çalıştırın; örnekler harici bir Python ortamının Blender verisine erişebileceğini garanti etmez. İlk denemeyi önemli bir proje dosyasının kopyasında yapmak, istenmeyen veri değişikliklerinin asıl sahneyi etkilemesini önlemeye yardımcı olur.

## Adım adım materyal oluşturma

### 1. Yeni bir materyal veri bloğu oluşturun

`BlendDataMaterials.new(name)` ana veri tabanına yeni bir materyal ekler ve oluşturulan `Material` veri bloğunu döndürür. `name` parametresi yeni veri bloğuna verilecek addır; dokümantasyona göre bu değer `None` olamaz.

```python
import bpy

mat = bpy.data.materials.new(name="Mimari_Materyal")
```

Bu adımın sonunda `mat` değişkeni oluşturulan materyale erişir. Materyal veri tabanına eklenir; ancak kod onu belirli bir geometriye bağlamaz. Bu nedenle materyal oluşturma ve bir nesnenin materyal koleksiyonunda kullanma işlemlerini ayrı adımlar olarak düşünmek gerekir.

### 2. Rengi ve yüzey karakterini ayarlayın

Dokümantasyonda `diffuse_color`, `metallic` ve `roughness` materyal özellikleri arasında yer alır. `diffuse_color` dört öğeli bir dizi olarak tanımlanmıştır. Metalik miktarı ve pürüzlülük 0 ile 1 aralığında değer alır; belgelerde varsayılan pürüzlülük 0,4, varsayılan metalik miktarı ise 0 olarak belirtilir.

```python
mat.diffuse_color = (0.72, 0.64, 0.52, 1.0)
mat.metallic = 0.0
mat.roughness = 0.4
```

Bu değerler örnek başlangıç değerleridir; belirli bir ürün veya gerçek yapı malzemesi için doğrulanmış bir reçete değildir. Renk dizisinin dört bileşenini ve sayısal özellikleri ihtiyaçlarınıza göre değiştirebilirsiniz. Birden fazla varyant hazırlarken materyal adlarını ayırt edilebilir seçmek, veri tabanındaki öğeleri yönetmeyi kolaylaştırır.

### 3. Şeffaflık yöntemini seçin

Güncel `Material` API’sindeki `surface_render_method`, yüzeylerin nasıl karıştırılacağını ve yöntemin bazı özelliklerle uyumluluğunu belirler. Belgelerde `DITHERED` ve `BLENDED` olmak üzere iki seçenek bulunur. `DITHERED`, şeffaflığı gri tonlu bir dağılımla işler ve render geçişleriyle ışın izleme desteğiyle uyumlu olarak tanımlanır. `BLENDED` ise renkli şeffaflık sağlar; ancak dokümantasyona göre render geçişleri ve ışın izlemeyle birlikte kullanılamaz.

```python
mat.surface_render_method = 'DITHERED'
```

Bu satır şeffaflık için kullanılacak yöntemi seçer; tek başına belirli bir opaklık miktarı ayarlamaz. Renkli şeffaflık gerekiyorsa `BLENDED` seçeneği değerlendirilebilir. Karar verirken render geçişleri veya ışın izleme uyumluluğunun iş akışında gerekli olup olmadığını göz önünde bulundurun.

`alpha_threshold` da materyalin belgelenmiş özelliklerinden biridir. Alfa değeri bu sınırın üzerine çıkan pikseller render edilir. Özellik 0 ile 1 aralığında çalışır ve dokümantasyonda başlangıç değeri 0,5 olarak verilir. Bu değeri değiştirecekseniz hedeflenen görünümü test edin ve kullandığınız Blender sürümündeki API açıklamasını kontrol edin.

### 4. Materyali gerektiğinde kaldırın

Bir materyal artık gerekmiyorsa `BlendDataMaterials.remove` ile mevcut blend dosyasından kaldırılabilir. `do_unlink=True`, silme işleminden önce materyalin kullanıldığı bağlantıların kaldırılmasını sağlar. Diğer parametreler kullanıcı sayaçlarının güncellenmesi ve arayüzün silinen materyale referans vermemesini sağlamakla ilgilidir.

```python
bpy.data.materials.remove(mat, do_unlink=True)
```

Bu kodu çalıştırmadan önce kaldırılacak materyalin doğru olduğundan emin olun. `do_unlink=True` kullanım bağlantılarını da silme öncesinde kaldırır; materyalin sahnede kullanılmaya devam etmesi gerekiyorsa bu davranış istenmeyen sonuç doğurabilir. Silme adımını önce dosyanın bir kopyasında denemek güvenli bir kontrol yöntemidir.

## Sık yapılan hatalar

- **Eski özelliği güncel yöntem sanmak:** `blend_method`, şeffaf yüzeyler için eski bir özelliktir ve dokümantasyonda `surface_render_method` kullanılması önerilir. Yeni bir çalışma hazırlarken güncel API’deki yöntemi esas alın.
- **`use_nodes` özelliğini ayar anahtarı gibi kullanmak:** Belgelerde bu özellik Blender 5.0’dan itibaren kullanımdan kaldırılmış olarak işaretleniyor. Ayarlamanın etkisi olmadığı, okunduğunda da her zaman `True` döndürdüğü ve kaldırılmasının Blender 6.0 için planlandığı belirtiliyor. Bu nedenle örnek iş akışında bu özelliği kullanmıyoruz.
- **Renk ve sayısal aralıkları karıştırmak:** `diffuse_color` dört öğeli bir dizidir; `metallic` ve `roughness` ise 0–1 aralığında değerler alır. Beklenen veri türünü ve aralıkları API belgesinden kontrol edin.
- **Materyal oluşturmayı nesneye atamayla aynı sanmak:** Yeni veri bloğu oluşturmak materyali ana veri tabanına ekler; bu işlem onu bir geometri nesnesine otomatik olarak atamaz.
- **Silme işleminde kullanım bağlantılarını gözden kaçırmak:** `do_unlink=True`, materyalin tüm kullanımlarını silmeden önce kaldırır. Bu seçeneğin etkisini anlamadan temizlik kodunu mevcut dosyada çalıştırmayın.

## Mimarlık ve görselleştirme iş akışında kullanım

Bu yöntem, benzer materyal veri bloklarını kodla üretmek veya temel özellikleri tekrarlanabilir biçimde düzenlemek isteyen mimarlık ofisleri, iç mimarlar ve görselleştirme ekipleri için bir başlangıç noktasıdır. Aynı adlandırma ve temel değer düzenini birden fazla materyalde kullanmak gerektiğinde kodla oluşturma, elle tekrarlanan işlemleri azaltabilir. Ancak bu rehber nesneye atama, belirli render motorlarının davranışı veya harici materyal kütüphaneleri hakkında bir iş akışı tarif etmez.

Projeye geçmeden önce kullanılan Blender sürümü ile güncel API belgesini karşılaştırın; şeffaflık yönteminin render geçişleri ve ışın izlemeyle uyumluluğunu da kontrol edin. Kaynaklar donanım gereksinimi, performans ölçümü, ücret veya lisans bedeli belirtmediğinden bu konularda kesin bir sonuç çıkarılamaz. Ofis içinde paylaşılacak kodlarda, silme işlemi gibi veri değiştiren adımları önce kopya dosyada sınamak yerinde olur.

## Sonraki adımlar

Temel oluşturma ve ayar adımları çalıştıktan sonra, kullanılan Blender sürümünün `Material` ve `BlendDataMaterials` API sayfalarını proje ihtiyaçlarına göre inceleyin. Dokümantasyonda materyal veri bloğunun `node_tree` özelliği ve materyallere referans veren farklı koleksiyonlar da listeleniyor; bu rehber bunların nasıl düzenleneceğini açıklamıyor. Bir sonraki geliştirme aşamasını belirlerken belgelenmiş özelliklere ve projenin doğrulanmış gereksinimlerine dayanmak, uyumluluk sorunlarını azaltır.

## Kaynak ve lisans

Bu rehber, Blender API belgelerindeki `BlendDataMaterials` ve `Material` sayfalarından Türkçeye uyarlanmıştır. Her iki kaynak da CC BY-SA 4.0 lisansıyla sunulmaktadır. Örnek kodlar bu rehber için yazılmıştır; kaynaklardan kod alıntısı yapılmamıştır.

## Pro ipucu
Materyali silen kodu önce proje dosyasının bir kopyasında deneyin; do_unlink=True kullanımları silme öncesinde kaldırır.

## 3dsınıfı yorumu
Blender Python API’siyle materyal oluşturmak, tekrarlanan temel ayarları standartlaştırmak isteyen ofisler ve görselleştirme ekipleri için pratik bir başlangıç sunuyor. Renk, metalik ve pürüzlülük değerlerinin kodla belirlenmesi, dosyalar arasında aynı başlangıç düzenini korumayı kolaylaştırabilir.

Bununla birlikte dokümantasyon bu özelliklerin belirli render motorlarındaki sonucunu, performans etkisini veya Türkiye’deki lisans maliyetlerini açıklamıyor. Ekipler kullandıkları Blender sürümünü, şeffaflık uyumluluğunu ve mevcut sahne bağlantılarını kontrol etmeli; özellikle materyal silme adımını proje kopyasında denemeli. Bu yaklaşım, kaynaklarda donanım yükseltmesi gerektiren bir özellik olarak tanımlanmıyor.

## Kaynaklar
- [docs.blender.org (CC BY-SA 4.0)](https://docs.blender.org/api/current/bpy.types.BlendDataMaterials.html) (özet)
- [docs.blender.org (CC BY-SA 4.0)](https://docs.blender.org/api/current/bpy.types.Material.html) (özet)

_Yapay zekâ ile yazıldı, kaynaklarla doğrulandı. © 3dsınıfı_
