3D modelování v Rhinu - díl první - 3D grafika - 3Dscena.cz: 3D grafika jako na dlani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



3D grafika

3D modelování v Rhinu - díl první

10. března 1999, 00.00 | Dnes přinášíme první díl návodu na zhotovení přesného a detailního modelu umyvadla v programu Rhinoceros. Staňte se tvůrcem virtuální reality.

Výsledný model V tomto novém seriálu se budete setkávat s modelováním konkrétních objektů z praxe 3D grafika. Všechny modely budou vytvořeny v Rhinu pomocí NURBS geometrie. Dnes budeme modelovat umyvadlo na základě dodaných výkresů. Budu předpokládat alespoň minimální znalost programu (kreslení křivek, používání funkce Snap a podobně). Pokud si stáhnete soubor s připravenými křivkami a budete postupovat přesně podle návodu, neměli byste mít s modelováním žádné problémy.

Nejprve jsem oskenoval řezy umyvadla z dodaného katalogu (půdorys a řez). V Photoshopu jsem oba obrázky oříznul tak, aby měly stejnou velikost (konkrétně to bylo 400x400 bodů), samozřejmě předpokládám, že jsou oba pohledy ve stejném měřítku. Tyto obrázky jsem pomocí příkazu View/Background bitmap/Place umístil v Rhinu do pozadí odpovídajících pohledů (Top a Right). Podkladové bitmapy musí mít stejnou velikost - to nejlépe zajistím tak, že zapnu uchopování mřížky (ve spodní liště tlačítko Snap) a velikost podkladového obrázku v obou pohledech snadno odpočítám pomocí uzlových bodů mřížky. Stačí zachovat rozměr v horizontálním směru, vertikální rozměr se automaticky dopočítává podle poměru stran obrázku (v mém případě je to ale stejně čtverec). Teď ještě musím oba podkladové obrázky nastavit přesně vůči sobě. K tomu mi pomohou osy špuntu umyvadla - jsou vidět na obou pohledech, takže jejich střed umístím do počátečních bodů konstrukčních rovin obou pohledů (Top a Right). Provedu to následovně (v pohledu Top):

  1. Pohled si dostatečně zvětším, abych viděl dobře osy špuntu.
  2. V roletovém menu vyberu příkaz View/Background bitmap/Move.
  3. Na výzvu Point to move from (Výchozí bod přesunutí) kliknu myší co možná nejpřesněji do středu os špuntu.
  4. Zapnu uchopování uzlů mřížky (ve spodním stavovém řádku klapnu na Snap)
  5. Na výzvu Point to move to (Cílový bod přesunutí) kliknu myší do počátku os konstrukční roviny (pomůže mi v tom zapnuté uchopování objektů z předchozího kroku).
  6. Totéž provedu v pohledu Right s druhým podkladovým obrázkem.

Teď mají oba obrázky stejnou velikost a jsou vůči sobě správně umístěny. Následuje poměrně mechanická činnost - pomocí funkce Curve/Free-form/Control points obkreslím obrysy umyvadla podle výkresu. Výkresy bohužel kvůli autorským právům nemohu přetisknout, zde jsou alespoň výsledné křivky:

křivky obkreslené podle výkresů

I když je obkreslení výkresů relativně jednoduché, čeká zde několik potencionálních problémů a nástrah. Zde jsou některá doporučení, jak se jim vyhnout.

  • pokud je křivka symetrická podle osy, nakreslete pouze její polovinu, tu ozrcadlete podle osy souměrnosti (Transform/Mirror) a obě křivky spojte (Edit/Join). Chcete-li zajistit, aby křivka začínala přesně v ose symetrie, použijte Snap (uchopování uzlů mřížky) nebo nakreslete křivku s přesahem, v ose nakreslete rovnou čáru a křivku pomocí této čáry ostřihněte funkcí Tools/Trim. Symetrie má jednu obrovskou výhodu - můžete si být jisti, že obě poloviny mají přesně stejný tvar, což by se vám při ručním kreslení obou polovin v žádném případě nepovedlo.
  • dávejte však pozor na to, aby obě ozrcadlené části byly alespoň G1 spojité (to znamená, že jejich koncové body sdílí společnou tečnu). Spojitost sice můžete zajistit až po ozrcadlení příkazem Curve/Edit tools/Match (v dialogovém okně Match curve options byste zatrhli položky Tangency a Average curves), avšak lze to řešit podstatně elegantněji hned při tvorbě křivky (viz další odstavec), navíc při použití funkce Match dojde ke změně tvaru vstupních křivek (velikost této změny závisí na tom, jak velký byl rozdíl mezi směry tečen v obou koncových bodech).
  • kreslete křivky pomocí aproximačních, nikoliv interpolačních bodů (příkaz Curve/Free-form/Control points, ne Curve/Freeform/Interpolate point). Interpolační body (zvané též Greville points) svádí svou zdánlivou "uživatelskou přítulností" - stačí jednoduše klikat přesně na křivku v podkladovém obrázku a vytvořená NURBS křivka je víceméně stejná, jako na podkladovém obrázku. Tento způsob však neposkytuje kontrolu nad parametrizací křivky (křivka má pak neuniformní uzlový vektor, což může při některých operacích přinášet problémy) a nemáte ani kontrolu nad umístěním řídicích bodů (ty jsou dopočítány automaticky). Z teorie NURBS vyplývá, že dva segmenty křivky navazují se spojitostí G1, pokud leží tři jejich řídicí body (společný bod a po jednom bodu z každé křivky) v jedné přímce. Proto stačí, abych v mém konkrétním případě umístil dva řídicí body rovnoběžně s osou x a po ozrcadlení budou oba segmenty G1 spojité. Těžko se to vysvětluje, podívejte se raději na obr. 2. To bych však pomocí interpolačních bodů nemohl provést, neboť řídicí body se dopočítají až na základě interpolačních bodů.
  • některé křivky se navzájem dotýkají (například křivky č. 2 a 4, 1 a 7 atd.). Jak zajistit, aby se dotýkaly, když jsou navzájem kolmé? Například křivku č. 7 nakreslím v pohledu Right, zobrazím si její řídicí body (Edit/Visibility/Control points/Show), zapnu uchopování objektů (ve stavovém řádku kliknu na Osnap a zatrhnu Near), a přesunu koncový bod křivky č. 7 tak, aby se dotýkal křivky č. 1 (přitom je vhodné držet klávesu Shift, aby nedošlo k "vybočení" koncového bodu mimo rovinu křivky).

tři uzly v jedné přímce zajistí G1 spojitost dvou křivek

Výsledný 3DM soubor s křivkami (9 kB) si můžete stáhnout zde. Příště budeme v modelování pokračovat vytvářením jednotlivých ploch.

--

Autor je spolumajitelem společnosti Dimensio s.r.o., která produkt Rhinoceros na našem území distribuuje.

Tématické zařazení:

 » 3D grafika  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: