Áttekintés a számítógépi* grafika világáról dr. György Antal gyantal@gmail.com http://people.inf.elte.hu/agy/
Tartalom Mit értünk CG-n? Alkalmazások Modellezés Animáció Képszintézis (rendering) Utómunka: pixel szintű effektek Fény, matematikai/fizikai modell Illuminációs egyenlet
Számítógépes grafika Mire gondolunk? Szoftverek, amelyekkel képeket készítünk Eszközök, amelyekkel a képekkel kapcsolatba kerülünk (megtekintjük, használjuk) A hardver, ami ezeket a képeket egyre gyorsabban kirajzolja A megjelenítő eszköz, amelyek egyre nagyobbak, színesebbek Az algoritmusok, amelyek egy fizikai jelenséget szimulálnak Eszközök complex matematika adatok megjelenítésére Szoftverek, amelyekkel 3D modelleket készítünk, mozgatunk API-k, amelyekkel modelleket jelenítünk meg Stb.
Számítógépes grafika 1. Felhasználói felület tervezés Mit is jelent? Megjelenítő eszközök 1. Felhasználói felület tervezés Ergonómia 2. Térinformatika 3. Számítógépes látás (computer vision) képanalízis – képfeldolgozás – image processing 4. Számítógépes grafika 2D 3D: képszintézis egy virtuális színtér alapján tudományos vizualizáció
Megjelenítő hardver Vektoros megjelenítők 1963 – módosított oszcilloszkóp 1974 – Evans and Sutherland Picture System Raszteres megjelenítők 1975 – Evans and Sutherland frame buffer 1980s – olcsó frame bufferekbit-mapes CRT PC képernyők(CGA,EGA) 1990s – liquid-crystal displays LCD, laptops 2000s – micro-mirror projectors digital cinema, DLP: Digital Light Processing Továbbá: Stereo, head-mounted display Shutter glasses Autostereoscopic displays Tactile, haptic, sound Nyomtató display hardware Alexander Alexieff and Claire Parker…1930s…1000 x 1000 grid…oak block…raking light…two sides…Gogol’s The Nose…hardware vector generator…antialiased hardware vector generator micro-mirror projectors bright, stable, cheap, high-resolution another killer app is portable displays, for example… we’re using it upstairs to make a portable, real-time, structured-light rangefinding system autostereoscopic displays varifocal mirror tactile, haptic Who knows what the difference is between these two?
1. Elektronikus könyv olvasó
Nagyobb szoftver rendszer
User interface tervezés alapelvei
Ivan Sutherland (1963) - SKETCHPAD The four categories of constraints that can be imposed are anchor constraints, collocation constraints, adjacency constraints, and alignment constraints. Anchor constraints An anchor constraint keeps a point anchored to its current location. To establish an anchor constraint, select one or more points and then click on the Anchor button. A red anchor under the anchored point represents an anchor constraint. Collocation constraints A collocation constraint is established between two or more points to make them stay together. To establish a collocation constraint, select two or more points and then press the collocation button. Alternately, drag a point with the mouse and it will "snap" to another point and will establish a collocation constraint when the button is released. A red circle with two inward-pointing arrows represents a collocation constraint. Adjacency constraints An adjacency constraint is established between two objects to ensure that one stays above, below, to the left of, or to the right of the other. To establish an adjacency constraint, select an entire object as the source (the black rectangle on the icon), then click one of the adjacency icon buttons, then click on the target object. A red line connects the centers of objects with adjacency constraints. A red circle indicates the source object. Alignment constraints An alignment constraint ensures that two or more objects stay lined up as either of them are moved about. To establish an alignment constraint, select two or more objects and then click on the appropriate button. A vertical or horizontal line (as appropriate) represents the alignment constraint. pop-up menük kényszer alapú rajzolás (constraint-based drawing) hierarchia
2. Térinformatika Geographical Information System - GIS - földrajzi adatok elemzésére kidolgozott speciális információs rendszer lépések sora vezet a méréstől, adatgyüjtéstől az elemzésekig gyakori cél a földhasználat, szállítás, kereskedelem irányításával kapcsolatos döntéshozás, A földrajzi térképek célja nagy területek áttekintő bemutatása. Legfontosabb alkalmazási területük a nagyobb területeket, általában a teljes Földet bemutató atlaszok. Ábrázolásmódjukat tekintve a topográfiai térképekhez hasonló, azzal a plusz feladattal, hogy itt többféle módszert, néha ezek kombinációját alkalmazzák a domborzat ábrázolására (szintvonalak, rétegszínezés, árnyékolás, esetleg a nagyközönség számára szemléletesebb, könnyebben felfogható domborzatábrázolás). A földrajzi térképek esetében az ábrázolt információtartalom elsősorban a térképkészítő szándékától, illetve képzettségétől függ: sokkal nagyobb szerepe van a térképkészítő szakmai tudásának, mint a két korábbi térképfajta esetében, lévén azok ábrázolási módszere, jelkulcsa szigorúan szabályozott.
3. Képfeldolgozás Eredeti kép Felismert objektumok
Képfeldolgozás John F. Kennedy This is how the finished scene looked. I actually played the part of JFK, but in post production they switched my image with old film footage of JFK. Those are my lips and part of my jaw and cheeks in this picture.
4. Computer Graphics (Interaktív) Talk about different requirements for real-time vs. Non-real-time Time, quality
4.1. Rajzolás és festés
4.2. A 3D képszintézis feladata Egy virtuális világban egy virtuális kamera segítségével valósághű kép előállítása.
Tudományos vizualizáció
Tudományos vizualizáció célja: tudományos feladatok, problémák, számítások megjelenítése és szimulációja A Föld mágneses erővonalainak megjelenítése Az 1995-ös oaklahomai vihartevékenység szimulációja
Fizikai szimulációk Modellezük a természetet a fizika törvényeit követve Általában, az egyetlen módja a valószerűség elérésének Alternatív: nem-tudományos alapú sötét-mágia bevetése a valósághű effektek elérésére A matematika nagyon gyorsan nagyon elbonyolódik Isn’t it incredible that nature can compute everything (you, me, and the whole universe) on the fly, it is the fastest computer ever. Fontos problémák: szimuláció pontossága és stabilitása
Szimuláció vagy valós?
Szórakoztatás, Film
Oktatás, szemléltetés Evert: turn a body part outward: to turn an organ or other body part outward or inside out
Gömb kifordítás probléma TOPOLOGY The branch of mathematics called topology studies special properties of shapes and surfaces. In topology, the size and to a certain extent the shape of an object are irrelevant. In particular, two objects or structures are considered topologically equivalent if one can be stretched and deformed in a continuous way, to become exactly like the other. Objects like the sphere and the torus (doughnut) are called two-dimensional manifolds. Surfaces on such manifolds may also pass through themselves, as long as this does not give rise to intermediate stages with sharp points or creases. EXAMPLE The accompanying image sphere.gif shows some steps of my own approach to everting the sphere (turning it inside-out). If you know enough about topology you might want to try it yourself first, without looking at the pictures and explanation. First, try the rough approach of sequence A : push the bottom up, and the top down, through each other. This results in an everted sphere (in this case, imagine the inside was painted with a darker color) but also leaves a ring-shaped fold, which you cannot get rid of just by making it infinitely small, because that would create a sharp crease. Instead, we pull the ring down and make it smaller. Sequence B gives a recipe for doubling such a ring. Squeeze the ring so its two sides touch and merge (first two pictures). To see what happens when they merge, look at sequences C, D and E, which provide cross sections of the two folds, in the same way as the third and fourth picture in seq. A represent cross sections of the whole sphere. When one loop is made smaller, as in C, it is clear how it can traverse the other, and in that case the two folds will cross each other. But when pictured differently, the loops can actually lose their identity, so two folds crossing each other (third picture in B) are topologically equivalent to parallel folds touching each other (second picture in B). To make this plausible, imagine how sequence C would change if the two loops were gradually changed into completely overlapping circles of the same size, as in the last picture of D. If this does not convince you, follow C up to the middle picture and then deform into two separate loops using the alternative in E. Now, it is impossible to decide whether the loops have switched places or not. So, when two merging folds turn into two crossing folds, we can create the figure 8 shape in the third picture of B. Using the same trick to turn crossing folds into touching folds again, this time vertically, we can end up with two rings (last picture). Performing A twice will give the original sphere (outside out) with two rings, one on the inside and one on the outside. Now, multiply the outside ring as explained above. Then we can let two opposite rings eliminate each other. For this, imagine the rings as concentric, one around the other, then let them come closer and merge as indicated in F. Now we are left with just one ring on the outside, and all that remains is to execute seq. A in reverse. Note that the procedures above can also be combined in a much simpler way: perform F backwards, to generate two opposite ring folds out of nothing; let the ring that's on the outside of the sphere spawn another using B, then have them eliminate each other, leaving the one ring we need for eversion. You don't even need to make two complete circles to produce the extra circle - any stretch of fold will do. HISTORY Sphere eversion is a relatively recent mathematical discovery. In 1958, mathematician Stephen Smale devised an abstract formula that proved sphere eversion was possible. It was not until the 1970s that the (blind !) mathematician Bernard Morin came up with a visualization, based on work by Arnold Shapiro. Morin also developed an approach in which the sphere is represented by a polyhedron (built from flat triangular and square faces) and then everted. Rob Kusner with others has developed a 'minimax' eversion, which is the 'simplest' way to evert a sphere, simple meaning minimization of an 'elastic bending energy'.
Digitális Művészet
Játékok
Játékok Call of Duty: Modern Warfare 2
A grafikus szerelőszalag (pipeline) modellezés animáció rendering the image-based graphics pipeline when we get to image-based rendering, I’ll show you several other versions of this pipeline (mine and Mcohen’s from Sig97 panel)
Modellezés poligonok CSG, constructive solid geometry parametrikus felületek, NURBS implicit felületek felosztott felületek, subdivision surfaces részecskerendszerek, particle systems térfogati modellek, volumes constructive solid geometry (CSG) union, intersection, difference of solids parametric surfaces f(u, v) = x(u,v), y(u,v), z(u,v) implicit surfaces locus of solutions of f(x) = f(x,y,z) = 0 subdivision surfaces sketch at board DeRose, Sig93 refer to Gerri’s game particle systems Reeves, Sig85 volumes already shown
Animáció Szkriptelt Kulcskocka alapú (key-frame interpolation) FK, IK, forward-inverse kinematics Dynamics
Animációs módszer: keyframing adott kulcskockákban (keyframe) meghatározzuk a színtér adatait (pozíció, geometria, szín stb.), a többi képkockára pedig ezekből interpolálunk A kamera mozgáspályája és kulcskockái (modellező program: ArchiCAD)
Animációs módszer: motion capture keyframinggel nagyon nehéz bonyolult, valós mozgásokat előállítani ezért gyakran felveszik valódi emberek, élőlények, tárgyak mozgását és ezeket a virtuális világ mozgó objektumaira használják általában apró „pöttyöket”, golyókat tesznek a valódi objektumra, amelyek mozgását kamerával követik
A grafikus szerelőszalag (pipeline) A hagyományos pipeline Az új pipeline? modellezés animáció rendering 3D scannelés motion capture image-based rendering
Modellezési primitívek: poligonok legelterjedtebb módszer (pl. játékok, API-k stb.) általában háromszögekkel dolgozunk egyszerű velük modellezni poligonokkal adott testet meshnek hívjuk sima, szép felületek testek kialakítása csak rengeteg háromszöggel oldható meg részletgazdagságot textúrákkal növelik
Modellezési primitívek: poligonok Half Life (1999) Half Life 2 (2004)
Modellezési primitívek: felületek természetükből adódóan simák és görbültek alakjuk kontroll pontokkal vagy kontroll görbékkel vezérelhető bonyolult testeket nagyon nehéz velük modellezni, de komolyabb projektnél (pl. filmek) inkább ezeket alkalmazzák jellemző felülettípusok: Beziér-patch, NURBS részletesebben: Vida János – Geometria modellezés
Modellezési primitívek: felületek NURBS felületekkel adott fej (modellező program: Maya)
Modellezési primitívek: pontok részecske rendszerek rengeteg részecskét igényelnek általában procedurálisan irányítják őket ÚJ TREND: 3D-s scannerek ponthalmazt adnak ebből sok lépéssel generálható mesh vagy NURBS felület használjuk inkább egyből a ponthalmazt!
Modellezési primitívek: pontok Ponthalmazból renderelt helikopter Procedurális füst
Textúrák Hatékonyan növelik a felület részletezettségét Multi-színezés (több szín egy felületen) (pl. –üveg címke), bumpy, tükröződés is lehetséges
Fotorealisztikus rendering célja: a virtuális világról olyan képet kapni, mintha egy valóban létező színtérről készítettünk volna fényképet
Fotorealisztikus rendering Találjuk ki: melyik a valós, melyik a szintetikus? szintetizált fényképezett
Alkalmazás
Nem-fotorealisztikus rendering Céljai: stílirizált ábra kiemeli a lényeges részeket művészi hatások elérése Kezdetben a „firkálások” valószerű megjelenítésére törekedtek (pen-and-ink) Azóta már külön területté nőtte ki magát: különböző ecsetek és festőanyagok kezelése: pl. víz- és olajfestékkel való festés
Nem-fotorealisztikus rendering
Volume rendering Célja: az orvosi diagnózis, kutatási feladatok segítése Legfőbb probléma a rengeteg poligon valósidejű mozgatása, forgatása
Izgalmas alkalmazási területek Karakter animáció: csontozat modellezése bőr generálása izmok mozgatása Ruha animáció: ruha modellezése fizikai alapú részecske szimuláció a feladat nehézsége: bonyolult az ütközésvizsgálat Haj, szőr stb. szimulációja haj, szőr stb. modellezése is nehéz igen nehéz feladat: valószerű szimuláció
Pixel szintű effektek A valószerűnek szánt képek még nem eléggé valószerűek, ezért a „tökéletes” képeket lerontjuk tipikus fényképezési hibákkal (pl. lencse csillanás, depth of field, motion blur) Az effektek nemcsak valóságosabbá teszik a kész képet, de általuk „művészibbé” is válik Jellemzően post-processz kompoziciós lépés, így nem kell a teljes renderinget újraindítani indítani ha egy effekt hatása nem tetszik...
Pixel szintű effektek Lencse csillanás Depth of field
A képszintézis feladata (ismét) Egy virtuális világban egy virtuális kamera segítségével valósághű kép előállítása.
A képszintézis feladata A valós világéval megegyező hatású képi inger előállításához ki kell számolni, hogy: a monitor pixeleinek megfelelő térszögből milyen spektrális eloszlás és spektrumonként mekkora fényintenzitás (radiancia) érkezik a szemébe Tehát azonosítani kell: a pixelben látható felületi pontokat és (geometria feladat, sugárkövetés) azok szem irányú radianciáját (integrálegyenlet megoldása) A sugársűrűséget egy pontban, egy adott hullámhosszon az árnyalási egyenlet megoldásával lehet meghatározni.
Az árnyalási egyenlet Egy felület adott pontjában a radiancia (fényintenzitás) a következőkből áll: a saját emisszióból és a többi felület sugárzásának visszaverődéséből Az árnyalási egyenlet ezt írja le (hullámhosszonként!!!): L (x, w)=Le (x, w)+ L (h (x, -w’), w’) fr (’, x, ) cos’dw’
Az árnyalási egyenlet L= Le+ T L 1
Hogyan működik a természet? 100 W égő 1042 fotont emittál másodpercenként Fotonok által eltalált felület meghatározása fénysebességgel és párhuzamosan, tárgyak számától függetlenül Fotonok véletlenszerűen elnyelődnek, vagy véletlen irányban visszaverődnek A fotonok egy kis része a szembe jut Szimuláció: 107 fényút Sûrû minták, Fontosság szerinti mintavétel, Gyors számítás (grafikus hardver)
Valós időben CG ? 1280x1024 = 1.3 millió pixel 60 fps -> 78 millió pixel / sec Tf: 2 Ghz számítógép (2 * 109 tick / sec) 1 pixel színének meghatározására 25 CPU tick jut Talk about different requirements for real-time vs. Non-real-time Time, quality
Az árnyalási egyenlet megoldásai Lokális illumináció L = Le+ T Le Inverzió (1- T )L = Le L = (1- T ) -1Le Expanzió L = Le+ T L = Le+ T Le+ T 2L = Tn Le Iteráció Ln = Le+ T Ln-1 Sztochasztikus Iteráció Ln = Le+ T* Ln-1
Lokális illumináció A csatolásban a jobb oldalon levő radianciát helyettesítjük az emissziós függvénnyel. A fényforrásokból induló fotonoknak így csak az egyszeres visszaverődését követjük (direkt illumináció) L (x,w)=Le(x,w)+Llightsource fr (’,x,) cos ’dw’
Lent: globális illuminációs kép Lokális illumináció Fent: Éles (balra) és nem éles (jobbra) árnyékkal megjelenített lokális illuminációs kép Lent: globális illuminációs kép (H. W. Jensen, 1996)
A képek 3D Studio MAX-szal Globális illumináció A képek 3D Studio MAX-szal készültek ... Származási hely: www.finalrender.com