490 likes | 679 Views
3D tervezés. Öszeállította: Kosztyán Zsolt Tibor kzst@vision.vein.hu. Tartalom. Geomtriai modellezés Adatstruktúrák Megvilágítás Textúrák. Geometriai modellezés. 2D-s modellek 2½D-s modellek 3D-s modellek Nem teljes értékű testmodellek Huzalvázas modellek Felületmodellek
E N D
3D tervezés Öszeállította: Kosztyán Zsolt Tibor kzst@vision.vein.hu
Tartalom • Geomtriai modellezés • Adatstruktúrák • Megvilágítás • Textúrák
Geometriai modellezés • 2D-s modellek • 2½D-s modellek • 3D-s modellek • Nem teljes értékű testmodellek • Huzalvázas modellek • Felületmodellek • Analitikus felületmodellek • Parametrikus felületmodellek • Teljesértékű testmodellek • Határfelületekkel megvalósított (B-Rep) testmodellek • Alaptestekkel megvalósított (CSG) testmodellek • Hibridek • Cellamodellek vagy sejtmodellek • Hasábnyolcadoláson alapuló testmodellek
2D-s modell • A 2D-s modellre jellemző, hogy minden pontot két koordinátával ír le. A testet több ábrázolási mezővel adja meg (elölnézet, oldalnézet stb.). Fontos tulajdonsága még, hogy képek nem függnek egymástól. A képek közötti ellentmondásokat nem korrigálja automatikusan.
2½D-s modellek • A 2½D-s modellek bázisa egy 2D-s síkidom. A síkidomhoz hozzárendelnek egy műveletet, amely háromféle lehet. Egyenes menti eltolás, tengely körüli elforgatás, vagy egy görbe menti elmozgatás. • A síkidom által súrolt testet azért hívjuk 2½D-nak, mert a számítógép a síkidom geometriai adatain kívül csak az eltolás irányát és nagyságát, az elforgatás tengelyét és szögét, illetve a görbe egy egyenletét és a mozgatás ívhosszát rögzíti.
3D-s modellek • A 3D-s modellek mindegyikében egy pont definiálásához három koordinátát kell megadni. Mivel a pontok három dimenzióban vannak leírva, ezért a pontok által leírt alakzat testként jelentkezik nemcsak a képernyőn, hanem a számítógépen is. • További követelmény még, hogy a test minden egyes felületén műveletek végezhetők.
Huzalvázas (wire frame) modellek • Csak pontokkal és élekkel dolgozik. A testet éleivel írja le, ezért nem lehet eldönteni, hol van anyag és hol nincs. • Mivel csak élekkel dolgozik, a nem látható éleket is ábrázolja, ezért bonyolultabb esetekben a szemletetés bizonytalan. • Tárolási helyszükséglete csekély, ezért teljes értékű modellek esetén a köztes eredmény megjelenítésére szokták használni.
Felületmodellek (surfaces in space) • Térben vastagság nélküli felületekkel dolgozik. Emiatt nem beszélhetünk valódi testekről.
Felületmodellek - fogalmak • Topológia • Topológikus leképezés (homeomorfizmus) • Topológiai ekvivalencia (homeomorfia) • Poliéder (c+l-e=2) • Határpontok • Euler-féle karakterisztika • Felületek osztályozása (egyoldalú-kétoldalú felületek)
Analitikus felületmodellek • A felületek leírásához először egy alkalmas koordinátarendszert kell megválasztani. • Descartes-féle derékszögű, • henger, illetve • gömbi koordináták. • A felületeket leírása: • Skaláregyenlettel: (F(x,y,z)=0) • Vektoregyenlettel: (f(r)=0)
Parametrikus felületmodellek • Az analitikusan leírható felületek mellett gyakran előfordul, hogy olyan felületeket kell használni, amelyeknek matematikailag egzakt leírása nehézségekbe ütközik. • Ebben az esetben szokták használni a parametrikus felületmodellt, amelynek lényege az, hogy csomópontokat vesznek fel, majd a pontokra görbéket illesztenek és ezek a felületek határozzák meg a felületet.
Görbék illesztése • Interpoláció • Lagrange, Csebisev, Hermite interpoláció • Spilne-ok (közönséges, és B-Spline-ok, NURBS-ok) • Approximáció • Beziér görbék, Beziér felületek • Illesztés (Cn-osztály) • Nulladrendű • Elsőrendű • Másodrendű
Lagrange interpoláció – Newton polinomok INPUT: n-az alappontok száma-1 xi (i=0,1,..,n) alappontok yi (i=0,1,..,n) függvényértékekOUTPUT: ai (i=0,1,..,n) Newton polinom együtthatói. for i=0,1,..,n do aiyiend dofor j=1,2,..,n dofor i=n,n-1,..,j do aiai-ai-1)/xi-xi-j) end doend dooutput (a0,a1,..,an,) Newton polinom kiértékelése: INPUT: n-az alappontok száma-1 ai (i=0,1,..,n) Newton polinom együtthatói yi (i=0,1,..,n) függvényértékek x - a pont ahol kiértékeljük a polinomotOUTPUT: y a Newton polinom értéke x-ben.
Spline-ok • Közönséges spline-ok: • (Egyenközű) B-spline-ok: • NURBS (Non-Uniform Rational B-Spline):
Közönséges spline-ok A spline-okat csoportosíthatjuk az alábbiak szerint: parabolikus, köbös, magasabb fokú. A köbös spline-okra jellemző, hogy egy csomópontjának megváltoztatása az összes görbe megváltoztatásával jár.
B-spline-ok • A B-spline-ok a közönségesekhez hasonlóan különböző fokúak lehetnek. Két csoportra oszthatók aszerint, hogy a csomópontok közötti távolság egyenlő vagy sem. • Jellemző még rájuk, hogy alapfüggvényekből állnak és ezek az alapfüggvénynek az értéke bizonyos számú szomszédos csomópont kivételével zérus.
B-spline-ok • A műszaki gyakorlatban a köbös B-spline-t használják, amely öt csomópontra támaszkodó alapfüggvényből áll. Egy szegmens nem más, mint két pont közötti görbeszakasz. Egy szegmens megadásához négy pont szükséges. • Egy B-spline szegmens egyenlete a következő:
Általánosított B-Spline-ok • Görbék esetén: • ri a Pi pontra mutató helyvektor • Nik(u) polinom • k a görbe rendje • 0≤u≤1 paraméterwi súlyérték • Felületek esetén: • ri,j a Pi,j pontra mutató helyvektor • Nik(u), Njk(v) polinom • k,l a görbe rendje • 0≤u,v≤1 paraméterwi,j súlyérték Segítségükkel leírhatók: kúpszeletek, törtvonalak, hatványgörbék, NURBS-ök, Beziér görbék, és felületek is.
Beziér görbék, Beziér felületek • Bernstein polinomokra alapozott Beziér görbék. Bernstein polinomok: • Görbék leírása, felületek leírása:
Teljesértékű testmodellek • A teljesértékű testmodellek a testet anyaggal töltött, zárt felületű geometriai objektumokként írják le.
Határfelületekkel megvalósított testmodellek (Boundary Representation) • A B-Rep modell a testet határfelületeivel, éleivel, pontjaival írja le. Minden felülethez egy vektor tartozik, amely mutatja, hogy a felület melyik oldalán van a testet kitöltő anyag. • Ennél a modellnél is dolgozhatunk alaptestekkel, de ezek az alaptestek határfelületekkel vannak definiálva.
Határfelületekkel megvalósított testmodellek • Előnyök • Felületek közelebb állnak a konstruktőr szemléletéhez. • Lehetőség van a test egy felületének lokális megváltoztatására. • B-Rep modell tartalmazza a huzalvázas modell és a felületmodell információit is, ezért könnyen összekapcsolható ezekkel a modellekkel és ki lehet használni ezen modellek előnyeit. • A felületekhez kiegészítő információk rendelhetők (pl. érdesség).
Határfelületekkel megvalósított testmodellek • Hátrányok • Nagy tárolókapacitás. • A lokális változtathatóságnál ügyelni kell az egyértelműségre, ami megfelelő algoritmusokat kíván. • A megjelenítés számításigényes.
Alaptestekkel megvalósított testmodellek (Constructive Solids Geometry) • Az alaptestekkel megvalósított testmodellezés analitikusan felírható testek (Primitives) segítségével építi fel a kívánt alakzatot. • A testeket BOOLE-féle műveletekkel kapcsolja össze. • A kész testet nem tárolja, csak a kiinduláskori alaptesteket, illetve a rajtuk elvégzett műveleteket.
Alaptestekkel megvalósított testmodellek • Előnyök • Kis tárolókapacitás. • Egyszerű generálás, (ha a test az alaptestekkel leírható). • Az analitikus leírás miatt a testek egyértelműek. • A test keletkezése megjeleníthető, modosítható.
Alaptestekkel megvalósított testmodellek • Hátrányai • Felületek, élek lokális megváltoztathatósága nem lehetséges, ugyanis a modell ezeket nem használja. • A testek változtatásánál, relatív hosszú a várakozási idő, amíg a gép a BOOLE-féle fastruktúrát felbontja és újra felépíti. • Az alaptestekkel megvalósított testmodellezés távolabb áll a tervező szemléletétől.
Hibrid testmodellek • A CSG, és B-Rep testmodellezés előnyeit próbálják ötvözni, a hátrányaikat pedig kiküszöbölni. (Az egyik mindig domináns) • CSG-hibrid • B-Rep hibrid
Cellamodell vagy sejtmodell • A sejtmodellezés lényege az, hogy a testet a test bármely méreténél kisebb méretű elemi „építőkockákból”, sejtekből építi fel. A sejtek mérete alapján egy modellező rendszer rendelkezhet egyféle, vagy többféle sejtkészlettel. • Előnye, hogy elvileg bármilyen geometriájú testet le lehet írni megfelelő közelítéssel. • Hátránya, hogy nagyméretű testeknél sok cellára van szükség.
Hasábnyolcadolás • A hasábnyolcadolás leginkább egymásra merőleges oldalú testek leírására alkalmas. Elve a következő. A testet befoglaljuk egy hasábba. A hasáb minden élét megfelezzük majd ezeket összekötve metszősíkokat kapunk, amelyek a hasábot nyolc részre osztják. Megvizsgáljuk az egyes részeket, ha homogén változatlan hagyjuk, ha heterogén, akkor tovább osztjuk.
Adatstruktúrák Adatstruktúrák (élek, csúcsok tárolása) • Hierarchikus • Hálós Tárolási struktúrák • Lineáris listák • Kapcsolt listák Geometriai modellek adatstruktúrái • CSG modell • Huzalváz modell • B-Rep modell
Megvilágítás • A fény viselkedésének szimulációja mindig is sarkalatos pontja volt a számítógépes képábrázolásnak. A fény hullámtermészetéből fakadóan visszaverődik, törik, szóródik, elhajlik, interferál stb.
Lokális és globális illuminációs modellek • A látható pont színingerének meghatározásánál csak a fényforrásokból érkezõ direkt megvilágítást veszik figyelembe, a más felületekrõl visszavert indirekt megvilágítást nem. Mivel ekkor a pont színe a fényforrásokon kívül csak a lokális anyagjellemzõktõl és geometriától függ, a módszerek közös neve lokális illuminációs modellek. A durva elhanyagolások miatt a lokális illuminációs módszerekkel létrehozott képek, legyenek azok bármilyen szépek, vizuálisan és fizikai értelemben is pontatlanok, így mérnöki alkalmazásokban - például világítás és látványtervezésben - nem használhatóak. Ezekben az alkalmazásokban fizikailag pontos eredményt várunk el, ezért nem tekinthetünk el az árnyalási egyenlet integrálegyenletkénti megoldásától. Ekkor tehát az indirekt megvilágítás hatását is figyelembe kell venni, így egy pont sugársûrûségét elvileg az összes többi felületi pont sugársûrûsége is befolyásolja. A csatolás hangsúlyozására, ezen módszereket globális illuminációs modellként ismeri a szakirodalom.
Ray-tracing • A Ray-tracing eljárás a kilőtt sugár sugárkövetéssel a kamera egyes pixeleiből kiindulva keres egy-egy fényforrást. (A technológia aztán tovább finomítva a fényforrásból visszafele is követ sugarakat.) Előnye, hogy viszonylag gyors, hátránya, hogy "félmegoldás". Azonban ez a technológia képes az anyagokon átmenő fény számítására is.
Radiosity • A Radiosity eljárás a képszámítás előtt a fényforrásból (mely fizikailag pontosan meghatározott - photometrikus) n számú fotont lő ki, és ezek útját követi, pattogtatva őket felületről, felületre, addig, amíg el nem enyésznek, vagy energiájuk nullára nem csökken. Ez a módszer nagyon pontos eredményeket szül, főleg magas fotonszám esetén. Hátránya, hogy az anyagokon csakis, és kizárólag visszavert fotonokat kezel, azokon átmenőket, bennük megtörőket nem.
Textúrák • A textúrák olyan grafikai objektumok, amiket tárgyakra lehet felhúzni, ezáltal megadva annak valós szerepét, anyagát a virtuális világban. Az alábbi kép egy háromdimenziós szobát ábrázol, amit egyszerű objektumokból építettünk fel, de textúrákat kaptak, hogy mindegyiknek meg legyen a maga szerepe a képen. A textúráknak köszönhetően látszik, hogy például a fal téglából van.
Bump Mapping • Hogyan lehet akkor realisztikusabb textúrát készíteni? A legelterjedtebb módszer a Bump Mapping technika használata. Ebben az esetben a textúra kap egy 3D-s hatást, mélységet és árnyékot. A program képes elkülöníteni az eredeti kép szürkeárnyalatait, amiből kiszámolja annak kiemelkedéseit. Az alábbi képek ennek a technikának a lehetőségeit mutatják be. A bal oldali képen a táj lapos, nincs benne semmi mélységérzet. A középső szürkében lett kiszámolva, amin már láthatóak a kiemelkedések és a mélyedések. A harmadik kép pedig ennek a kettőnek az összegzéséből született. Itt már tisztán kivehetőek a táj jellegzetességei.
Textúra tömörítés • A technika lényege, hogy az adatokat összepréseljük, hogy kevesebb memóriát és merevlemez területet foglaljanak. Vannak adatvesztés mentes és adatvesztéssel járó tömörítési eljárások. Szerencsére az emberi szem elsiklik némi hiba felett.
Teljes képernyős Anti-Aliasing • Ahogy a textúra tömörítés az animációk gyorsabb futását segíti, a teljes képernyős anti-alias azért született meg, hogy jobban nézzenek ki. Az Anti-Alias (AA) egy olyan módszer, amivel a grafikákat simábbá tehetjük. A képernyőn megjelenő rajzok pontokból, úgynevezett pixelekből állnak. Minél nagyobb egy kép felbontása, ezek a pixelek annál kisebbek, és a kép annyival élethűbb és szebb. • Az AA egy olyan módszer, amivel a kisebb felbontású képeken is elérhetjük majdnem ugyanazt a minőséget. Az AA egy matematikai számítás segítségével átmenetet képez a tárgy és annak háttere között. A kontúrnál kezdi, a két legeltérőbb színnel, és közéjük olyan átmenetet képez, amitől az objektum kontúrja kevésbé tűnik recésnek, élesnek.
Teljes képernyős Anti-Aliasing • A következő négy képen ezt figyelhetjük meg. A különbség szemmel látható az AA-t használó (jobbra) és nem használó kép között. A baloldali képen a kontúrok recések, míg jobbra ezeket összemossa a számítógép, beleolvadnak a háttérbe.
N-Patch • A DirectX 8-ban vezették be először az ún. N-patch felületeket, amelyek révén az alacsony részletességű, darabos objektumokat részletesebbé, gömbölyűbbé, természetesebbé lehetett tenni. Az N-Patchelést (Normal Patch) mind a DirectX 8, mind az OpenGL támogatja. Az eljárás lényegében a három dimenziós objektumokat alkotó háromszögeket az oldalak osztásával több kisebb háromszögre bontja fel. Az eredeti objektumot alkotó háromszög csúcspontjainak normálisa az adott csúcspontban találkozó háromszögek normálisainak eredője.
Displacement Mapping • Az ún. displacement mapping révén a háromszögek felbontása, darabolása és mozgatása nem geometriai egyenletek alapján történik, hanem egy textúra alapján, ez a textúra a displacement map. A displacement mapping lényegében hasonlít a bump mappingre, azonban a bump mapping esetében csak a felület normálvektora módosul annak érdekében, hogy az másképp verje vissza a fényt, így becsapja a nézőt, aki azt hiszi, érdes felületet lát, holott valójában a felület továbbra is sík.
Displacement Mapping • A képen látható, hogy míg bump mapping használatával a gumi éle továbbra is egyenes marad, displacement mapping esetén már a kontúrja a futófelület barázdáihoz igazodva változik, mivel a displacement mapping magát a test geometriáját változtatja meg. A folyamatos tesszeláció azt jelenti, hogy az N-patchelt, illetve displace mappelt felületek valós időben a grafikus chipen számítódnak ki, és folyamatos az átmenet a részletes, illetve kevésbé részletes modellek között.
Irodalom • Pálma Róbert: A számítógéppel segített tervezés alapjai CAD, Veszprémi Egyetem 2000, pp. 44-92. • http://www.hwsw.hu/oldal.php3?cikkid=729&oldal=3 • http://bolt.kronos.hu/kpFullNews.phtml?NEWSX=1691&STATUS=1 • http://www.hungarocad.hu/Latvanyterv/Latvanyterv.htm • http://www.monarch.hu/_term/_adesk/_viz/viz_ismerteto.shtml • http://www.fsz.bme.hu/~szirmay/ikta/temakor.html