Zbierka - Generovanie objektov - Blender

Zo stránky Parametrické a Generatívne 3D modelovanie
Verzia z 10:09, 3. máj 2024, ktorú vytvoril Admin (diskusia | príspevky)
Generátor objektov

Generátor objektov

Trvanie:
1 hod
Náročnosť:
pokročilý
Zručnosti:
cykly, podmienky, funkcie, práca s knižnicou bpy
Nástroj:
Blender

Jendným z hlavných metodík parametrického a generatívneho dizajnu je potrebné vedieť generovať mnoho objektov a vedieť ich rýchlo upravovať. Preto sme zahrnuli aj toto cvičenie, kde si ukážeme ako vieme rýchlo v Blenderi generovať objekty a apliklovať na ne viaceré zmeny.


Zadanie úlohy

Cieľom je predstaviť si bázové programovacie koncepty v Pythone, ktoré potrebujeme ak chceme generovať v Blenderi veľa objektov rýchlo a modifikovať ich za behu.

Inštrukcie

  1. Zapneme si nástroj Blender a z horných tabov si vyberieme ten s názvom "Scripting" pre otvorenie okna na písanie programu.
    Blender scripting.png
  2. Klikneme na ikonku "New," ktorou si vytvoríme nový súbor.
    Blender new script.png
  3. Uistíme sa, že v druhom okne máme otvorenú časť "3D viewport" s módom "Object Mode." Naše rozloženie okien by malo vyzerať nasledovne:
    Blender setup.png
  4. S takto nastaveným prostredím môžeme začať písať kód. Prvým krokom je importovať si knižnice, ktoré budeme potrebovať, hlavnou je knižnica bpy, ktorá nám sprostredkúva funkcionality pre prácu s Blenderom. Importujeme a použijeme ju nasledovne:
    Blender bpy import.png
    Takýmto volaním vieme získať objekt, ktorý máme aktuálne v scéne, kde pomocou "print" si dávame do konzoly vypísať jeho meno. Aby sme videli tento výstup v konzole, musíme si ju otvoriť v okne a to spravíme nasledovne:
    Blender system console.png
  5. Pre pokračovanie je potrebné naštudovať si Blender Python API, aby sme vedeli používať funkcie, ktoré potrebujeme.
  6. Najprv sa pokúsime vytvoriť si objekt v scéne priamo z kódu.
  7. Potom chceme týchto modelov vygenerovať viac vedľa seba a uložiť si ich napríklad do poľa.
  8. Následne chceme implementovať modifikáciu týchto objektov, skúsme to spraviť tak, že každý jeden objekt v scéne modifikujeme iným spôsobom. Na jeden môdel môžme palikovať jednu aj viac mien.
  9. Hlavným princípom, ktorý budeme využívať na modifikovanie objektov budeme využívať Blender modifikároti, o ktorých sa dozvieme viac v časti Blender modifiers.
  10. Ak máme vytvorených viac modifikácií a viac objektov, pokúsme sa tieto modifikácie aplikovať na dané objekty kým s nimi nie sme spokojní.

Testovanie a úpravy

Prezrite a skontrolujte si objekt a odpovedzte si na to či daný 3D model zodpovedá zadaniu a či ste s ním spokojní. Ak chcete skúsiť model upraviť, navrhujeme:

  • skúste kód optimalizovať aby bol dostatočne prehľadný - rozmeistniť jednotlivé modifikácie do funkcií a podobne
  • pri palikácií viacerých modifikácií môže byť problem s výkonom, skúste implementovať podmienky, ktoré zamedzia príliš veľkým alebo príliš nízkym hodnotám parametrov - vieme, že modifikároti majú urené rozdahy, ktoré môžeme aplikovať, napríklad "SUBSURF" úrovne môžu nadobúdať hodnotu <0,6>

Spätná väzba

Ak ste spokojní so svojím výsledným modelom, prezentujte ho ostatným, zhodnoťte koncepty, ktoré ste použili a ako ste ho implementovali, buďte otvorení k hodnoteniam od ostatných a k prípadným návrhom na zlepšenie.

Odkazy na materiály

V tejto sekcii nájdete odkazy na materiály, ktoré vám môžu pomôcť pri riešení daných problémov a naučia vás ako používať požívané nástroje:

  • Rozcestník dokumentácií Blendera - nájdete tu dokumentáciu pre vývojárov, používateľskú ríručku a aj Python API dokumentáciu
  • Python syntax - tu nájdete syntax a použitie jazyka Python s ukážkami použitia
  • Blendere Python API - dokumentácia Python API v Blenderi - nájdete tu všetko čo sa týka programovania s Python API (s knižnicou bpy) v Blenderi

Vzorové riešenie

Ak budete potrebovať motiváciu alebo si skontrolovať váš výsledný model, v nasledujúcich odkazoch nájdete implementáciu daného modelu v nástrojoch, ktoré ste na implementáciu mohli použiť:

Záver

V úlohe sme si predstavili akými spôsobmi môžeme generovať viac objektov naraz, manipulovať s nimi v scéne, modifikovať ich za behu programu či ako si isch uschovávať a prehľadávať. Tieto základy sú potrebné k tvorbe plnohodnotného generatívneho dizajnu.