Computación Gráfica

Anuncio
Computación Gráfica
(Algunos Fundamentos)
Universidad de los Andes
Demián Gutierrez
Octubre 2011
1
¿Qué es?
Es una rama de la ciencia de computación que
estudia al conjunto de técnicas que permiten la
representación tridimensional* de los objetos de la
vida real en el computador
*No solo de objetos tridimensionales, y no sólo de
objetos de la vida real
2
¿Qué es?
¿Que arquitecturas de hardware y software debo
tener?
¿Cómo dibujo gráficos 2D?
¿Líneas? ¿Curvas? ¿Polígonos? ¿Aliasing?
¿Cómo relleno un polígono?
¿Cómo represento y dibujo modelos 3D en
dispositivos de despliegue 2D?
¿Cómo despliego modelos 3D que sean realistas?
¿Iluminación? ¿Texturas? ¿Sombreado?
¿Suavizado?
3
¿Aplicaciones?
Juegos de Computadora / Video (Weee!!!)
Aplicaciones Científicas
Aplicaciones y Software para Ingeniería
Educación y Entrenamiento
Arte (cine, entre otros)
Muchos más...
4
¿Aplicaciones?
5
¿Aplicaciones?
6
¿Aplicaciones?
7
¿Aplicaciones?
8
¿Aplicaciones?
9
Soporte Conceptual / Fundamentos
Geometría Descriptiva / Computacional
Trigonometría
Álgebra Matricial / Álgebra Lineal
Métodos de interpolación
Manejo de patrones de colores
Estructuras de Datos
Arquitectura de Computadores
10
Componentes de un Sist. Gráfico
¿Cuál es la
naturaleza de este
dispositivo?
11
¿qué es un gráfico?
¿qué tipos de gráficos existen?
¿naturaleza de un gráfico?
12
¿Cómo se representa una imagen?
13
¿Cómo se representa una imagen?
Una imágen/gráfico
se representa con
un conjunto de
puntos donde cada
punto tiene un
valor (color)
o una intensidad
(por ejemplo, en el
caso de escalas de
grises)
14
¿Cómo se representa una imagen?
muchos millones
(4.294.967.296)
de colores
muchos
(65.536)
colores
(256)
colores
(16)
colores
(8)
colores
(4)
colores
15
¿Cómo se representa una imagen?
de izquierda a derecha:
2 tonos
16 tonos grises
256 tonos grises
16
Raster
Vector
¿Vectorial vs Raster?
17
¿Vectorial vs Raster?
18
¿Vectorial vs Raster?
¿Cómo dibujar?
19
¿en qué dispositivos
se despliegan los gráficos?
20
Tecnologías de Salida
(cómo se dibuja una imágen)
21
Tecnologías de Salida
22
Tecnologías de Salida
LCD
LED
Plasma
23
Tecnologías de Salida
Kindle
aunque con esto no nos vamos a meter...
iPad
24
¿algunas arquitecturas?
25
Arquitecturas
CPU
Memoria
del
Sistema
Controlador
de
Video
Bus del Sistema
Otros
Dispositivos
de E/S
26
Arquitecturas
CPU
Memoria
del
Sistema
Frame
Buffer
Controlador
de
Video
Bus del Sistema
Otros
Dispositivos
de E/S
27
Arquitecturas
Memoria
del
Procesador
de Video
CPU
Frame
Buffer
Procesador
de
Video
Controlador
de
Video
Memoria
del
Sistema
Bus del Sistema
Otros
Dispositivos
de E/S
28
Arquitectura / Framebuffer
Controlador
de
Video
Frame
Buffer
memoria
p
p
p
p
...
1
2
3
1024
p
p
p
p
1025 1026 1027
2048
p
p
p
p
2049 2050 2051
3072
0x00004000
valor pixel-1
0x00004001
valor pixel-2
0x00004002
valor pixel-3
0x00004003
valor pixel-4
...
...
...
p
---
0x0000FFFF
valor pixel-n
800
...
p
---
p
--1024
...
p
n
29
¿Qué es?
Frame
Buffer
Controlador
de
Video
El Frame Buffer en el fondo se puede ver como un
“mapa de bits”
¿mapa de bits?
30
¿Cómo se representa una imagen?
RGB
|0000...|0000...|0000...|
R
G
B
RGBA
|0000...|0000...|0000...|0000...|
R
G
B
A
(16)
colores
(8)
colores
(4)
colores
31
Arquitectura / Framebuffer
8 bits por pixel:
256 colores
16 bits por pixel
65536 colores
24 bits por pixel
16 millones de colores
32 bits por pixel
4.294.967.296 colores
p
p
p
p
...
1
2
3
1024
p
p
p
p
1025 1026 1027
2048
p
p
p
p
2049 2050 2051
3072
...
p
---
800
...
p
---
p
---
...
p
n
1024
Esto es más de lo que el ojo
humano puede diferenciar
32
Arquitectura / Framebuffer
por ejemplo:
8 bits por pixel:
|00|000|000|
R
G
B
¿Por qué hay más verde y
azul que rojo?
33
bien, pero...
hasta ahora sólo hemos
hablado de gráficos 2D...
¿qué sucede con el 3D?
¿cómo se definen gráficos 3D?
¿cómo se representan en 2D?
34
¿cómo se definen gráficos 3D?
¿cómo se representan en 2D?
...
¿se acuerdan de sistemas de
representación?
35
Objetos y observadores
36
Transformando al Observador en una Cámara
37
Transformando al Observador en una Cámara
Proyección
Escena
3D
Cámara /
Observador
(localizada
en el espacio
3D)
Resultado
2D
38
Añadiendo Iluminación...
La luz añade complejidades
adicionales: sombra,
reflejos, colores, etc
39
Añadiendo Iluminación...
¿Cómo se calculan los
colores, las sombras, etc?
40
Soporte Conceptual / Fundamentos
OpenGL
DirectX / Direct3D
Tecnologías que definen APIs que permiten dibujar
primitivas (puntos, líneas, polígonos, curvas,
texturas, iluminación, etc) y realizar un conjunto de
operaciones gráficas
41
Soporte Conceptual / Fundamentos
Aplicación
Frameworks
(Java / Otros)
(Scene Graphs)
(Ej. Java3D,
JMonkeyEng, etc)
Frameworks
(C/C++)
(Scene Graphs)
(Ej. Ogre)
Bindings
(Ej. JOGL)
¿?
API
API
OpenGL
Direct3D
¿¿??
42
Soporte Conceptual / Fundamentos
Memoria
del
Procesador
de Video
Frame
Buffer
Procesador
de
Video
(“acelerado”)
Controlador
de
Video
Operaciones y
primitivas gráficas
implementadas en
el Hardware
OpenGL
Direct3D
API
API
43
Soporte Conceptual / Fundamentos
Memoria
del
Procesador
de Video
Frame
Buffer
Procesador
de
Video
Implementación en “Software”
OpenGL
Direct3D
API
API
Controlador
de
Video
Operaciones y
primitivas gráficas
implementadas en
Software
(mucho más lento
que el anterior)
44
...ver transparencias del
Prof. Domingo...
45
Gracias
¡Gracias!
46
Descargar