Storia della Computer Graphics - Università degli studi di Napoli

Transcript

Storia della Computer Graphics - Università degli studi di Napoli
Storia della Computer
Graphics
Docente:
A cura di:
Prof.ssa Francesca Perla
Giuseppe Di Nucci
Marialuisa Falanga
Giulia Monaco
Pinella Pedullà
Anno Accademico 2005/2006
Computer Graphics
La
computer
La
computer
Come
trasferire
tutte
queste
Come
trasferire
tutte
queste
L’incredibile sviluppo della
tecnologia
informazioni
dalla
macchina
all’uomo
graphics!!
informazioni
dalla
macchina
all’uomo
graphics!!
HW/SW
in
stesso,
Soluzione
in modo,
modo, al
al tempo
tempo
stesso, efficiente
efficiente
ed
?
ed efficace
efficace?
Progettazione (CAD)
Elaborazione Dati
Siamo in grado di generare, raccogliere, e in
seguito elaborare, informazioni in un
Elaborazione di immagini
prese
dal satellitedi vastità prima impensabili
campo
Storia della Computer Graphics
2
Computer Graphics
Cominciamo con una possibile definizione:
Con il termine Computer Graphics
intendiamo l’uso di un calcolatore
per produrre un immagine
(o una sequenza di immagini).
Storia della Computer Graphics
3
Computer Graphics
Riguarda tutti gli aspetti di produzione di
immagini mediante computer
„ Input: dati (descrizione della scena da
sintetizzare)
„ Output: immagini
Storia della Computer Graphics
4
Computer Vision
In figura un paziente
Il paradigma precedente
è opposto
con comportamenti
rispetto a quello dellaautistici
Computer Vision
che si occupa di analisi di immagini:
„ Input: immagini
„ Output: dati (descrizione/comprensione
dell’immagine analizzata o del suo
contenuto)
Storia della Computer Graphics
5
Analisi dati
Mappando una serie di numeri come punti in 3D (prendendoli tre a tre ed
interpretandoli come coordinate spaziali) si riescono a trovare correlazioni
impensabili. In questo esempio i valori pseudocasuali generati da una funzione di
libreria non mostrano strutture se rappresentati come serie, ma mappati in 3D
mostrano invece una forte correlazione scegliendo il corretto punto di vista.
Storia della Computer Graphics
6
Applicazioni
ora una
carrellata di alcune
1.Vediamo
Interazione
Uomo-Macchina
possibili applicazioni
della
2. Visualizzazione
Scientifica
computer graphic:
3. Visualizzazione
dell’Informazione
4.
5.
Cinematografia
Videogiochi
Storia della Computer Graphics
7
Applicazioni – Interazione Uomo/Macchina
Interfacce utente
„ Interazione con l’elaboratore dominata da un
paradigma che includa finestre, icone, bottoni,
cursori, oggetti vari, ……
È quello a cui siete abituati ma…… non sempre è
stato così:
Fino al 1983/84 (primi sistemi Apple Lisa e Mac) tutte le
interfacce utente erano esclusivamente “command line”
9 Tutti gli elementi che compongono un’interfaccia grafica
devono essere “disegnati” quindi necessitano di software
grafico (2D)
9
Storia della Computer Graphics
8
Applicazioni – Interazione Uomo/Macchina
„
„
„
„
La grafica e’ diventata sempre piu’ un ausilio importantissimo per l’interazione tra
l’utente ed il calcolatore
– E’ di più semplice interpretazione
– Fornisce un maggior numero di informazioni in modo più veloce
– Cattura l’attenzione
Storia della Computer Graphics
9
Dataspace, 1986 VIEWlab project
Storia della Computer Graphics
10
Applicazioni – Interazione Uomo/Macchina
Altri possibili impieghi di interfacce uomo-macchina grafiche:
• CAD (Computer Aided
Design), per la costruzione di
disegni tecnici (2D e 3D);
l’interfaccia grafica deve
sopperire all’uso più intuitivo
delle mani e fornire
funzionalità migliori
• Internet, sia per catturare
l’attenzione di chi naviga un sito web,
sia per permettere una miglior
interazione con le informazioni ed i dati
contenuti nella rete (menu a scomparsa,
bottoni, rollover etc.)
Storia della Computer Graphics
11
Applicazioni – Interazione Uomo/Macchina
Altri possibili impieghi di interfacce uomo-macchina grafiche:
• Realtà Virtuale e Realtà Aumentata, permette ad un operatore di
immergersi completamente, o in parte, nell’applicazione, interagendo con i
dati e le informazioni in modo più naturale. E’ una tecnica ancora costosa
e non ancora disponibile su larga scala.
Quali sono gli oggetti sintetici?
Modello wireframe della stiva dello shuttle
Sovrapposto all’immagine
Storia della Computer Graphics
12
Applicazioni – Interazione Uomo/Macchina
Altri possibili impieghi di utilizzo di applicazioni grafiche:
• Simulazione: Nasce dalla possibilità dei moderni sistemi CG di generare
immagini realistiche in tempo reale. Esempi rilevanti sono (spesso in
abbinamento con dispositivi ti I/O specializzati, Realtà virtuale):
• Volo;
• Guida e teleguida di veicoli
speciali;
• Operazioni mediche e
chirurgiche;
• Catastrofi naturali (terremoti,
inondazioni, esplosioni,crolli, …);
• Operazioni di destrezza in
ambiente ostile.
Storia della Computer Graphics
13
Antoinette Trainer, 1910
Storia della Computer Graphics
14
Moderni simulatori di volo
Aereoporto Malta
Aereoporto Hong Kong
Storia della Computer Graphics
15
Applicazioni – Interazione Uomo/Macchina
• Controlli di apparecchiature
o veicoli, dove un operatore
utilizza un interfaccia grafica
per accedere alle funzionalità
di un apparecchiatura
sofisticata o di un veicolo, sia
in lettura dati che in
immissione comandi; un
esempio è dato dalle glass
cockpit, che sono delle
rappresentazioni grafiche
della strumentazione di bordo
di un aereo e che stanno
sostituendo i più tradizionali
strumenti di volo.
Storia della Computer Graphics
16
Applicazioni – Visualizzazione Scientifica
Visualizzazione Scientifica
„
„
„
E’ l’incontro tra la grafica al calcolatore e l’analisi di dati
scientifici
L’uso della grafica permette una comprensione maggiore dei dati
Tra i possibili usi della visualizzazione scientifica: immagini
mediche, plot matematici, dati sperimentali, risultati di
simulazioni, etc...
Visualizzazione dell’Informazione
„
Parente della Visualizzazione Scientifica, si occupa di dati
astratti e non immediatamente visualizzabili senza l’introduzione
di una opportuna metafora visuale (es. visualizzare un log file)
Storia della Computer Graphics
17
Applicazioni – Visualizzazione Scientifica
Immagine medica
Immagine medica
Rendering del polo nord
marziano
Visualizzazione Info
Metereologia
Collisione di due stelle di
neutroni
Storia della Computer Graphics
18
Uso artistico
¾
Computer Art, utilizzata per esprimere stati d’animo
¾
Pubblicità, per catturare l’attenzione con immagini di
effetto difficilmente ottenibili in altro modo
¾
Film, sia che venga usata semplicemente per gli
effetti speciali (la maggior parte dei casi), sia che
venga utilizzata per la realizzazione in toto del film
(alcuni casi notevoli, sempre più frequenti)
Storia della Computer Graphics
19
Uso Cinematografico
Storia della Computer Graphics
20
Illusioni ottiche
Storia della Computer Graphics
21
Videogiochi
Alcuni elementi di punta dei videogiochi moderni:
– 3D
– grafica in tempo reale
– implementano una interfaccia utente complessa
– implementano algoritmi di grafica di punta (ombre,
strutture dati gerarchiche, effetti di luce, sistemi di
particelle, raytracing, radiosity etc)
– necessitano di schede grafiche accelerate
– spesso presentano filmati (o scene singole)
estremamente fotorealistici
Storia della Computer Graphics
22
Videogiochi
Space invaders, 1978
Pac-Man, 1980
Battlezone, 1980
Donkey-Kong, 1981
Zaxxon, 1982
Storia della Computer Graphics
Street Fighter II, 1991
23
Videogiochi
Storia della Computer Graphics
24
Sviluppo guidato dall’evoluzione dell’HW/SW
„
A partire dagli anni ’50:
¾ utilizzo di tubi a raggi
catodici (CRT) come
dispositivi di output grafico
Il primo calcolatore dotato di un
CRT come dispositivo di output
grafico è stato Whirlwind I,
progettato e divenuto operativo
nel 1950 presso il MIT
Storia della Computer Graphics
25
Sviluppo guidato dall’evoluzione dell’HW/SW
Dagli anni ’60 ai primi anni ’80:
¾ grafica vettoriale: fascio di
elettroni che colpisce la
superficie del CRT viene
guidato per muoversi da una
parte all’altra (random scan)
tracciando punti, linee…
Storia della Computer Graphics
26
Nascita della computer graphics
Nel 1960 William Fetter introdusse il
termine Computer Graphics per
descrivere la ricerca che stava
conducendo alla Boeing. Egli pensò di
sfruttare un modello 3D del corpo
umano per progettare la carlinga degli
aerei.
Storia della Computer Graphics
27
Nascita della computer graphics
interattiva
La nascita della Computer Graphics interattiva
si fa invece risalire al 1963, con la tesi di
dottorato di Ivan Sutherland.
Sutherland creò il primo programma di grafica
computerizzata con cui si poteva disegnare
attraverso il collegamento di un display (tubo
catodico) al computer: lo Sketchpad (1962), e
con esso produsse un film avente lo stesso
nome.
Storia della Computer Graphics
28
Nascita della computer graphics
(2)
(2)Sketchpad
Sketchpad
(1)
(1)Modello
Modellousato
usato
da
daFetter
Fetter
Storia della Computer Graphics
29
Sviluppo guidato dall’evoluzione
dell’HW/SW
Dagli anni ’70 :
¾ diffusione di sistemi raster:
Confronto tra una immagine raster
un’immagine è rappresentata da una
ed una vettoriale ingrandita.
matrice rettangolare (raster) di
elementi
(pixeloriginale
, abbreviazione di
a) immagine
picture element)
b) immagine vettoriale ingrandita
¾ Scansione raster: il fascio di
8x “spazza” il CRT in modo
elettroni
sequenziale
un raster
certo numero
di volte
c) immagine
ingrandita
8x
al secondo (refresh rate)
¾ Tutte le tecnologie successive al CRT
(cristalli liquidi, plasma, …) hanno
adottato lo stesso modello raster
Storia della Computer Graphics
30
Applicazioni
risoluzioni
dell’ordine
dei
Negli
ultimi
anni
stiamo
assistendo
ad un
risoluzioni
dell’ordine
dei
Da
320x240
con
balzo
in avantipixel
per quanto
riguarda:
320x240
pixel
con 16
16 colori
colori
„„la
la velocità
velocità dei
dei processori,
processori,
boom della grafica
a al calcolatore
„„la
la disponibilità
disponibilità di
di memoria
memoria
„„l’immissione
l’immissione sul
sul mercato
mercato di
di schede
schede
risoluzioni
di
di
grafiche
accelerate
aa basso
risoluzioni
di più
più
di prezzo.
grafiche
accelerate
basso
prezzo.
1024x1024
1024x1024 pixel
pixel aa 32
32 milioni
milioni
di
di colori.
colori.
Storia della Computer Graphics
31
Schede grafiche
La Scheda Grafica (S.G.) è un
particolare dispositivo
hardware progettato per
Oggi
convertire
la sono
Oggi
sono in
in circolazione
circolazione sottosistemi
sottosistemi
di
in
rappresentazione
logica
di
di pochi
pochi chip
chip
in grado
grado di
di visualizzare
visualizzare
in
reale
un’immagine
in un segnale
che
in tempo
tempo
reale animazioni
animazioni
tridimensionali,
con
può essere
usato per pilotare
tridimensionali,
con immagini
immagini aa colori
colori
di
un display;
di oggetti
oggetti complessi,
complessi, tipicamente
tipicamente
descritti
da
di
La tecnologia
moderna
ha
descritti
da migliaia
migliaia
di poligoni
poligoni
portato la creazione di
schede con una memoria ed un
processore interni
indipendenti dal resto del
sistema.
Storia della Computer Graphics
32
Model
Riva 128
Riva 128 ZX
Vanta
Riva TNT2 M64
Riva TNT2 Pro
Riva TNT2 Ultra
GeForce 256 (SDR)
GeForce 256 (DDR)
GeForce2 MX 100
GeForce2 MX
GeForce2 GTS
GeForce2 Pro
GeForce2 Ti VX
GeForce2 Ti
GeForce2 Ultra
GeForce4 Ti 4400
GeForce4 Ti 4800 SE
GeForce4 Ti 4600
GeForce4 Ti 4800
GeForce FX 5800
GeForce FX 5900 Ultra
GeForce FX 5950 Ultra
GeForce 6600 GT
GeForce 6600 GT
GeForce 6800 GTO
GeForce 6800 GS
GeForce 6800 GS
GeForce 6800 GT
GeForce 6800 Ultra
GeForce 6800 Ultra
GeForce 6800 Ultra
GeForce 7600 GT
GeForce 7800 GT
GeForce 7800 GTX
GeForce 7800 GTX 512
GeForce 7900 GTX
Year
Max memory (MiB)
Core clock (MHz)
Memory clock (MHz)
Fillrate (MT/s)
Memory bus width (bit)
1997
4
100
100
100
128
1998
8
100
100
100
128
1999
16
100
110
200
64
1999
32
125
150
250
64
1999
32
143
166
286
128
1999
32
150
183
300
128
1999
128
120
166
480
128
2000
128
120
300
480
128
2000
64
143
166
572
32
2000
128
175
166
700
128
2000
128
200
333
1600
128
2000
128
200
400
1600
128
2001
128
225
400
1800
128
2001
128
250
400
2000
128
2001
128
250
460
2000
128
2002
128
275
550
2200
128
2002
128
275
550
2200
128
2002
128
300
650
2400
128
2002
128
300
650
2400
128
2003
256
400
800
3200
128
2003
256
450
850
3600
256
2003
256
475
950
3800
256
2004
256
500
900
4000
128
2004
256
500
1000
4000
128
2004
256
350
900
4200
256
2004
256
350
1000
4200
256
2004
256
425
1000
5100
256
2004
256
350
1000
5600
256
2004
256
425
1100
6800
256
2004
256
400
1100
6400
256
2005
512
400
1050
6400
256
2005
256
560
1400
6720
128
2005
256
400
1000
8000
256
2005
256
430
1200
10320
256
2005
512
550
1700
13200
256
2006
512
650
1600
15600
256
Storia della Computer Graphics
33
MegaPixel/sec
16000
14000
12000
10000
8000
15
6000
i
p
lte
o
0v
te
n
ote
p
ù
4000
2000
0
1999
2000
2001
Year
Storia della Computer Graphics
2004
2005
34
Sviluppo guidato dall’evoluzione
dell’HW/SW
Questi dispositivi
forniscono
informazioni di
Anche
le
Anche
le tecnologie
tecnologie
tipo
posizionale
al
sistema,
di
input
si
sono
di input si sono
e consentonomouse,
all’utente di
sviluppate:
sviluppate:
mouse,
specificare operazioni e
tablet,
joystick
tablet,
joystick
comunicare
informazioni
con un uso della tastiera
ridotto al minimo
„
Storia della Computer Graphics
35
Software di elaborazione grafica
Sw di animazione
Maya, 3D Studio Max = Mayax
SoftImage XSI
Blender
Sw elaborazione immagini 3D
Bryce
POV-Ray
Poser
Storia della Computer Graphics
36
Maya , 3D Max Studio
Maya e’ sicuramente il più importante programma di animazione per il cinema: tutti gli
studio lo utilizzano!
Mentre 3DS Max e’ sicuramente il più importante programma di animazione per i video
game
Storia della Computer Graphics
37
SoftImage
Rivale di Maya, è utilizzato nei film, pubblicità e giochi per la produzione di ambienti e scene 3D
Storia della Computer Graphics
38
Blender
Pacchetto sw free, disponibile per molti sistemi operativi: FreeBSD, IRIX, GNU/Linux,
Microsoft Windows, Mac OS X, Solaris
Storia della Computer Graphics
39
Bryce
Nato per la rappresentazione di paesaggi generati da frattali, è ideale per la creazione di
scenari 3D
Storia della Computer Graphics
40
POV-Ray
Storia della Computer Graphics
41
Poser (1995)
Ottimizzato per la
rappresentazione delle
figure umane. Fornisce
una ricca raccolta di
figure umane, animali,
robot, di pose,
capigliature,
espressioni facciali
Storia della Computer Graphics
42
Processo generazione immagine 3D
Il processo di generazione di una immagine 3D può
suddivisa in passi noti come la 3D graphics pipeline
I dettagli e l’ordine con cui questi passi sono
effettuati può variare da scheda a scheda, ma in
generale (e semplificando di molto!!!) avvengono i
seguenti passi:
1.Progettazione della scena
2.Effetto dell’Illuminazione
3.Proiezione da 3D a 2D
4.Rendering
Storia della Computer Graphics
43
Il passaggio da 3D a 2D
Uno dei principali problemi che si devono
risolvere quando si rappresenta una
scena reale tramite computer, è quello
di capire quali sono gli oggetti che sono
“visibili” e quali sono quelli che sono
“nascosti” o “parzialmente coperti” da
altri oggetti
Storia della Computer Graphics
44
L’algoritmo del pittore
In questo algoritmo sono
disegnati prima gli
oggetti che sono lontani,
e poi sono coperti con gli
oggetti più vicini
Storia della Computer Graphics
45
Z-buffering
Per motivi di efficienza è effettuato
direttamente dalla scheda grafica. La sua
invenzione risale agli anni ’70 ed è attribuita
ad Edwin Catmull, attuale presidente della
Pixar.
In questo algoritmo la profondità di ogni
pixel da colorare è memorizzato in un area
di memoria detta z-buffer. Di solito è un
array a due dimensioni, con un elemento per
ogni pixel. Se più oggetti richiedono di
essere mostrati sullo stesso pixel, la scheda
grafica confronta la loro posizione (la
coordinata z) e sceglie quello più vicino
all’osservatore. La profondità dell’oggetto
scelto è memorizzata nello z-buffer.
Storia della Computer Graphics
Edwin Catmull
46
Algoritmi di illuminazione
Storia della Computer Graphics
47
Ray tracing
Ray-Tracing e' una tecnica
di computer grafica per il
rendering di immagini. Il
metodo usato simula il
tracciamento dei raggi di
luce che partendo da una
sorgente luminosa si
riflettono sui vari oggetti
definiti nella scena, o
passano attraverso quelli
trasparenti, ed infine
colpiscono gli occhi
dell'osservatore (o la
lente di una macchina
fotografica o camera). I
tempi necessari al
rendering dell'immagine
sono proibitivi.
Storia della Computer Graphics
48
Texture
Storia della Computer Graphics
49
Breve storia algoritmi di illuminazione
„
„
„
„
„
„
„
1968 Ray tracing (Appel)
1971 Ray tracing (Goldstein and Nagel)
1973 Phong reflection model
1980 Ray tracing (Whitted)
1984 Radiosity (C. Goral, K. E. Torrance, D. P.
Greenberg and B. Battaile)
1990 Ray tracing (Heckbert)
1995 Ray tracing (Veach)
Storia della Computer Graphics
50
Passi principali nell’evoluzione Computer
Graphics
„
„
„
„
„
1977: specifica del primo sistema per la grafica 2D
(Core Graphic System)
1984: prima API industriale proprietaria della Silicon
Graphics per grafica 3D (Graphics Library – GL)
1985: primo standard ufficiale di un’API per grafica
2D (Graphical Kernel System – GKS)
1988: primo standard ufficiale di un’API per la grafica
3D (Programmer’s Hierarchical Interactive Graphics
System - PHIGS)
1992: standard che integra PHIGS con il windows
management system X (PEX)
Storia della Computer Graphics
51
Passi principali nell’evoluzione Computer
Graphics
„
„
„
„
„
„
„
1993: primo standard industriale 3D portabile su diverse
piattaforme hw: OpenGL
1993: API ad alto livello su base OpenGL che segue paradigmi
simili a PHIGS (OpenInventor)
1995: API proprietaria Microsoft in concorrenza con OpenGL
(Direct3D/DirectX)
1994/97: derivato da OpenInventor il primo linguaggio per la
grafica 3D e la realtà virtuale su web (Virtual Reality Modeling
Language – VRML)
1999: API Java per la grafica 3D (Java3D)
2002/03: estensioni di OpenGL e DirectX per il supporto di hw
grafico programmabile (GPU)
2003+: linguaggi ad alto livello per GPU: Cg (NVIDIA), HLSL
(Microsoft), OpenGL2.0
Storia della Computer Graphics
52
Bibliografia/Link
„
„
„
„
„
„
„
Andrew Glassner: An introduction to ray tracing
Lasseter: Principles of traditional animation applied to 3d
computer animation
A Critical History of Computer Graphics and Animation
http://accad.osu.edu/~waynec/history/ID797.html
http://profs.sci.univr.it/~fusiello/teaching/grafica/
Blender: http://www.blender3d.com/cms/Home.2.0.html
POV-Ray: http://www.povray.org/
Wikipedia: http://en.wikipedia.org
Storia della Computer Graphics
53