Elementos de un ambiente gráfico Hardware • Adaptador gráfico • Monitores • Dispositivos de entrada y salida Software • GUI • API • Aplicaciones Adaptador Gráfico Funciones: ~ Descargar al CPU ~ Convertir los datos a una señal de vídeo Modelo de Color Basados en pigmentos • RBY • CMYK Basados en luz • RGB • HSV ~ “Hue, Saturation, Value” Profundidad de Color Número de bits de memoria por cada pixel Profundidad 1 2 4 8 16 24 36 ... etc Número de colores 2 4 16 256 64,000 16,700,000 4,214,967,296 RGB => 8 bits por color (0 - 255) Ejemplo: Play Station 2 ~ RGB:Alpha:Zbuffer (24:8:32) Modelos RGB, HSV y CMYK Características Resolución • Pels (“Picture Elements”) o Pixels Memoria • • • • Frame Buffer Compartida 640x480x16 = 600 KB 1024x1280x24 = 3840 KB, aprox. 4MB Otros Buffers “Double buffer” Un buffer Doble buffer “Z buffer” Y -Z X Otros Buffers “Stencil buffer” “Acummulation buffer” GPU Graphic Processing Unit • Un CPU Intel Pentium 4 a 2.4 GHz tiene 55 millones de transistores por microship, un GPU nVidia tiene 125 millones. Programable • Ensamblador • Cg • HLSL • GLSL Suma Ejemplo código Cg (vertex shader) struct ex { float4 pos : POSITION; float4 color : COLOR; }; ex main (float4 pInitial : POSITION, float4 vInitial , float tInitial , uniform float time, uniform float4 acceleration, uniform float4x4 modelViewProj ) { ex Out; float t = time - tInitial; float4 pFinal = pInitial + vInitial * t + 0.5 * acceleration * t * t; Out.pos = mul(modelViewProj, pFinal); Out.color = float4(0,0,1,0); return Out; } Monitores 1960, dispositivos vectoriales 1970, dispositivos raster Monitores LCD Cristal líquido, entre dos capas de vidrio Matriz Pasiva • Malla de alambre Matriz Activa • Transistor por pixel Características Resolución • 800x600, 1024x768, 1280x1024 Dimensión • En pulgadas en diagonal Número de pixeles por pulgada Sistema coordenado x 0, 0 1024, 0 y 0, 768 1024, 768 Dispositivos entrada y salida Clasificación dispositivos de entrada • Cadena de caracteres ~ Envía caracteres • Elección ~ Envía lo elegido entre un número fijo de opciones • Valuación ~ Envía un valor entre 0 y 1 • Localización ~ Envía la coordenada (x,y) y la acción • Selección ~ Envía una porción de una imagen Entrada Ratón Teclado Joystick Touchscreen CAD • Tabletas • Diales o Knobs • Teclados de funciones Realidad Virtual • Ratón tridimensional o spaceball, • Guante de datos Entrada Captura de Movimiento • Sensores Digitalizadores Copyright © Immersion Corporation. Métodos 2D : Escaner • • Métodos 3D: Tomografias, Radar microondas, fotogrametría http://www.opton.co.jp Salida Monitores Dispositivos montados sobre la cabeza (HMD) y lentes, para realidad virtual Dispositivos tipo raster • plotters • impresoras laser y de inyección de tinta. Software GUI (Graphical User Interface) • Sistemas de ventanas ~ Basados en Kernel ~ Basados en Red Aplicaciones API gráfica GUI del sist. op. API (Application Programming Interface) • OpenGL • Direct 3D • Java 3D • Open Inventor • VRML (Virtual Reality Modeling Language)