3D-s számítógépes geometria és alakzatrekonstrukció

Hasonló dokumentumok
3D-s számítógépes geometria és alakzatrekonstrukció

3D-s számítógépes geometria és alakzatrekonstrukció

3D-s számítógépes geometria és alakzatrekonstrukció

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

x = cos αx sin αy y = sin αx + cos αy 2. Mi a X/Y/Z tengely körüli forgatás transzformációs mátrixa 3D-ben?

3D számítógépes geometria és alakzatrekonstrukció

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

3D számítógépes geometria és alakzatrekonstrukció

3D-s számítógépes geometria és alakzatrekonstrukció

3D Számítógépes Geometria II.

Számítógépes Grafika mintafeladatok

3D számítógépes geometria és alakzatrekonstrukció

3D Számítógépes Geometria II.

3D-s számítógépes geometria és alakzatrekonstrukció

Lineáris algebra zárthelyi dolgozat javítókulcs, Informatika I márc.11. A csoport

3D - geometriai modellezés, alakzatrekonstrukció, nyomtatás

3D-s számítógépes geometria

3D-s számítógépes geometria és alakzatrekonstrukció

Feladatok a Gazdasági matematika II. tárgy gyakorlataihoz

Számítógépes Grafika mintafeladatok

Geometriai modellezés. Szécsi László

3D Számítógépes Geometria II.

5 1 6 (2x3 + 4) 7. 4 ( ctg(4x + 2)) + c = 3 4 ctg(4x + 2) + c ] 12 (2x6 + 9) 20 ln(5x4 + 17) + c ch(8x) 20 ln 5x c = 11

Az egyenes és a sík analitikus geometriája

Robotika. Kinematika. Magyar Attila

ACM Snake. Orvosi képdiagnosztika 11. előadás első fele

Megoldás: Mindkét állítás hamis! Indoklás: a) Azonos alapú hatványokat úgy szorzunk, hogy a kitevőket összeadjuk. Tehát: a 3 * a 4 = a 3+4 = a 7

2014/2015. tavaszi félév

Matematika III előadás

= Y y 0. = Z z 0. u 1. = Z z 1 z 2 z 1. = Y y 1 y 2 y 1

3D koordináta-rendszerek

9. előadás. Térbeli koordinátageometria

Felületek differenciálgeometriai vizsgálata

Feladatok. Tervek alapján látvány terv készítése. Irodai munka Test modellezés. Létező objektum számítógépes modelljének elkészítése

Felügyelt önálló tanulás - Analízis III.

Mátrixok 2017 Mátrixok

Infobionika ROBOTIKA. X. Előadás. Robot manipulátorok II. Direkt és inverz kinematika. Készült a HEFOP P /1.0 projekt keretében

Koordináta-geometria feladatgyűjtemény

Láthatósági kérdések

Számítógépes Grafika SZIE YMÉK

VIK A2 Matematika - BOSCH, Hatvan, 3. Gyakorlati anyag. Mátrix rangja

KOVÁCS BÉLA, MATEMATIKA I.

Hálózat hidraulikai modell integrálása a Soproni Vízmű Zrt. térinformatikai rendszerébe

I. feladatsor. 9x x x 2 6x x 9x. 12x 9x2 3. 9x 2 + x. x(x + 3) 50 (d) f(x) = 8x + 4 x(x 2 25)

LINEÁRIS ALGEBRA. matematika alapszak. Euklideszi terek. SZTE Bolyai Intézet, őszi félév. Euklideszi terek LINEÁRIS ALGEBRA 1 / 40

Az egyenlőtlenség mindkét oldalát szorozzuk meg 4 16-al:

Textúrák. Szécsi László

HÁZI FELADATOK. 1. félév. 1. konferencia A lineáris algebra alapjai

Éldetektálás, szegmentálás (folytatás) Orvosi képdiagnosztika 11_2 ea

Összeállította: dr. Leitold Adrien egyetemi docens

3D-s számítógépes geometria

Számítógépes Graka - 4. Gyak

KOVÁCS BÉLA, MATEMATIKA II.

GPU Lab. 14. fejezet. OpenCL textúra használat. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

A térképen ábrázolt vonal: - sík felület egyenese? - sík felület görbéje? - görbült felület egyenese ( geodetikus )? - görbült felület görbéje?

A térképen ábrázolt vonal: - sík felület egyenese? - sík felület görbéje? - görbült felület egyenese ( geodetikus )? - görbült felület görbéje?

Tárgy. Forgóasztal. Lézer. Kamera 3D REKONSTRUKCIÓ LÉZERES LETAPOGATÁSSAL

Néhány szó a mátrixokról

Serret-Frenet képletek

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT. Koordináta-geometria

PONTFELHŐ REGISZTRÁCIÓ

Mechatronika segédlet 3. gyakorlat

I. Vektorok. Adott A (2; 5) és B ( - 3; 4) pontok. (ld. ábra) A két pont által meghatározott vektor:

Számítási feladatok a Számítógépi geometria órához

MATEMATIKA HETI 5 ÓRA

Geometria 1 normál szint

Feladatsor A differenciálgeometria alapja c. kurzus gyakorlatához

Segédlet: Főfeszültségek meghatározása Mohr-féle feszültségi körök alkalmazásával

Vektoralgebra. Ebben a részben a vektorokat aláhúzással jelöljük

Frissítve: Feszültség- és alakváltozási állapot. 1. példa: Írjuk fel az adott kockához tartozó feszültségtenzort!

Térbeli transzformációk, a tér leképezése síkra

GPK M1 (BME) Interpoláció / 16

Geometria II gyakorlatok

3D számítógépes geometria és alakzatrekonstrukció

YBL - SGYMMAT2012XA Matematika II.

KOVÁCS BÉLA, MATEMATIKA I.

Termék modell. Definíció:

sin x = cos x =? sin x = dx =? dx = cos x =? g) Adja meg a helyettesítéses integrálás szabályát határozott integrálokra vonatkozóan!

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉP SZINT Koordináta-geometria

10. Koordinátageometria

Eddig csak a polinom x-ben felvett értékét kerestük

Összeállította: dr. Leitold Adrien egyetemi docens

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Megoldások

Orvosi Biofizika I. 12. vizsgatétel. IsmétlésI. -Fény

Példa: Háromszög síkidom másodrendű nyomatékainak számítása

Geometriai alapok Felületek

Denavit-Hartenberg konvenció alkalmazása térbeli 3DoF nyílt kinematikai láncú hengerkoordinátás és gömbi koordinátás robotra

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Koordináta-geometria

PTE PMMFK Levelező-távoktatás, villamosmérnök szak

Koordináta-geometria alapozó feladatok

Geometria II gyakorlatok

Mesh generálás. IványiPéter

Panorámakép készítése

A tér lineáris leképezései síkra

Koordináta-geometria feladatgyűjtemény (A feladatok megoldásai a dokumentum végén találhatók)

Skaláris szorzat: a b cos, ahol α a két vektor által bezárt szög.

Árnyalás, env mapping. Szécsi László 3D Grafikus Rendszerek 3. labor

5. házi feladat. AB, CD kitér élpárra történ tükrözések: Az ered transzformáció: mivel az origó xpont, így nincs szükség homogénkoordinátás

Átírás:

3D-s számítógépes geometria és alakzatrekonstrukció Tesztkörnyezet III http://cg.iit.bme.hu/portal/node/312 https://portal.vik.bme.hu/kepzes/targyak/viiima01 Dr. Várady Tamás, Dr. Salvi Péter BME, Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék

Tartalom Átlaggörbület-approximáció Mesh-navigáció [OpenMesh] Dialógusablakok felépítése [Qt] Layoutok Színezés [OpenGL] Jobb normális- és görbületbecslés Fényvonalak Fényvonal-textúra kiszámítása Resource-ok használata [Qt] Textúrák használata [OpenGL] Környezeti textúrák

Harmadik fázis Átlaggörbület Színkódolás [kék zöld piros] Szélsőértékek meghatározása Fényvonalak [bővebben később] Tartomány szélének levágása Explicit megadás Dinamikus textúra Kimutat apró egyenetlenségeket Ehhez: Qt [menü, dialóguskészítés] OpenGL [színezés, textúra] OpenMesh [háromszögháló bejárás]

Átlaggörbület (ismétlés) Becslés háromszöglegyező alapján 1 βi e i i 4 H p = 1 A p 3 Feladatok: A(p) kiszámítása (és eltárolása) βi szögek kiszámítása H(p) eltárolása

Háromszögterületek MyViewer.h: MyViewer.cpp:

MyViewer.cpp Átlaggörbület-számítás: 1 βi e i i 4 H p = 1 A p 3 calc_dihedral_angle: előjeles, szélén 0

A program szervezése MyViewer osztály Görbületszámítás double mean_min, mean_max, cutoff_ratio getmeanmin(), setmeanmin(double) stb. enum class Visualization { PLAIN, MEAN } updatemeancurvature(bool update_min_max) Min/max update nem kell pl. fairing után Színezés meanmapcolor(double) GUI Menü, dialógusablakok Billentyűleütésre (P/M) coloring változtatása

MyViewer.cpp

MyViewer.cpp

GUI MyViewer.cpp: MyWindow.cpp:

Kitérő Layoutok Widgetek elhelyezése QWidget::setLayout [a legkülső layout] QLayout::addWidget, QLayout::addLayout QBoxLayout, QGridLayout, QFormLayout Jó alapméretek, átméretezés kezelése Saját widgetekhez sizehint()

setcutoff()

setrange()

Csúcs-normálisok becslése Emlékeztető: Lap-normálisok súlyozott átlaga Súlyozás: egyenletes / területarányos Ötlet: működjön jól gömbre! Legyen és Tegyük fel, hogy a pontok egy gömbön vannak Normális irány: a gömb középpontjából p-be A középpont pozícióvektora (negálva) Hol a középpont? Az élfelező merőleges síkok metszetében!

Csúcs-normálisok becslése Az élfelező síkok: azaz Nézzük három szomszéd pontra (3 egyenlet) Cramer-szabály segítségével a középpont: ahol D az együttható-mátrix determinánsa Csak az irány kell!

Csúcs-normálisok becslése

Jobb görbület-becslés Főgörbületek ( ): A másodrendű főmennyiségek mátrixának (II) sajátértékei Tudjuk: Deriválás után: azaz stb. Tehát II s megadja a normális s irány szerinti iránymenti deriváltját a rendszerben Nevezzük ezt a rendszert (u,v)-nek, tehát:

Jobb görbület-becslés Ötlet: LSQ fit Kapunk egy lap-görbületet Át akarjuk váltani csúcs-görbületté A csúcs lokális koordinátarendszerét bele kell forgatni ugyanebbe a síkba Forgatás a csúcshoz tartozó élek keresztszorzatán

Jobb görbület-becslés Legyen a p csúcshoz tartozó (átforgatott) lokális koordinátarendszer Az ehhez a rendszerhez tartozó L,M,N: A csúcsokban súlyozzuk az egyes lapokból származó L,M,N vektorokat Súlyozás a háromszög csúcshoz közel eső területe szerint (vö. Voronoi) Implementáció: ld. forrás :)

Tükröződési vonalak Struktúrált fények visszaverődései Intuitív, G1/G2 hiba Folytonos, sima: G2 Folytonos, tört: G1

Fényvonalak (Isophotes) Egyszerűbben számolható Referencia pontból sugarak Beesési szög a normálvektorral: p ref p α = cos n p ref p 1 Megjelenítés: piros/fehér 5 fokonként Probléma: Referencia pont változik textúra változik Új textúrát generálni lassú

OpenGL trükk Környezeti térkép (environment map) Dinamikus textúra A felületi pont textúra pont hozzárendelés a nézőponttól és a normálvektortól függ Ötlet: referenciapont = nézőpont OpenGL gömb leképezés

Gömb leképezés (x,y,z) a visszaverődés iránya [szem-koordinátarendszerben] Ehhez rendelt textúra ([0,1]x[0,1]-ben): s, t = x 1 y 1 2 2 2,, ahol m = 2 x y 1 z m 2 m 2 Lekódolja az összes irányt 3 koordináta, de egységvektor két szabadságfok Ez a kódolás látványos (projekció) Könnyen rátehető panoráma is

Fényvonalak kiszámítása Feladat: (s,t) textúrakoordináta α szög (x,y,z) egységvektor, tehát 8 x 2 y 2 2 2 z = 1 = 8 s s t t 3 2 m cos 1 z α= 2 és, mivel z épp a referenciairány Ez alapján kiszínezhető a textúra Képfájlként fogjuk beolvasni

A Qt resource rendszer Fájlok tárolása a futtatható állományban Tipikusan képek, szövegek (HTML stb.) XML-jellegű leíró fájl (.qrc) Projekt fájl: Ebből adat-cpp fájl generálódik Formátum: RESOURCES = sample-framework.qrc Qt-s fájlműveleteknél :/ elérési út

OpenGL textúra készítés Textúra ID Paraméterek (gltexparameter[if]v?) Külső pontra mit csináljon (pl. csempézés) Minőségjavító min/mag filterek stb. Környezeti beállítások (gltexenv[if]v?) Generálás (n db.): glgentextures(n, addr) Hozzárendelés: glbindtexture(type, id) Törlés (n db.): gldeletetextures(n, addr) Textúra, árnyalás és anyag (szín) kapcsolata Textúra készítese glteximage2d(...sok paraméter...)

OpenGL textúra koordináták glenable(gl_texture_2d) Megadható pontonként gltexcoord[1234][dfis]v? Az aktuális (bind-olt) textúrára vonatkozik Generált koordináták gltexgen[dfi]v? : generálás paraméterei GL_TEXTURE_GEN_MODE : mód beállítása GL_OBJECT_LINEAR GL_EYE_LINEAR GL_SPHERE_MAP GL_OBJECT_PLANE / GL_EYE_PLANE : sík megadása glenable(gl_texture_gen_s) glenable(gl_texture_gen_t)

Textúra inicializálás MyViewer.cpp: GL_LINEAR: (lineáris interpoláció) Távoli felületek [MIN] Közeli felületek [MAG] GL_CLAMP_TO_EDGE: Kívül eső pontokat a szélére húzza

Textúra a háromszöghálón