Zbierka - Generovanie objektov - Blender
Generátor objektov
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.
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:
- Teória - rozcestník stručnej teórie pre koncepty, ktoré potrebujeme
- 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
- Blender 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
Inštrukcie
- Zapneme si nástroj Blender a z horných tabov si vyberieme ten s názvom "Scripting" pre otvorenie okna na písanie programu.
- Klikneme na ikonku "New," ktorou si vytvoríme nový súbor.
- 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:
- 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:
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: - Pre pokračovanie je potrebné naštudovať si Blender Python API, aby sme vedeli používať funkcie, ktoré potrebujeme.
- Najprv sa pokúsime vytvoriť si objekt v scéne priamo z kódu.
- Potom chceme týchto modelov vygenerovať viac vedľa seba a uložiť si ich napríklad do poľa.
- 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.
- 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.
- 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ý - rozmiestniť jednotlivé modifikácie do funkcií a podobne
- pri aplikácií viacerých modifikácií môže byť problém 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>
- pokúste sa vytvoriť postupné renderovanie objektu a pri každej iterácií ho nejak viac modifikovať ako napríklad:
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.
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.