Zbierka - Voronoiove objekty - Blender

Zo stránky Parametrické a Generatívne 3D modelovanie
Verzia z 16:18, 27. apríl 2024, ktorú vytvoril Admin (diskusia | príspevky)

Voronoiove objekty - časť: Blender

Voronoiov objekt 4 Voronoiov objekt 5 Voronoiov objekt 6

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

V predošlej úlohe sme sa pokúsili vytvoriť si voronoiov objekt v OpenSCADe a prišli sme k záveru, že takýto spôsob nie je úplne jednoduchý ani optimálny. Preto teraz prechádzame k nástroju Blender a pokúsime sa implementovať podobné objekty jednoduchšími spôsobmi pomocou funkcionalít, ktoré Blender už obsahuje. Použijeme pritom vysokoúrovňový programovací jazyk Python. Budeme pomocou neho implementovať funkcie, ktoré nám umožnia modifikovať objekt a rzšíria nám možnosti manipulácie s ním. Keďže parametrické 3D modelovanie využíva definované parametre na vytváranie modelov, čo umožňuje ľahkú úpravu a iteráciu, tieto funkcie budú využívať rôzne parametre, ktoré môžu a nemusia byť od seba závíslé. Generatívne 3D modelovanie zas vytvára modely pomocou algoritmov, pravidiel a procedúr, čo umožňuje vytváranie zložitých štruktúr a vzorov, pokúsime sa pre to implementovať základné algoritmy, ktoré nám neskôr takéto generatívne modelovanie umožnia.


Zadanie úlohy

Cieľom tejto úlohy je najmä naučiť sa používať Python s Blenderom, pracovať s nástrojmi v Blenderi a ukázať si ako môžeme generovať objekty s parametrickým dizajnom rýchlejšie než v predošlom OpenSCADe. Narozdiel od predošlých úloh, v tejeto si nemusíte vytvárať základný objekt, môžeme si nejaký stiahnuť, prípadne vybrať z ponuky v Blenderi.

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 konzoli vypísať jeho meno. Aby sme videli tento výstup v konzole, musíme si ju otvoriť v okne a to spravíme nasledovne:
    Súbor:Bender system console.png
    Ak sa nám to podarilo, tak môžeme vidieť výpis mena objektu v konzole a ako sa nám tento objekt zorbazuje aj vo vyčítaní objektov z kolekcie scény:
    312px
  5. Pre pokračovanie je potrebné naštudovať si Blender Python API, aby sme vedeli používať funkcie, ktoré potrebujeme.
  6. Hlavným princípom, ktorý budeme využívať pre vytvorenie voronoiovho objektu je aplikácia modifikátorov, ktoré nám Blender ponúka. Viac as o ních dozvieme v časti Blender moodifiers.

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:

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:

  • 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