Hlavní navigace

Bézierove a NURBS krivky v Blenderi

Miro Chodil 14. 8. 2009

V dnešnej časti sa pozrieme na konkrétne typy kriviek, ktoré predstavujú Bézierove a NURBS krivky. Pri Bézierovych krivkách si popíšeme hlavne základnú prácu s pomocnými bodmi a jednotlivé typy riadiacich bodov. Neskôr sa zameriame na panel Curve Tools, ktorý obsahuje väčšinu nastavení NURBS kriviek.

Bézierove krivky

Ako prvé si popíšeme Bézierove krivky, s ktorými ste sa už určite stretli v iných programoch slúžiacich na prácu s počítačovou grafikou. Ako sme si už uviedli, Bézierove aj NURBS krivky majú spoločné to, že ich trajektóriu definuje riadiaci polygón, ktorý sa skladá z riadiacich (kontrolných) bodov. Pri Bézierovych krivkách sa však na rozdiel od NURBS kriviek stretnete aj s pomocnými bodmi, ktoré slúžia na úpravu smeru jednotlivých segmentov krivky. Pod pojmom segment si môžete predstaviť spojnicu medzi dvoma riadiacimi bodmi na krivke, teda akúsi obdobu hrán (edge) využívaných pri Mesh objektoch. Každý riadiaci bod obsahuje dva pomocné body, pomocou ktorých je možné určiť tvar jednotlivých segmentov krivky. Pomocné body spoznáte podľa toho, že sú spojené s riadiacimi bodmi úsečkou a nevedie cez nich žiadny segment. Poloha pomocných bodov v závislosti od polohy riadiaceho bodu určuje smer, ktorým bude daný segment vedený. Vzdialenosť pomocných bodov od riadiaceho bodu určuje, do akej miery je segment ovplyvnený smerom daného pomocného bodu.

Blender 9

Riadiace body sú s pomocnými bodmi viazané rodičovskou väzbou, takže v prípade, že pohneme s riadiacim bodom, rovnako sa pohnú aj jeho pomocné body. S pomocnými bodmi môžete však pohybovať úplne nezávisle, závisle na čom sa však mení typ daného riadiaceho bodu. V Blenderi rozlišujeme medzi štyrmi typmi riadiacich bodov:

Auto Handle: Spojnica medzi riadiacim a pomocnými bodmi je žltá. Obidva pomocné body ležia na jednej priamke, pričom táto priamka je rovnobežná s priamkou, ktorá spája predchádzajúci a nasledujúci riadiaci bod na danej krivke. V prípade, že daný riadiaci bod vytvára segment iba s jedným riadiacim bodom, obidva pomocné body ležia na rovnakej priamke ako daný riadiaci bod. Túto možnosť môžete vyvolať klávesovou skratkou Shift + H. Dĺžka krivky sa automaticky upravuje do podoby, kedy je prechod medzi naväzujúcimi segmentami najplynulejší. Pri zmene polohy niektorého z pomocných bodov sa chová ako Aligned Handle.
Vector Handle: Spojnica medzi pomocnými bodmi a riadiacim bodom je zelená. Vyvolať ju môžete pomocou klávesy V, pričom zvolené pomocné body sa nasmerujú do predchádzajúceho alebo nasledujúceho riadiaceho bodu, pričom vznikajú ostré prechody. Pri zmene polohy niektorého z pomocných bodov sa chová ako Free Handle.
Align Handle:Spojnica medzi pomocnými bodmi a riadiacim bodom je fialovej farby. Vyvolať ju môžete klávesou H (prepínanie medzi Free Handle a Aligned Handle). Obidva pomocné body ležia na jednej priamke.
Free Handle: Spojnica je čierna. Obidva pomocné body sú na sebe úplne nezávislé, teda nemusia ležať na rovnakej priamke, ani nemusia byť rovnako vzdialené od riadiaceho bodu. Vyvolať túto možnosť môžete pomocou klávesy H (prepínanie medzi Free Handle a Aligned Handle).

Typ riadiacich bodov môžete modifikovať aj v panely Transform Properties, a to pomocou kliknutia na rovnomenné tlačítko (musíte sa nachádzať v editačnom móde, a musíte mať označený minimálne jeden kontrolný bod).

NURBS krivky

Druhú variantu kriviek v Blenderi predstavujú NURBS krivky. NURBS krivky sú charakteristické veľkým množstvom nastavení a parametrov, pomocou ktorých je možné upravovať ich tvar. Všetky tieto parametre môžeme nájsť na panely Curve Tools. Nastavenia v odstavci Convert sme si opisovali už v predchádzajúcom dieli, a slúžia na konverziu kriviek. (Typ krivky do ktorej bude daná krivka konvertovaná je rovnomenná s názvom daného tlačítka). Nás však budú zaujímať skôr možnosti odstavcu Make Knots, ktoré predstavujú tlačítka Uniform U, Endpoint U, Bezier U, a numerické polia Order U a Resol U. Pri zvolenej možnosti Uniform U nemusí daná NURB krivka prechádzať žiadnym bodom riadiaceho polygónu, a teda sa chová ako „typická“ NURB krivka. Druhá možnosť Endpoint U predstavuje takmer to isté ako Uniform U, s tým rozdielom, že daná NURB krivka je zakončená presne v prvom a poslednom bode riadiaceho polygónu.

Pomocou tretieho tlačítka s názvom Bezier U môžeme danú krivku upraviť tak, aby sa v praxi správala ako Bézierova krivka. Všimnite si, že telo krivky sa s riadiacim polygónom pretne v každom treťom riadiacom bode. Numerické pole Order U nachádzajúce sa pod tlačítkom Bezier U určuje tzv. hĺbku počítania krivky. V praxi si to môžete predstaviť tak, že čím vyššia hodnota bude použitá, tým viac riadiacich bodov bude použitých pri výpočte výsledného tvaru krivky a tým pádom bude krivka „plynulejšia“. Kvôli tomu sa odporúča, aby ste v prípade, že daná krivka bude slúžiť ako trajektória pohybu objektu, používali hodnotu 5 a viac. Použitelné sú hodnoty 2 až 6, pričom Order 1 znamená bodový, Order 2 znamená lineárny, Order 3 znamená kvadratický, Order 4 znamená kubický, atď. Samozrejme, výška Order U je limitovaná aj počtom riadiacich bodov v riadiacom polygóne, keďže nemôžete použiť viac riadiacich bodov ako ich reálny počet. Pod Order U si môžete všimnúť tlačidlo Resol U, ktoré určuje hodnotu Order U použitú pri renderingu.

Ďalším dobre využiteľným parametrom je váha, ktorá sa používa v prípade, že chcete, aby niektoré riadiace body pôsobili na krivku viac (alebo menej) ako ostatné. V numerickom poli Weight (Váha) je určená váha, ktorú na daný riadiaci bod aplikujete kliknutím na tlačidlo Set Weight nachádzajúce sa v jeho bezprostrednej blízkosti. Implicitná hodnota váhy je 1.0, pričom čím je táto hodnota vyššia, tým je daná krivka viac priťahovaná určeným kontrolným bodom. K dispozícii sú vám ešte aj ďalšie tlačítka, ktoré upravujú hodnotu Weight na rovnomennú hodnotu. Konkrétne sú vám poskytnuté tlačítka 1.0, sqrt(2)/4, 0.25, a sqrt(0.5). (Sqrt predstavuje odmocninu).

Blender 9

Záver

Svoje schopnosti tvarovania kriviek si môžete skvele otestovať napríklad pri tvorbe jednoduchého klobúku. Najprv si do scény pridajte Bézierovu krivku, ktorú pomocou transformačných funkcíí a extrude upravte tak, aby pripomínala profil klobúku. Následne na ňu aplikujte funkciu spin (podrobnejšiu prácu s funkciou Spin sme si popisovali v piatom dieli), a vznikne vám pekný kruhový klobúk. Ak ste so svojou prácou spokojný, môžete si vyskúšať spraviť úplne to isté, len s použitím NURBS krivky. V nasledujúcej časti sa budeme zaoberať použitím textov v Blenderi. Aj keby to tak na prvý pohľad nemuselo vyzerať, texty a krivky sú úzko spojené témy a to kvôli tomu, že fonty (písma) využívané pri textoch sú často navrhované práve pomocou kriviek. V prípade akýchkoľvek problémov alebo nejasností ma môžete kontaktovať dole v diskusii.

Blender 9
Našli jste v článku chybu?

8. 1. 2010 18:35

Dobrý deň,
NURBS plochami sa zaoberá jedenásty diel tohoto seriálu – Modelujeme s plochami v Blenderi.


25. 11. 2009 21:31

Hlemza (neregistrovaný)

teď přesně nevím co máš namysli ale pkusim se poradit v edit modu zmáčkni skratki(ctrl+N) – recalculate normals outside…

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Lupa.cz: Slevové šílenství je tu. Kde nakoupit na Black Friday?

Slevové šílenství je tu. Kde nakoupit na Black Friday?

120na80.cz: Bojíte se encefalitidy?

Bojíte se encefalitidy?

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Lupa.cz: Není sleva jako sleva. Jak obchodům nenaletět?

Není sleva jako sleva. Jak obchodům nenaletět?

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

120na80.cz: Jak oddálit Alzheimera?

Jak oddálit Alzheimera?

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Vitalia.cz: Chtějí si léčit kvasinky. Lék je jen v Německu

Chtějí si léčit kvasinky. Lék je jen v Německu

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Podnikatel.cz: EET zvládneme, budou horší zákony

EET zvládneme, budou horší zákony