Forelesningsnotater SIF8039/ Grafisk databehandling Notater til forelesninger over: Kapittel 3: Input and Interaction i: Edward Angel: Interactive Computer Graphics Vårsemesteret 2002 Torbjørn Hallgren Institutt for datateknikk og informasjonsvitenskap Norges teknisk-naturvitenskapelige universitet 1
Fysiske inputenheter Pekeutstyr: Mus relativ posisjonering Trackball Tablet absolutt posisjon Digitaliseringsbord Lyspenn Joystick variabel følsomhet Spaceball seks frihetsgrader Andre typer: Tastatur Potensiometer (dial) Kamera 2
Fysiske inputenheter Tablet 3
Fysiske inputenheter Lyspenn 4
Fysiske inputenheter Spaceball 5
Fysiske inputenheter Potensiometer 6
Logiske enheter GKS (og PHIGS): String: Locator: Pick: Choice: Valuator: Stroke: gir inn tegn (typisk tastatur) gir inn verdenskoordinater (typisk mus) gir identiteten til struktur (typisk mus) gir resultat av valg i f. eks. meny (typisk mus) gir analog input som f. eks. flyttall (opprinnelig typisk potensiometer, dial) gir serie av verdenskoordinater (typisk mus) 7
Logiske innenheter Begrunnelse: Skjerme applikasjonen fra fysiske egenskaper og detaljer ved de fysiske enhetene Stille funksjonelle enheter til rådighet (abstrahere de fysiske enhetene) Realisere logiske enheter ved hjelp av forskjellige fysiske enheter 8
OpenGL og logiske innenheter String: tastatur Locator: mus eller tilsvarende som gir verdenskoordinater Pick: prosessen selection realisert med mus Choice: widgets i vindussystem eller applikasjon, valg mellom alternativene med mus Valuator: (dial) widgets i form av glidere Stroke: mus som gir en serie av verdenskoordinater OpenGL bruker ikke logiske enheter eksplisitt 9
Input fra innenhetene Measure: De dataene som enheten gir Trigger: Signal til datamaskinen om at data kan leses 10
Input-modi Request-modus Sample-modus Event-modus 11
Input-modi Request-modus: Applikasjonen ber om data og venter til den får alt den har bedt om Trigger Triggerprosess Measureprosess Request Measure Program 12
Input-modi Sample-modus: Applikasjonen leser measure slik det i øyeblikket er. Trigger trengs ikke. Measure prosess Sample Measure Program 13
Input-modi Event-modus: GKS og PHIGS: Measure fra alle enheter legges i en og samme kø Measure suppleres med informasjon om hendelsen som har forårsaket den Applikasjonen henter fra køen ved behov eller leilighet. Venter om nødvendig Applikasjonen tar aksjon etter hendelsestype Trigger Triggerprosess Measureprosess Measure Eventkø Await Event Program 14
Input-modi Event-modus: OpenGl: Hver hendelse forårsaker et callback For hver type hendelse lages et lite program som utfører ønsket aksjon når hendelsen inntreffer Callback Trigger Triggerprosess Measureprosess Measure Eventkø Event Callback Callback Program Callback 15
Display-liste Inneholder de grafiske objektene som display prosessoren skal legge ut i bildelageret Viktig for bl.a.: Omtegning f.eks. etter modifikasjoner Interaktivitet (pick) klient Applikasjon Displayliste tjener Displayprosessor Display 16
Tegne-måter Direkte (immediate) modus Tegning direkte ut på display uten bruk av displayliste Interaksjon ikke mulig Full omtegning fra applikasjonen Forsinket (retained) modus Modell(er) lagres i display-listen Interaksjon mulig Delvis omtegning Manipulere kameraparametrene 17
Picking Problem: hva er det jeg peker på i det rastrerte bildet Selection Klipping mot et lite volum (kubus) ved markørens posisjon Returnerer med treffliste (hit list) Omskrevet rektangel (spesialtilfelle av tyngdefelt ) (Bounding rectangle eller extent) Hvert objekt omskrives med et tettest mulig akseorientert rektangel (lett å teste for treff) Returnerer med treffliste 18