760 likes | 1.07k Views
Ploskve. Kakšna predstavitev ploskve je dobra. Natančna Kratka in jedrnata Intuitivna specifikacija Lokalna podpora Neodvisna od afinih transformacij Poljubna topologija Zagotovljena zveznost Naravna parametrizacija Učinkovito prikazovanje Učinkovita sekanja.
E N D
Kakšna predstavitev ploskve je dobra Natančna Kratka in jedrnata Intuitivna specifikacija Lokalna podpora Neodvisna od afinih transformacij Poljubna topologija Zagotovljena zveznost Naravna parametrizacija Učinkovito prikazovanje Učinkovita sekanja
Najpogostejše predstavitve ploskev (surfaces) • Poligonske mreže (polygon mesh) • Parametrične ploskve • Kvadrične ploskve
Poligonske mreže • Nabor povezanih ravninskih ploskev omejenih s poligoni • Uporabno za škatle, modeliranje zunanjih objektov • Računske napake so lahko poljubno majhne, vendar za ceno pomnilnika in računskega časa • Povečave pokažejo geometrično zobčanje • Primerni za predstavitev objektov z ravnimi površinami • Redko uporabno za objekte s krivimi površinami • Prostorsko potratno • Enostavni algoritmi • Hardwersko podprto
Prednosti in slabosti • Prednosti • Hitrost • Poljubna topologija • Preprosto šivanje • Slabosti • C0zveznost • Pri kompleksnih površinah veliko število • Težavno globalno urejanje
Predstavitve ukrivljenih ploskev Eksplicitne (funkcije) Implicitne Parametrične Poddelitev (subdivision) Definirane z limito rekurzivnega procesa)
Eksplicitne funkcije Meje definirane z eksplicitno funkcijo: z = f (x, y)
Implicitne ploskve Meje opišemo z implicitno funkcijo Linearni primer: ravnina:
Implicitne ploskve Primer: kvadrične Pogoste kvadrične ploskve
Parametrične ploskve Meje definirane s parametrično funkcijo Primer: krogla
Koordinatni sistem UV koordinatni sistem UV je v razliko od kooordinatnega sistema XYZ uporabljiv za točke na ploskvi. Parametra u in v ustrezata širini in dolžini. V primeru površine krogle je ta analogija jasna. Koncept prostora UV moramo razumeti, če želimo na površino ploskve narisati krivuljo ali če želimo nanjo nalepiti teksturo. Usmerjenost u in v na ploskvi določa smer normale na površino. Pri tem pogosto uporabljamo "pravilo desne-roke:" desni palec kaže v smeri naraščajočega parametra u, desni kazalec kaže v smeri naraščajočega parametra v, sredinec pa kaže smer normale, pravokotne na površino, kot to prikazuje slika
Izoparametrične krivulje Parametrične ploskve pogosto ponazorujemo s takoimenovanimi izoparametričnimi krivuljami. Pri teh krivuljah je eden od obeh parametrov konstanten, drugi pa se speminja.
Parametrične krpe V primeru neplanarnih ploskev pogosto uporabljamo takoimenovane "krpe" (patches). Število teh je enako produktu intervalov v smereh u in v. Vsako krpo določamo z mešanjem kontrolnih točk.
Bilinearne krpe • Linearne vzdolž uinv • P0(u) in P1(u) so odseki premic P1(u) P10 P11 P0(u) = (1-u) P00 + u P01 P1(u) = (1-u) P10 + u P11 P00 P01 P0(u)
Bilinearne krpe Da dobimo parametrično ploskev v obliki: P(u,v) = (1-v) P0(u) + v P1(u) Podano: P0(u) = (1-u) P00 + u P01 P1(u) = (1-u) P10 + u P11 Dobimo: P(u,v) = (1-v) [(1-u) P00 + u P01] + v [(1-u) P10 + u P11] oziroma: P(u,v) = (1-v)(1-u) P00 + (1-v)u P01 + v (1-u) P10 + uv P11
Coonsova krpa (Bilinear Blended Surfaces) • Sestavimo • Ploskev, vlečena v smeri u • plus • ploskev, vlečena v smeri v • minus • bilinearna ploskev Coonsove krpe tvorijo pravokotno mrežo, ki jo interpoliramo med štirimi mejnimi krivuljami. Ta metoda nudi omejeno možnost zveznega prehoda med sosednjimi krpami
Coonsova krpa (Bilinearne mešane ploskve) Ruled surface in u P(u,v) = (1-v) P0(u) + v P1(u) Ploskev, povlečena v u Ploskev, povlečena v v Ruled surface in v P(u,v) = (1-u) P0(v) + u P1(v) Bilinearna ploskev Bilinear surface P(u,v) = (1-v)(1-u) P00 + (1-v)u P01 + v (1-u) P10 + uv P11
Coonsova krpa (Bilinearne mešane ploskve) P(u,v) = [(1-v) Pu0(u) + v Pu1(u)] +[ (1-u) Pov(v) + u P1v(v)] – [(1-u) (1-v) P00+ u(1-v) P01u + P10v (1-u) + P11uv ] Where P00 = Pu0(0)=P0v(0) P01= Pu0(1)=P1v(0) P10 = Pu1(0)=P0v(1) P11= Pu1(1)=P1v(1)
Prednosti in slabosti • Prednosti: • Hitro računanje. • enostavnost. • Zveznost omejujejo le vhodne krivulje • Slabosti: • Ploskve ne minimizirajo energije. • Pri ekstrapolaciji v približno singularnih verteksih lahko pride do pregiba.
Parametrične krpe Točka Q(u,v) je tenzorski produkt parametričnih krivulj, definiranih s kontrolnimi točkami.
Tenzorski produkt • Bezierova krpa • Tenzorski produkt dveh Bezierovih krivulj • Produkt Bernsteinovih polinomov • Bernsteinova interpolacija Bernsteinovih polinomov • Enak pristop z B zlepki
Bézierove krpe Primer mreže kontrolnih točk:
Bézierove krpe • Te krpe temeljijo na Bezierovih krivuljah • Enačba za kubično krpo: • C(u, v) = i0..3 j0..3Pij Bi (u) Bj (v) • That is mrežaBezierovih krivulj • Predvsem, 4 vodoravne krivulje (smer u) in 4 vertikalne krivulje (smer v) • Teh 8 krivulj si deli kontrolne točke tako, da imamo v mreži skupno 16 kontrolnih točk
Bézierove krpe • Ploskev, ki jo dobimo s temi kontrolnimi točkami:
Bézierove krpe • Ploskev temelji na Bezierovih krivuljah • Zato se ploskev ujema s kontrolnimi točkami le v štirih vogalih • Spreminjanje kontrolnih točk spreminja obliko ploskve: • Glej aplet: • http://www.nbb.cornell.edu/neurobio/land/OldStudentProjects/cs490-96to97/anson/BezierPatchApplet/ • Pri ploskvah podobna situacija kot pri krivuljah • Kontrolne točke imajo globalni nadzor • Povečanje štrvila kontrolnih točk bi povečalo stopnjo ploskve Demo
Bézierove krpe • Zato delamo velike ukrivljene ploskve podobno kot krivulje: lepimo jih skupaj • Glej aplet na: • http://www1.ics.uci.edu/~frost/unex/JavaGraphics/course/Bezpatch.html • Spomnimo se omejitve zveznosti: • C0 zveznost: robovi se morajo ujemati • C1 zveznost: kolinearne kontrolne točke • Kar težko, če imamo 4 sosednje krpe Demo
Krpe z b-zlepki(B-Spline Patches) • Krpe z B-zlepki so podobne Bezierovim krpam, le da temeljijo na krivuljah z B zlepki • Zato: • Imamo lahkopoljubno število kontrolnih točktako v smeri u kot v smeri v (4x4, 8x12, itd.), pa še vseeno ohranimo po delih C2 cubične krpe • Pri enakomernih krpah (Uniform patches) krpe ne bodo šle skozi kontrolne točke
Krpe z b-zlepki Creating a spline surface involves taking the product of the same spline blending functions used for spline curves as follows • where the control points form a 2D array Pij. Most of the properties of the spline curve also apply to spline surfaces. For example • The surface passes through the end (corner) points • The surface lies within the convex hull of the control points • The smoothness of the surface can be controlled and this can be done independently in both directions. • The resolution of the surface can be controlled and this can be different in each direction.
Primer krpe z b-zlepki Ploskev, podana z matriko 4x5 kontrolnih točk, imamo stopnjo 3 v obeh smereh
Enačba za ploskev NURBS Pri modeliranju s ploskvami NURBS moramo poznati pomen verteksov, stopnje, vozlov (knots) in uteži (weights). P(i,j) matrika verteksov: število vrstic=(k1+1). število stolpcev=(k2+1) W(i,j) matrika uteži verteksov: po ena za vsak verteks bi(s) vrstične mešalne (blending) polinomske funkcije stopnje M1 bj(t) stolpčne mešalne (blending) polinomske funkcije stopnje M2 s polje parametrov vrstičnih vozlov t polje parametrov stolpčnih vozlov
Modeliranje ploskev • Če premaknemo verteks, se v njegovi bližini premakne v smeri pomika tudi cela ploskev, kot bi bila na vzmeti. • Problem modeliranja s premiki verteksov: • Ploskev težko naravnamo v točen položaj. • Mreža verteksov zakriva obliko ploskve Modeliranje s točkami na ploskvi: Vsakemu verteksu, ki "lebdi v zraku", ustreza ena točka (edit point) na ploskvi. Nekateri modelirniki omogočajo premikanje teh točk.
Parametrične ploskve • Prednosti • Enostavno oštevilčenje točk na ploskvi • Opisujemo lahko kompleksne oblike • Slabosti • Kontrolne mreže morajo biti štiristranske • Omejitve zveznosti težko vzdržujemo • Težko najdemo presečišča
Problemi z zlepki in krpami • Težavno šivanje “skupaj” • Vzdrževanje zveznosti je težavno • Obrezovanje robov je težavno • Težavno modeliranje objektov s kompleksno topologijo • V redu za diske, cilindre, toruse,..
Subdivision in a production environment. • Traditionally spline patches (NURBS) have been used in production for character animation. • Difficult to control spline patch density in character modelling. Subdivision in Character Animation Tony Derose, Michael Kass, Tien Troung (SIGGRAPH ’98) (Geri’s Game, Pixar 1998)
Deljenje ploskev (subdivision surfaces) • Princip • Povečevanje števila kontrolnih točk • Boljši vpliv na obliko krivulje • Zaporedno izboljševanje • Dobimo mehke ploskve • Številne matematične študije
Zakaj delitev ploskev? • Ena ploskev za vse operacije modeliranja • Multi resolucijsko urejanje • Razširitve za podporo ostrih robov • Poljubna topologija • Ni špranj oziroma razpok
Sharp Edges… • Tag Edges as “sharp” or “not-sharp” • n = 0 – “not sharp” • n > 0 – sharp • During Subdivision, • if an edge is “sharp”, use sharp subdivision rules. Newly created edges, are assigned a sharpness of n-1. • If an edge is “not-sharp”, use normal smooth subdivision rules. IDEA: Edges with a sharpness of “n” do not get subdivided smoothly for “n” iterations of the algorithm.
Subdivision Terminology • Vertices: • Regular/Extraordinary • Odd/Even • Face/Edge • Edges: • Boundaries and Creases • Control Mesh
Delitev krivulj (Curve Subdivision) p1 • Edge points • p21i = 1/2 pi + 1/2 pi+1 • edge points at midpoint between vertices • Vertex points • p2i1+1 = 1/8 pi + 3/4 pi+1 + 1/8 pi+2 • midpoint between midpoints between old vertices and new edge points • = 1/2 (1/2 p21i + 1/2 pi+1) + 1/2 (1/2 pi+1 + 1/2 p2i1+1) p21 p11 p2 p31 p01 p41 p0 p3
Pregled shem deljenja • Rezanje vogalov • Dodajanje verteksov • Interpolacija • Aproksimacija
Rezanje vogalov • Old Vertices are Discarded • Common Schemes: • Doo-Sabin • Mid-Edge 2 steps 4 steps
Interpolacija • Even Vertices Remain Stationary • ‘Inflates’ Out to Limit Surface (bad) • Common Schemes: • Modified Butterfly (triangle based) • Kabbelt (quad based)