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.
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.
mat.diffuse_color = (0.72, 0.64, 0.52, 1.0)
mat.metallic = 0.0
mat.roughness = 0.4Bu 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.
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.
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ümantasyondasurface_render_methodkullanı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 zamanTruedö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_colordört öğeli bir dizidir;metallicveroughnessise 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.
Sık sorulan sorular
Blender Python API ile materyal nasıl oluşturulur?
`bpy.data.materials.new(name="...")` çağrısı ana veri tabanında yeni bir materyal oluşturur ve materyal veri bloğunu döndürür.
Blender’da materyalin metalik ve pürüzlülük değerleri nasıl ayarlanır?
`Material` veri bloğundaki `metallic` ve `roughness` özelliklerine değer atanabilir. API dokümantasyonunda ikisi için de 0 ile 1 aralığı verilir.
Blender materyalinde güncel şeffaflık yöntemi hangisidir?
Güncel API, karıştırma yöntemi ve uyumluluk için `surface_render_method` özelliğini listeler. Seçenekler `DITHERED` ve `BLENDED` olarak belirtilir.
Kaynaklar
2 kaynakKaynak metinler yeniden yayımlanmaz; kısa alıntılar tırnak içinde verilir, geri kalanı özgün özet ve yorumdur.
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.




Yorumlar 0