Son xəbərlər
SANAA sərgisi Taichungda açılır: 30 illik istehsal və proses maketləriBlender Python ilə memarlıq səhnələrində material parametrləri: 5 addımdaUnreal Engine-də Nanite və Virtual Shadow Maps ilə memarlıq səhnəsi hazırlamaqBlender-də əyri modelləmə: memarlıq profillərini yol boyunca yaratmaqArchicad Global Library bələdçisi: Kitabxanaları idarə edin və lokallaşdırınGenerali Stadium-un dizaynı açıqlandı: San Siro-nu əvəz edəcəkGemini Nano Banana 2.1 ilə memarlıq vizuallarının yaradılması: prompt bələdçisiChaos Vantage animasiya bələdçisi: 3ds Max-dən V-Ray və Corona ilə renderBlender-də memarlıq interyer işıqlandırması: sahə işıqları və shader məsləhətləriMemarlıq videosu üçün Veo promptu necə yazılır: kadr, işıq və hərəkət
TəlimlərBlenderMari

Blender Python ilə memarlıq səhnələrində material parametrləri: 5 addımda

Blender-in Python API-si mövcud materialların pürüzlülük, metallic dəyəri və şəffaflıq metodunu kod vasitəsilə tənzimləməyə imkan verir. Bu bələdçi memarlıq səhnələrində əsas material parametrlərini addım-addım nəzərdən keçirir.

Mat suvaq, taxta, metal və şüşə səthləri göstərən müasir interyer vizuallaşdırmasıSüni intellekt şəkli
Təmsili şəkil, süni intellektlə yaradılıb.Şəkil: 3dsınıfı / FCA AI

Qısaca

  1. Obyektin aktiv materialına bpy.context.view_layer.objects.active vasitəsilə daxil olmaq mümkündür.
  2. Material.roughness və Material.metallic dəyərləri 0 ilə 1 aralığında təyin olunur.
  3. Şəffaflıq metodu üçün aktual sənədlərdə surface_render_method xüsusiyyəti önə çıxır.
  4. Həqiqi səth yerdəyişməsi seçimi sıx alt bölümləndirmə tələb edir.

Bu bələdçidə Blender-in Python API-si ilə səhnədəki obyektin aktiv materialına necə daxil olmağı və əsas görünüş parametrlərini dəyişməyi öyrənəcəksiniz. Blender-in aktual API sənədlərində materialların pürüzlülük, metallic əks etdirmə, rəng, şəffaflıq metodu və yerdəyişmə yanaşması kimi xüsusiyyətləri təsvir olunur. Nümunələr memarlıq vizuallaşdırmasında divar, taxta, metal və şüşəyə bənzər səthləri tənzimləmək üçün başlanğıc nöqtəsi kimi istifadə edilə bilər. Buradakı kodlar mövcud səhnə və material üzərində işləyir; sıfırdan material yaratmağı və ya düyün əsaslı material qurmağı əhatə etmir.

Bu təlimdə nələri öyrənəcəksiniz?

Əvvəlcə aktiv obyektin materialını Python vasitəsilə necə yoxlamağı görəcəksiniz. Ardınca rəng, roughness və metallic dəyərlərini tənzimləyəcək, şəffaflıq və yerdəyişmə seçimlərinin nə demək olduğunu, hansı məhdudiyyətləri nəzərə almaq lazım gəldiyini araşdıracaqsınız.

Bu yanaşma xüsusilə təkrarlanan səhnə düzəlişlərində və ya material dəyərlərini kodla dəyişmək istəyən istifadəçilər üçün faydalı ola bilər. Bununla belə, API xüsusiyyətlərini dəyişmək öz-özlüyündə hər hansı vizual nəticəyə zəmanət vermir. Mənbə sənədlərdə materialın tam düyün quruluşu və ya konkret memarlıq səthi üçün hazır shader resepti təqdim edilmir. Buna görə kod parçalarını mövcud materialın parametrlərini dəyişən kiçik əməliyyatlar kimi nəzərdən keçirin.

Tələblər

  • Blender-də açıq səhnə və aktiv obyekt olmalıdır.

  • Aktiv obyektə material təyin edilməlidir. Aktiv material olmadıqda kod heç bir dəyişiklik etmir.

  • Blender Python API-də bpy.context.view_layer.objects.active ilə aktiv obyektə, obyektin active_material xüsusiyyəti ilə isə onun aktiv materialına daxil olmaq mümkündür.

  • Bu nümunələr hesab, abunəlik və ya ayrıca əlavə tələb etmir. Mənbə Blender-in aktual API sənədləridir; konkret Blender versiyası üçün ayrıca quraşdırma təlimatı verilmir.

Sənədlərdə use_nodes xüsusiyyətinin 5.0 versiyasından etibarən köhnəldiyi və 6.0 versiyasında silinməsinin planlaşdırıldığı qeyd olunur. Bu təlim həmin xüsusiyyətə əsaslanmadığı üçün kod parçalarında use_nodes istifadə edilmir. Sənədlərdə həmçinin şəffaf səthlərin qarışdırma metodu üçün köhnə blend_method əvəzinə surface_render_method istifadə edilməli olduğu yazılıb.

Material parametrlərinin addım-addım tənzimlənməsi

1. Aktiv obyektin materialını yoxlayın

İlk addımda Blender-in aktiv obyektini götürün və ona aktiv material təyin edilib-edilmədiyini yoxlayın. Aşağıdakı kodu Blender Python API kontekstində işlədin:

python
obj = bpy.context.view_layer.objects.active
material = obj.active_material if obj else None

if material is not None:
    print(material.name)

Aktiv obyekt varsa, kod onun aktiv materialını dəyişənə mənimsədir. Material mövcud olduqda onun adını çap edir; beləliklə, növbəti parametrləri hansı material üzərində dəyişdiyinizi yoxlaya bilərsiniz. Aktiv obyekt və ya material yoxdursa, kod parametrləri redaktə etmə mərhələsinə keçmir.

2. Rəng, pürüzlülük və metallic dəyərini tənzimləyin

Material məlumat blokunda diffuse_color, roughness və metallic xüsusiyyətləri mövcuddur. Sənədlərdə diffuse_color dörd komponentli rəng massivi kimi təsvir edilir; roughness və metallic üçün etibarlı diapazon 0 ilə 1 arasındadır. Aşağıdakı nümunə əvvəlki addımda əldə edilən material dəyişəni vasitəsilə bu sahələri təyin edir:

python
if material is not None:
    material.diffuse_color = (0.55, 0.35, 0.20, 1.0)
    material.roughness = 0.6
    material.metallic = 0.0

Bu dəyərlər müvafiq API sahələrinə nümunə təyinatlardır; onların konkret taxta, boya və ya metal üçün düzgün fiziki qarşılıq olduğu anlamına gəlmir. Memarlıq vizuallaşdırmasında materialın görünüşünü səhnənin işıqlandırması və istifadə etdiyiniz material quruluşu ilə birlikdə yoxlayın. Mənbə sənəddə bu dəyərlərin öz-özlüyündə real dünyadakı səth ölçmələrinə uyğun gəldiyi deyilmir.

3. Şəffaflıq metodunu seçin

Aktual sənədlərdə surface_render_method xüsusiyyəti üçün iki seçim göstərilir: DITHERED və BLENDED. DITHERED boz tonlu hash şəffaflığına imkan verir və render pass-ləri, eləcə də şüa izləmə xüsusiyyətləri ilə uyğun kimi təsvir edilir. BLENDED isə rəngli şəffaflıq təmin edir, lakin render pass-ləri və şüa izləmə ilə uyğun deyil.

python
if material is not None:
    material.surface_render_method = 'DITHERED'

Bu parametr şəffaflığın necə qarışdırılacağını müəyyən edir; onun öz-özlüyündə şüşə görünüşü yaratdığını düşünməyin. Mənbədə şəffaflıq üçün lazım olan bütün shader düyünlərinin və ya alfa dəyərlərinin necə qurulacağı izah edilmir. Həmçinin köhnə blend_method xüsusiyyəti istifadədən çıxarılmış kimi işarələnib; yeni skriptdə aktual sənədlərdə göstərilən surface_render_method sahəsinə üstünlük verin.

4. Yerdəyişmə yanaşmasını müəyyən edin

Material sənədlərində displacement_method üçün BUMP, DISPLACEMENT və BOTH seçimləri göstərilir. BUMP yerdəyişmə görünüşünü bump mapping ilə təqlid edir. DISPLACEMENT yalnız həqiqi səth yerdəyişməsindən istifadə edir və sıx alt bölümləndirmə tələb edir. BOTH isə həqiqi yerdəyişməni bump yanaşması ilə birləşdirir.

python
if material is not None:
    material.displacement_method = 'BUMP'

Bu nümunə həqiqi həndəsi detal tələb etməyən başlanğıc parametridir. Həqiqi yerdəyişməni sınamaq istəyirsinizsə, sənədlərdə göstərilən sıx alt bölümləndirmə şərtini nəzərə alın; mənbədə tələb olunan alt bölmə sayı göstərilmir. Buna görə konkret dəyər təklif etməkdənsə, səhnə və həndəsə üzərində nəzarətli sınaq aparın.

5. Dəyişiklikləri birlikdə tətbiq edin

Bir neçə parametri eyni şərt daxilində dəyişmək aktiv material yoxlamasını bir yerdə saxlamağa imkan verir. Aşağıdakı nümunə əvvəlki addımlardakı sahələri birləşdirir:

python
if material is not None:
    material.roughness = 0.45
    material.metallic = 0.0
    material.surface_render_method = 'DITHERED'
    material.displacement_method = 'BUMP'

Buradakı ədədlər nümunə dəyərləridir; hər səhnəyə uyğun universal resept deyil. Öz faylınızda hər dəyişiklikdən sonra render nəticəsini və materialın mövcud quruluşunu yoxlayın. Bir neçə materiala toplu tətbiq, material yaratmaq və düyün ağacını redaktə etmək bu bələdçinin əhatə dairəsinə daxil deyil.

Tez-tez edilən səhvlər

İlk səhv aktiv obyektin mütləq materialı olduğunu güman etməkdir. Buna görə kodda None yoxlaması var. İkinci səhv BLENDED seçimini hər vəziyyətdə daha yaxşı şəffaflıq metodu hesab etməkdir: sənədlərdə bu metodun render pass-ləri və şüa izləmə ilə uyğunsuz olduğu bildirilir. Üçüncü səhv DISPLACEMENT seçib həndəsədə kifayət qədər alt bölümləndirmənin olmasını nəzərə almamaqdır.

Həmçinin yeni kodda blend_method kimi köhnəlmiş sahələrə əsaslanmayın. use_nodes xüsusiyyətindən də aktual material iş axını üçün açma-söndürmə açarı kimi istifadə etməyin; sənədlərdə bu sahənin 5.0-dan etibarən köhnəldiyi, 6.0-da silinməsinin planlaşdırıldığı və təyin edilməsinin təsirsiz olduğu bildirilir. Bu təlim düyün ağacının necə qurulmasını təsvir etmədiyindən onu dəyişdirən kod təqdim etmir.

Memarlıq və vizuallaşdırma iş axınına təsiri

Bu üsul səhnədəki aktiv materialın əsas xüsusiyyətlərini kodla dəyişmək istəyən memar, interyer dizayneri və vizuallaşdırma mütəxəssisləri üçün nəzərdə tutulub. Eyni layihədə roughness və ya metallic dəyərlərini müntəzəm yeniləmək üçün praktik başlanğıc nöqtəsidir; bununla belə, mənbələr performans artımına, avadanlıq tələblərinə və ya render mühərrikləri arasında uyğunluq zəmanətinə dair məlumat vermir. Şəffaflıq metodunda render pass və şüa izləmə uyğunluğunu, həqiqi yerdəyişmədə isə həndəsənin sıxlığını xüsusi nəzərə alın.

Növbəti addımlar

Əvvəlcə bir obyektin aktiv materialı üzərində işləyin və hər dəyişiklikdən sonra nəticəni yoxlayın. Ardınca eyni yanaşmanı real layihə faylınızda, istifadə etdiyiniz səhnə və render parametrləri ilə sınayın. Daha təkmil avtomatlaşdırma üçün Blender API sənədlərindəki Material və Object bölmələrinə birlikdə nəzər sala bilərsiniz; bu mənbələr mövcud material xüsusiyyətlərini və obyektin aktiv materiala çıxışını təsvir edir. Yeni istehsal skriptindən istifadə etməzdən əvvəl seçilmiş Blender versiyasında API davranışını ayrıca yoxlayın.

Mənbə və lisenziya

Bu təlim Blender API-nin Material və Object sənədlərindəki xüsusiyyət təsvirlərinə əsaslanır. Hər iki mənbə CC BY-SA 4.0 lisenziyalıdır; məzmun Azərbaycan dilinə uyğunlaşdırılıb, nümunə kodlar isə memarlıq materiallarının tənzimlənməsi kontekstində yenidən yazılıb.

Mənbələr

2 mənbə
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/api/current/bpy.types.Material.html
Xülasə
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/api/current/bpy.types.Object.html
Xülasə

Mənbə mətnləri yenidən dərc edilmir; qısa sitatlar işarələnir, qalanı bizim xülasə və şərhimizdir.

3dsınıfı rəyi
3dRedaktorun qiymətləndirməsi

Türkiyədəki kiçik ofislər və tələbələr üçün bu yanaşma mövcud material dəyərlərini tez dəyişmək və təkrarlanan düzəlişləri skript məntiqi ilə düşünmək baxımından əlçatan başlanğıc nöqtəsidir. Bələdçidəki nümunələr Blender-in öz API-sinə əsaslanır; mənbələrdə əlavə alət və ya avadanlıq yatırımı tələb olunduğuna dair məlumat yoxdur.

Bununla belə, kod öz-özlüyündə istehsal keyfiyyətli material yaratmır. Xüsusilə şəffaflıqda render parametrləri ilə uyğunluğu, yerdəyişmədə həndəsənin sıxlığını və istifadə olunan Blender versiyasındakı API davranışını yoxlamaq lazımdır. Əvvəlcə faylın surətində sınaq aparıb nəticəni səhnəyə uyğun qiymətləndirmək ən təhlükəsiz yoldur.

Tez-tez verilən suallar

Blender Python-da aktiv materiala necə daxil olmaq olar?

Aktiv obyektə `bpy.context.view_layer.objects.active` ilə daxil olmaq mümkündür. Obyektin `active_material` xüsusiyyəti aktiv materialı verir; obyekt və ya material yoxdursa, bunu yoxlamaq lazımdır.

Blender-də şəffaflıq üçün blend_method, yoxsa surface_render_method istifadə edilməlidir?

Aktual API sənədlərində istifadədən çıxarılmış `blend_method` əvəzinə `surface_render_method` istifadə edilməsi göstərilir. Sənədlərdə `DITHERED` və `BLENDED` seçimləri sadalanır.

Blender-də həqiqi displacement üçün nə lazımdır?

`DISPLACEMENT` metodu həqiqi səth yerdəyişməsindən istifadə edir və sıx alt bölümləndirmə tələb edir. Mənbə sənədlərdə konkret alt bölmə sayı göstərilmir.

Şərhlər və forum türkcədir.Müzakirəyə qoşulun
+

Əlaqəli xəbərlər