A T-spline felületreprezentáció Munkacsoport: Dr. Várady Tamás, Gembolya Gergő CAGD 2 BME IIT 2016
Tartalom 1. Motiváció 2. NURBS felületek 3. T-spline alapok 4. T-spline műveletek
1. Motiváció Szabadformájú felületek tervezése B-spline felületek korlátainak kiküszöbölése Lokális módosíthatóság Kevesebb kontrollpont NURBS 4700, T-spline 1100 cp
2.1 B-spline (NURBS) felületek Szabályos rács Globális csomóvektor Felület számítása:
2.2 B-spline felületek korlátai Háló módosítása globális: egy pont módosítása érinti a hozzá tartozó sort, illetve oszlopot Példák: Pont törlése Pont hozzáadása Felületek egyesítése (két háló bővítése)
3.1 T-spline felületek Hasonló a NURBS felületekhez, de itt nem kell szabályos struktúra, megengedettek a T-elágazások
3.2 T-spline felületek Lokális finomíthatóság: T-spline 16, NURBS 37 kontrollpont
3.3 NURBS - T-spline eltérés Globális csomóvektorok helyett csomóintervallumok (az összekötő élek hossza) A csomóintervallumokból lokális csomóvektorok képzése A kontrollpontok függetlenek Előnye, hogy jóval kevesebb kontrollponttal leírható ugyanaz a felület, mint NURBS esetén
3.4 Lokális csomóvektorok P1 csomóvektorai: S1 = [s1, s2, s3, s4, s5-d8] T1 = [t1-e0, t1, t2, t3, t4 + e9]
3.5 A T-spline struktúra két szabálya 1. szabály: az egy lapon lévő szemközti élek csomóintervallumainak összege meg kell, hogy egyezzen d7 = d2 + d6
3.6 A T-spline struktúra két szabálya 2. szabály: ha egy T-elágazást össze lehet kötni a szemközti elágazással az 1. szabály megsértése nélkül, akkor az összekötő élet be kell szúrni.
3.7 Ujjgyakorlat Hiányzó élek behúzása + P2 csomóvektorai
3.8 Ujjgyakorlat megoldás S2 = [s3 ,s3 + d6, s5-d8, s5, s5 + d5] T2 = [t1, t2, t3, t4, t4+e9]
3.9 A felület számítása Pi- kontrollpont koordinátája, Bi - u-, illetve v-irányú B-spline bázisfüggvények szorzata
4 Felületi algoritmusok Kontrollpontok beszúrása (új él hozzáadása) Felület egyszerűsítése Felületek egyesítése Approximáció
4.1 Kontrollpontok beszúrása A meglévő struktúra bővítése finomítási célokból Két lehetőség: Az eredeti felület megőrzése Pontok beszúrása úgy, hogy a felület változhat. Sokszor ez is elég!
4.1.1 Kontrollpontok beszúrása az eredeti felület megőrzése mellett 3. szabály: adott élre csak akkor lehet pontot beszúrni, ha a vele szomszédos pontok ellenkező irányú csomóvektorai megegyeznek
4.1.2 Kontrollpontok beszúrása az eredeti felület megőrzése mellett A pontok koordinátáinak számítása:
4.1.3 Demo Eredeti felület
4.1.3 Demo Pontok beszúrása a felület megőrzése mellett
4.1.3 Demo Pontok beszúrása úgy, hogy a felület változhat
4.2 Redundancia csökkentése A NURBS reprezentáció általában nagyon sok redundáns kontrollpontot tartalmaz A redundancia csökkenthető adott kontrollpontok törlésével Hibát visz a reprezentációba, melynek mértékét szabályozni kell
4.2.1 Felület egyszerűsítése Adott kontrollpontok törlése a hálóból Két lehetőség: Pont törlése a szomszédos pontok koordinátáinak újraszámítása nélkül, mely esetben a felület változik Szomszédos pontok koordinátáinak újraszámítása a felület megőrzése miatt
4.2.2 Demo Eredeti felület
4.2.2 Demo 10% hiba
4.2.2 Demo 30% hiba
4.3.1 Szomszédos felületek illesztése A háló határának lokális módosítása: Csomóvektorok bővítése a határokon Összetartozó pontok átlagának képzése
4.3.2 Demo Eredeti felületek
4.3.2 Demo Egyesített felület
4.3.2 Demo Eredeti felületek
4.3.2 Demo Egyesített felület
4.4 Approximáció Felület illesztése adott pontfelhőre Ugyanaz, mint a B-spline esetén tanult algoritmus Lsq illesztés Hibakiértékelés Újraparametrizálás Még nincs implementálva
5 Demonstráló video Video: https://www.youtube.com/watch?v=pe2kmsM94FQ
Köszönöm a figyelmet!