Qısaca
- bpy.data.materials.new(name=...) ilə əsas verilənlər bazasında yeni material yaratmaq olar.
- diffuse_color, metallic və roughness materialın əsas görünüş parametrləri arasındadır.
- Müasir API-də şəffaflıq və uyğunluq üçün surface_render_method xüsusiyyətindən istifadə olunur.
- Material silinərkən do_unlink=True, silməzdən əvvəl istifadə bağlantılarının ləğv olunmasını təmin edir.
Bu bələdçidə nə öyrənəcəksiniz?
Blender-in Python API-si materialları interfeysdə bir-bir tənzimləmək əvəzinə, onları kodla yaratmağa və əsas xüsusiyyətlərini təyin etməyə imkan verir. Bu bələdçidə material datablock-u yaradacaq, adını təyin edəcək, rəng, metaliklik və nahamarlıq dəyərlərini tənzimləyəcəyik. Ardınca API sənədlərində sadalanan şəffaflıq seçimlərinə və istifadə olunmayan materialı verilənlər bazasından silmək üsuluna baxacağıq.
Blender API sənədləri Material datablock-unu həndəsi obyektlərin render zamanı görünüşünü müəyyən edən struktur kimi təsvir edir. Materiallar Blender-in əsas verilənlər bazasındakı kolleksiyada saxlanılır. Aşağıdakı nümunələr bu kolleksiya və material xüsusiyyətlərinin sənədləşdirilmiş istifadəsinə əsaslanır; konkret səhnəyə və ya obyekt növünə material təyin etmə addımlarını əhatə etmir.
Tələblər və versiya qeydi
Nümunələrdən istifadə etmək üçün Blender-in Python API-sinə çıxış olan Blender mühiti lazımdır. Mənbə sənədlərdə API səhifələri “current” kimi təqdim olunur və konkret Blender versiyası tələb edilmir. Buna görə layihədə istifadə olunan versiyanın API səhifəsindəki xüsusiyyətlərlə uyğun gəldiyini yoxlamaq vacibdir. Mənbələrdə hesab, abunəlik və ya ayrıca lisenziya tələbi qeyd olunmur.
Kod parçaları Python dilindədir və Blender-in bpy API-sindən istifadə edir. Onları Blender-in Python API-sinə çıxışı olan mühitdə işə salın; nümunələrin xarici Python mühitinin Blender məlumatlarına çıxışını təmin etdiyinə zəmanət verilmir. İlk sınağı vacib layihə faylının surətində aparmaq, arzuolunmaz məlumat dəyişikliklərinin əsas səhnəyə təsir etməsinin qarşısını almağa kömək edir.
Addım-addım material yaratmaq
1. Yeni material datablock-u yaradın
BlendDataMaterials.new(name) əsas verilənlər bazasına yeni material əlavə edir və yaradılmış Material datablock-unu qaytarır. name parametri yeni datablock-a veriləcək addır; sənədlərə görə bu dəyər None ola bilməz.
import bpy
mat = bpy.data.materials.new(name="Mimari_Materyal")Bu addımın sonunda mat dəyişəni yaradılmış materiala çıxış verir. Material verilənlər bazasına əlavə olunur, lakin kod onu konkret həndəsəyə bağlamır. Buna görə material yaratmağı və onu obyektin material kolleksiyasında istifadə etməyi ayrı addımlar kimi nəzərdən keçirmək lazımdır.
2. Rəngi və səthin xarakterini tənzimləyin
Sənədlərdə diffuse_color, metallic və roughness material xüsusiyyətləri arasında göstərilir. diffuse_color dörd elementli massiv kimi müəyyən edilib. Metaliklik və nahamarlıq 0–1 aralığında dəyərlər alır; sənədlərdə standart nahamarlıq 0,4, standart metaliklik isə 0 kimi göstərilir.
mat.diffuse_color = (0.72, 0.64, 0.52, 1.0)
mat.metallic = 0.0
mat.roughness = 0.4Bu dəyərlər nümunə üçün başlanğıc parametrləridir; konkret məhsul və ya real tikinti materialı üçün yoxlanmış resept deyil. Rəng massivinin dörd komponentini və ədədi xüsusiyyətləri ehtiyacınıza uyğun dəyişə bilərsiniz. Bir neçə variant hazırlayarkən material adlarını fərqləndirmək verilənlər bazasındakı elementləri idarə etməyi asanlaşdırır.
3. Şəffaflıq üsulunu seçin
Müasir Material API-sindəki surface_render_method səthlərin necə qarışdırılacağını və üsulun bəzi xüsusiyyətlərlə uyğunluğunu müəyyən edir. Sənədlərdə DITHERED və BLENDED olmaqla iki seçim var. DITHERED şəffaflığı boz tonlu paylanma ilə emal edir və render keçidləri, eləcə də şüa izləmə dəstəyi ilə uyğun kimi təsvir olunur. BLENDED isə rəngli şəffaflıq təmin edir; lakin sənədlərə görə render keçidləri və şüa izləmə ilə birlikdə istifadə edilə bilməz.
mat.surface_render_method = 'DITHERED'Bu sətir şəffaflıq üçün istifadə ediləcək üsulu seçir; özü-özlüyündə konkret qeyri-şəffaflıq səviyyəsi təyin etmir. Rəngli şəffaflıq lazımdırsa, BLENDED seçimini nəzərdən keçirmək olar. Qərar verərkən render keçidləri və ya şüa izləmə uyğunluğunun iş axınında lazım olub-olmadığını nəzərə alın.
alpha_threshold də materialın sənədləşdirilmiş xüsusiyyətlərindən biridir. Alfa dəyəri bu həddi keçən piksellər render olunur. Xüsusiyyət 0–1 aralığında işləyir və sənədlərdə başlanğıc dəyəri 0,5 göstərilir. Bu dəyəri dəyişəcəksinizsə, nəzərdə tutulan görünüşü sınaqdan keçirin və istifadə etdiyiniz Blender versiyasının API təsvirini yoxlayın.
4. Lazım olduqda materialı silin
Material artıq lazım deyilsə, BlendDataMaterials.remove vasitəsilə cari blend faylından silinə bilər. do_unlink=True silməzdən əvvəl materialın istifadə olunduğu bağlantıların ləğv edilməsini təmin edir. Digər parametrlər istifadəçi sayğaclarının yenilənməsi və interfeysin silinmiş materiala istinad etməməsi ilə bağlıdır.
bpy.data.materials.remove(mat, do_unlink=True)Bu kodu işə salmazdan əvvəl silinəcək materialın düzgün olduğuna əmin olun. do_unlink=True istifadə bağlantılarını da silməzdən əvvəl ləğv edir; materialın səhnədə istifadə olunmağa davam etməsi lazımdırsa, bu davranış arzuolunmaz nəticə verə bilər. Silmə addımını əvvəlcə faylın surətində sınamaq təhlükəsiz yoxlama üsuludur.
Tez-tez rast gəlinən səhvlər
Köhnə xüsusiyyəti müasir üsul hesab etmək:
blend_methodşəffaf səthlər üçün köhnə xüsusiyyətdir və sənədlərdəsurface_render_methodistifadə etmək tövsiyə olunur. Yeni iş hazırlayarkən müasir API-dəki üsulu əsas götürün.use_nodesxüsusiyyətini parametr açarı kimi istifadə etmək: Sənədlərdə bu xüsusiyyət Blender 5.0-dan etibarən köhnəlmiş kimi işarələnir. Tənzimləmənin heç bir təsiri olmadığı, oxunduqda isə həmişəTrueqaytardığı və silinməsinin Blender 6.0 üçün planlaşdırıldığı bildirilir. Buna görə nümunə iş axınında bu xüsusiyyətdən istifadə etmirik.Rəng və ədədi aralıqları qarışdırmaq:
diffuse_colordörd elementli massivdir;metallicvəroughnessisə 0–1 aralığında dəyərlər alır. Gözlənilən verilən tipini və aralıqları API sənədlərindən yoxlayın.Material yaratmağı onu obyektə təyin etməklə eyniləşdirmək: Yeni datablock yaratmaq materialı əsas verilənlər bazasına əlavə edir; bu əməliyyat onu həndəsi obyektə avtomatik təyin etmir.
Silmə zamanı istifadə bağlantılarını nəzərdən qaçırmaq:
do_unlink=Truematerialın bütün istifadələrini silməzdən əvvəl ləğv edir. Təsirini anlamadan təmizləmə kodunu mövcud faylda işə salmayın.
Memarlıq və vizuallaşdırma iş axınında istifadə
Bu üsul oxşar material datablock-larını kodla yaratmaq və ya əsas xüsusiyyətləri təkrarlana bilən şəkildə tənzimləmək istəyən memarlıq ofisləri, interyer dizaynerləri və vizuallaşdırma komandaları üçün başlanğıc nöqtəsidir. Bir neçə materialda eyni adlandırma və əsas dəyər quruluşundan istifadə etmək lazım olduqda, kodla yaratma təkrarlanan əl əməliyyatlarını azalda bilər. Bununla belə, bu bələdçi obyektə təyinat, konkret render mühərriklərinin davranışı və ya xarici material kitabxanaları barədə iş axınını təsvir etmir.
Layihəyə başlamazdan əvvəl istifadə olunan Blender versiyasını müasir API sənədləri ilə müqayisə edin; şəffaflıq üsulunun render keçidləri və şüa izləmə ilə uyğunluğunu da yoxlayın. Mənbələrdə aparat tələbləri, performans ölçmələri, ödəniş və ya lisenziya haqqı göstərilmir, buna görə bu mövzularda qəti nəticə çıxarmaq olmaz. Ofis daxilində paylaşılacaq kodlarda silmə əməliyyatı kimi məlumatları dəyişdirən addımları əvvəlcə faylın surətində sınaqdan keçirmək məqsədəuyğundur.
Növbəti addımlar
Əsas yaratma və tənzimləmə addımları işlədikdən sonra istifadə etdiyiniz Blender versiyasının Material və BlendDataMaterials API səhifələrini layihə ehtiyaclarına uyğun nəzərdən keçirin. Sənədlərdə material datablock-unun node_tree xüsusiyyəti və materiallara istinad edən müxtəlif kolleksiyalar da sadalanır; bu bələdçi onların necə tənzimlənəcəyini izah etmir. Növbəti inkişaf mərhələsini müəyyən edərkən sənədləşdirilmiş xüsusiyyətlərə və layihənin təsdiqlənmiş tələblərinə əsaslanmaq uyğunluq problemlərini azaldır.
Mənbə və lisenziya
Bu bələdçi Blender API sənədlərindəki BlendDataMaterials və Material səhifələrindən Azərbaycan dilinə uyğunlaşdırılıb. Hər iki mənbə CC BY-SA 4.0 lisenziyası ilə təqdim olunur. Nümunə kodlar bu bələdçi üçün yazılıb; mənbələrdən kod sitatı götürülməyib.
Mənbələr
2 mənbəMənbə mətnləri yenidən dərc edilmir; qısa sitatlar işarələnir, qalanı bizim xülasə və şərhimizdir.
Blender Python API ilə material yaratmaq, təkrarlanan əsas parametrləri standartlaşdırmaq istəyən ofislər və vizuallaşdırma komandaları üçün praktik başlanğıc təklif edir. Rəng, metaliklik və nahamarlıq dəyərlərini kodla təyin etmək fayllar arasında eyni başlanğıc quruluşunu qorumağı asanlaşdıra bilər.
Bununla belə, sənədlərdə bu xüsusiyyətlərin konkret render mühərriklərindəki nəticəsi, performansa təsiri və ya Türkiyədəki lisenziya xərcləri izah olunmur. Komandalar istifadə etdikləri Blender versiyasını, şəffaflıq uyğunluğunu və mövcud səhnə bağlantılarını yoxlamalı, xüsusən də materialın silinməsi addımını layihənin surətində sınamalıdır. Mənbələr bu yanaşmanı aparat yeniləməsi tələb edən xüsusiyyət kimi təqdim etmir.
Tez-tez verilən suallar
Blender Python API ilə materialı necə yaratmaq olar?
`bpy.data.materials.new(name="...")` çağırışı əsas verilənlər bazasında yeni material yaradır və material datablock-unu qaytarır.
Blender-də materialın metaliklik və nahamarlıq dəyərləri necə təyin olunur?
`Material` datablock-undakı `metallic` və `roughness` xüsusiyyətlərinə dəyər təyin etmək olar. API sənədlərində hər ikisi üçün 0–1 aralığı göstərilir.
Blender materialında müasir şəffaflıq üsulu hansıdır?
Müasir API qarışdırma üsulu və uyğunluq üçün `surface_render_method` xüsusiyyətini göstərir. Seçimlər `DITHERED` və `BLENDED` kimi qeyd olunur.



