Graficos Por a Con Opengl

916
Gráficos por computadora con OpenGL

Transcript of Graficos Por a Con Opengl

Grficos por computadora con OpenGL

Grficos por computadora con OpenGL

Grficos por computadora con OpenGLTercera edicin

DONALD HEARN M. PAULINE BAKER Indiana University - Purdue University

Traduccin Vuelapluma

Madrid Mexico Santa Fe de Bogota Buenos Aires Caracas Lima Montevideo San Juan San Jos Santiago So Paulo White Plains

Datos de catalogacin bibliogrfica GRFICOS POR COMPUTADORA CON OPKNGL DONALD HKARN; M. PAULINE BAKF.R Pearson Educacin S.A., Madrid. 2006 ISBVIO: 84-205-3980-5 1SBVI3: 78-84-205-3980-5 Malcra: Informtica, 681.3 Formato: 195 \ 250 inm. Pginas: 918

Todos los derechos reservados.Queda prohibida, salvo excepcin prevista en la Ley, cualquier forma de reproduccin, distribucin, comunicacin pblica y transformacin de esta obra sin contar con autorizacin de los titulares de propiedad intelectual. La infraccin de los derechos mencionados puede ser constitutiva de delito contra la propiedad intelectual (arts. 270 y sgts. Cdigo Penal). DERECHOS RESERVADOS 2006 por PEARSON EDUCACIN S.A. Ribera del Loira, 28 28042 Madrid Grficos por computadora con OpenGL DONALD IIEARN; M. PAULINE BAKER ISBN-10: 84-205-3980-5 ISBN-13: 978-84-205-3980-5 Depsito Legal: M. 42.334-2005 Authori/ed translacin Irom ihe English language edilion, entitled COMPUTER GRAPHI S W1TH OPENGL, 3rd Edition by HEARN, DONALD; BAKER, M. PAULINE, published by Pearson Education, Inc, publishing as Prentice Hall, Copyright 2004 Equipo editorial Editor: Miguel Martn-Romo Tcnico editorial: Marta Caicoya Equipo de produccin Director: Jos A. Clares Tcnico: Mara Alvear Diseo de cubierta: Equipo de diseo de Pearson Educacin S.A. Impreso por; Imprenta Fareso, S. A. IMPRESO EN ESPAA - PRINTED IN SPAIN Este libro ha sido impreso con papel y tintas ecolgicos

A nuestra genteDwight, Rose, Jay y Millie

ContenidoPrefacio xix Ratones Trackballs y spaceballs Joysticks Guantes de datos Digitalizadores Escneres de imagen Paneles tctiles Lapiceros pticos Sistemas de voz 2.5 2.6 2.7 2.8 Dispositivos de copia impresa Redes grficas Grficos en Internet Software grfico Representaciones con coordenadas Funciones grficas Estndares de software Otros paquetes grficos 59 60 61 61 62 64 64 66 67 67 69 69 70 70 72 73 74 74 74 75 76 76 78 81 82 82

-

Introduccin a los grficos por computadoraGrficos y diagramas Diseo asistido por computadora Entornos de realidad virtual Visualizacin de datos Educacin y formacin Arte por computadora Entretenimiento Procesamiento de imgenes Interfaz grfica de usuario Resumen Referencias

23 5 10 12 19 23 28 31 32 33 33

1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10

2

Introduccin a los sistemas grficosDispositivos de visualizacin de vdeo Tubos de refresco de rayos catdicos Pantallas por barrido de lineas Pantallas de barrido aleatorio Monitores TRC de color Pantallas planas Dispositivos de visualizacin tridimensional Sistemas estereoscpicos y de realidad virtual

3435 35 38 41 42 44 47 47 50 51

2.9

Introduccin a OpenGL Sintaxis bsica de OpenGL Bibliotecas relacionadas Archivos de cabecera Gestin de la ventana de visualizacin empleando GLUT

2.1

Un programa OpenGL completo 2.10 Resumen Referencias Ejercicios

2.2

Sistema de barrido de lneas Controlador de vdeo

Primitivas grficas3.1 Sistemas de coordenadas de referencia Coordenadas de pantalla Especificaciones absolutas y relativas de coordenadas 3.2 Especificacin de un sistema bidimensional de referenda universal ea.Qpe.nGL

8486 86 87

Procesador de pantalla de lneas de barrido 2.3 Estaciones de trabajo grficas y sistemas de visualizacin 2.4 Dispaositivos de entrada Teclados, cajas de botones y botones de seleccin

53 54 58 58

88

viii 3.3 3.4 53

Contenido Funciones de gunto en QpenQj, Funciones OpenGL para lneas Algoritmos de dibujo de lneas Ecuaciones de las lneas Algoritmo DDA 94 88 91 3.17 3.18 3.19

3.16

Algoritmo de Bresenham para dibujo 96 de lneas Visualizacin de polilneas 100 3.6 Algoritmos paralelos de dibujo de lneas 100 3 . 7 _ Almacenamiento de los valores en el bu fer de imagen 3.8 3.9 Funciones OpenGL para curvas \|g^ritmos para^ene^acin de crculol Propiedades de los crculos Algoritmo del punto medio para crculos 3.10 jMgoritmos degeneracin de elipses Propiedades de las elipses Algoritmo del punto medio para la elipse 3.11 Otras curvas Secciones cnicas Polinomios y curvas de tipo sptine 3.12 3^13 Algoritmos paralelos para curvas Direccionamiento de pixeles y geometra de los objetos 102 103 104 104 106 1LL 111 113 120 121 123 124 124 124 4.1 4.2

3.20 3.21 3.22 3.23

3.24 3.25

Funciones OpenGL de relleno de reas poligonales Matrices de vrtices OpenGL Primitivas de matrices de pixeles Funciones OpenGL para matrices de pixeles Funcin de mapa de bits de OpenGL Funcin OpenGL para mapas de pixeles Operaciones OpenGL de manipulacin de bferes Primitivas de caracteres Funciones OpenGL de caracteres Particionamiento de imgenes Listas de visualizacin de OpenGL Creacin y denominacin de una lista de visualizacin OpenGL Ejecucin de listas de visualizacin OpenGL Borrado de listas de visualizacin OpenGL Funcin OpenGL de redimensionamiento de la ventana de visualizacin Resumen Programas de ejemplo Referencias Ejercicios

139 145 148 148 148 150 151 153 155 156 156 156 157 158 158 161 165 173 174

Coordenadas de cuadrcula de pantalla Mantenimiento de las propiedades geomtricas de los objetos visualizados 3.14 3.15 Primitivas de reas rellenas reas de relleno poligonales

Atributos de los primitivos grficasVariable de estado de OpenGL Color es escala de grises Las componentes de color RGB Escala de grises Funciones de color de OpenGL Los modos de color RGB y RGBA de OpenGL Modo de color indexado de OpenGL Fundido de color en OpenGL Matrices de color en OpenGL Otras funciones de color en OpenGL 4.4 Atributos de los puntos Atributos de las lneas 4.5 Tablas de color

178180 180 180 181 182 182 183 183 184 185 186 187 188 188

128 129 129 130 131. 132 135 136 138 4.3

Clasificaciones de los polgonos Identificacin de polgonos cncavos Divisin de los polgonos cncavos Divisin de un polgono convexo en un conjunto de tringulos Pruebas dentro-fuera Tablas de polgonos Ecuaciones de un plano Caras poligonales anteriores y posteriores

Otros parmetros de color

Rl grosor de las lneas Estilo de las lneas Opciones de plumilla y brocha 4.7 4.8

188 190 191

Tcnicas de filtrado Ajuste de fase de los pxeles Compensacin de diferencias en la intensidad de las lneas Suavizado de los lmites de las reas 4.18 4.19 4.20 4.21 Funciones OpenGL de suavizado Funciones de consulta de OpenGL Grupos de atributos de OpenGL Resumen Referencias Ejercicios

Atributos de las curvas 193 Funciones OpenGL para los atributos de los puntos 195 Funciones OpenGL para los atributos de las lneas 196 Funcin de grosor de lnea de OpenGL La funcin de estilo de lnea de OpenGL Otros efectos de lnea de OpenGL 196 196 198 199 199 200 202 206

4.9

Atributos de relleno de reas Estilos de relleno

K H5.1

Transformaciones geomtricasTransformaciones geomtricas bidimensionales bsicas Traslaciones bidimensionales Rotaciones bidimensionales Representacin matricial y coordenadas homogneas Coordenadas homogneas Matriz de traslacin bidimensional Matriz de rotacin bidimensional Matriz de cambio de escala bidimensional Transformaciones inversas Transformaciones compuestas bidimensionales Traslaciones compuestas bidimensionales Rotaciones compuestas bidimensionales Cambios de escala compuestos bidimensionales Rotacin general sobre un punto de pivote bidimensional Cambio de escala general de puntos fijos bidimensionales Directrices generales para el cambio de escala bidimensional Propiedades de la concatenacin de matrices Transformaciones compuestas bidimensionales generales y eficiencia de clculo Cambio de escala bidimensional

Relleno de regiones con fundido de color 4.10 Algoritmo general de relleno de polgonos mediante lneas de barrido 4.1! Relleno de polgonos convexos mediante lneas de barrido

5.2

4.12 Relleno de regiones con lmites curvos mediante lneas de barrido 207 4.13 Mtodos de relleno de reas con lmites irregulares 207 Algoritmo de relleno por contorno 207 Algoritmo de relleno por inundacin 211 4.14 Funciones OpenGL para atributos de relleno de reas 211 Funcin de relleno con patrn de OpenGL 212 Patrones de textura e interpolacin de OpenGL 213 Mtodos OpenGL para modelos almbricos 214 La funcin de cara frontal de OpenGL 216 Atributos de los caracteres 217 Funciones OpenGL para los atributos de caracteres 220 Suavizado 220 Supermuestreo de segmentos de lnea recta 222 Mscaras de ponderacin de subpxeles Muestreo por rea de segmentos de lnea recta 223 224

5.3 5.4

4.15 4.16 4.17

x

Contenido Transformacin bidimensional de slido-rgido

253 6.1 6.2

Visualizacin bidimensionalPipcline de visualizacin bidimensional La ventana de recorte Ventana de recorte en coordenadas de visualizacin Ventana de recorte en coordenadas universales Normalizacin y transformaciones de visor Mapeo de la ventana de recorte en un visor normalizado Mapeo de la ventana de recorte a un cuadrado normalizado Visualizacin de cadenas de caracteres Efectos de divisin de pantalla y mltiples dispositivos de salida

304

Construccin de matrices de rotacin 254 bidimensionales Ejemplo de programacin de matrices 255 bidimensionales compuestas 5.5

305 307 308 308 309 310 311 313 313 314 314 314 315 315

Otras transformaciones bidimensionales Reflexin

260

5.6 5.7 5.8 5.9 5.10 5.11

Inclinar Mtodos de rasterizacin para 265 transformaciones geomtricas Transformaciones de rasterizacin en OpenGL 266 Transformaciones entre sistemas de coordenadas bidimensionales Transformaciones geomtricas en un espacio tridimensional Traslaciones tridimensionales Rotaciones tridimensionales Rotaciones de ejes de coordenadas tridimensionales Rotaciones tridimensionales generales Mtodos de cuaternios para rotaciones tridimensionales Cambio de escala tridimensional Transformaciones compuestas tridimensionales Otras transformaciones tridimensionales Reflexiones tridimensionales Inclinaciones tridimensionales Transformaciones entre sistemas de coordenadas tridimensionales Transformaciones afines Funciones de transformaciones geomtricas en OpenGL Transformaciones bsicas en OpenGL Operaciones con matrices en OpenGL Filas de matrices en OpenGL Ejemplos de programas de transformaciones geomtricas OpenGL Resumen Referencias Ejercicios 267

272 274

5.12 5.13 5.14

284

290 291 292 292 293 293 295

5.15 5.16 5.17

296 301 301

5.18

Funciones de visualizacin bidimensional de OpenGL Modo de proyeccin de OpenGL Funcin de ventana de recorte de GLU Funcin de visor de OpenGL Creacin de una ventana de visualizacin con GLUT Establecimiento del modo y del color de la ventana de visualizacin con GLUT klentifkador de la ventana de visualizacin con GLUT Borrado de una ventana de visualizacin con GLUT Ventana de visualizacin actual con GLUT Reposicionamiento y cambio de tamao de una ventana de visualizacin con GLUT Gestin de mltiples ventanas de visualizacin con GLUT Subventanas de GLUT Seleccin de la forma del cursor de pantalla en una ventana de visualizacin Visualizacin de objetos grficos en una ventana de visualizacin de GLUT

316 316 316 317

317 317 318

318 319

Contenido Ejecucin del programa de aplicacin 319 Otras funciones de GLUT 319 7.2 7.3 Ejemplo de programa de visualizacin bidimensional en OpenGL 320 6.5 Algoritmos de recorte 322 6.6 6.7 Recorte de puntos bidimensionales Recorte de lneas bidimensionales Recorte de lneas de CohenSutherland Recorte de lneas de Liang-Barsky Recorte de lneas de Nicholl-LeeNicholl Recorte de lneas con ventanas de recorte poligonales no rectangulares Recorte de lneas utilizando ventanas de recorte con lmites no lineales 6.8 Recorte de reas de relleno poligonales Recorte de polgonos de SutherlandHodgman Recorte de polgonos de WeilerAtherton Recorte de polgonos utilizando ventanas de recorte poligonales no rectangulares Recorte de polgonos utilizando ventanas de recorte con lmites no lineales 6.9 Recorte de curvas 6.10 Recorte de textos 6.11 Resumen Referencias Ejercicios 323 323 324 330 333 335 335 336 338 343 Visualizacin tridimensional y estereoscpica Pipeline de visualizacin tridimensional Parmetros de coordenadas de visualizacin tridimensional Vector normal del plano de visualizacin

xi

360 360 362 362

363 El vector vertical Sistema de referencia de coordenadas 363 de visualizacin uvn Generacin de efectos de visualizacin 364 tridimensionales Transformacin de coordenadas 7.4 universales a coordenadas de visualizacin 366 7.5 7.6 Transformaciones de proyeccin Proyecciones ortogonales Proyecciones ortogonales axonomtricas e somtricas 368 368 369

Coordenadas de proyeccin ortogonal 369 Ventana de recorte y volumen de visualizacin de proyeccin ortogonal 370 Transformacin de normalizacin para una proyeccin ortogonal 7.7 345 346 347 349 352 352 Proyecciones paralelas oblicuas Proyecciones paralelas oblicuas en diseo Perspectivas caballera y cabinet Vector de proyeccin paralela oblicua Ventana de recorte y volumen de visualizacin de proyeccin paralela oblicua Matriz de transformacin para proyeccin paralela oblicua Transformacin de normalizacin para una proyeccin paralela oblicua 355 355 356 356 358 358 359 7.8 Proyecciones en perspectiva 372 374 374 376 376

345

377 378 379 379

Visualizacin tridimensional7.1 Panormica de los conceptos de visualizacin tridimensional Visualizacin de una escena tridimensional Proyecciones Pistas de profundidad Identificacin de lneas y superficies visibles Representacin de superficies Despieces y secciones transversales

354

Transformacin de coordenadas para la proyeccin en perspectiva 380 Ecuaciones de la proyeccin en perspectiva: casos especiales 381 Puntos de fuga para las proyecciones en perspectiva Volumen de visualizacin para proyeccin en perspectiva 383 383

xi

Contenido Matriz de transformacin para la proyeccin en perspectiva Funciones para poliedros regulares de GLUT Ejemplo de programa de poliedros con GLUT Superficies curvadas Superficies cudricas Esfera Elipsoide 392 395 396 396 397 398 398 399 399 401 8.5 Toro Supercudricas Superelipse Superelipsoide 8.6 Funciones OpenGL para superficies cudricas y superficies cbicas Funciones para superficies cudricas de GLUT 423 424 424

385 386 390 8.3 8.4

416

Frustrum de proyeccin en perspectiva simtrico Frustrum de proyeccin en perspectiva oblicua Coordenadas de transformacin normalizadas para proyeccin en perspectiva 7.9 Transformacin del visor y coordenadas de pantalla tridimensionales 7.10 Funciones de visualizacin tridimensional OpenGL

420 420 421 421

Funcin de transformacin de visualizacin OpenGL Funcin de proyeccin ortogonal OpenGL Funcin OpenGL de proyeccin en perspectiva simtrica Funcin general de proyeccin de perspectiva OpenGL Visores OpenGL y ventanas de visualizacin Ejemplo de programa OpenGL para visualizacin tridimensional 7.11 Algoritmos de recorte tridimensional

Funcin de GLUT para la generacin de una tetera con una superficie cbica 425 Funciones para la generacin de superficies cudricas de GLU Ejemplo de programa que utiliza las funciones de creacin de superficies cudricas de GLUT y GLU 8.7 8.8 Obejtos din forma (biobby) Representaciones con splines Splines de interpolacin y de aproximacin Condiciones de continuidad paramtricas Condiciones de continuidad geomtrica Especificaciones de splines Superficies con splines Recorte de superficies con splines 8.9 Mtodos de interpolacin con splines cbicos Splines cbicos naturales Interpolacin de Hermite Splines cardinales Splines de Kochanek-Bartels 8.10 Curvas con splines de Bzier Ejemplo de un programa de generacin de curvas de Bzier Ecuaciones de las curvas de Bzier 434 434 435 436 437 437 438 438 441 444 445 445 446 450 425

428 429 431

Recorte en coordenadas homogneas tridimensionales 402 Cdigos de regin tridimensional Recorte tridimensional de puntos y lneas 402 403

Recorte de polgonos tridimensionales 406 407 Recorte de curvas tridimensionales 7.12 7.13 Planos de recorte arbitrarios Planos de recorte ocpionales en OpenGL Resumen Referencias Ejercicios 407 409 410 412 412

Representaciones de objetos tridimensionales8.1 8.2 Poliedros Funciones de reas de relleno de polgonos en OpenGL

414416

Funciones para poliedros en OpenGL 416 416

Propiedades de las curvas de Bzier

Contenido Procedimientos para generacin de fractales Clasificacin de fractales

xiii

Tcnicas de diseo utilizando curvas de Bzier Curvas de Bzier cbicas 8.11 8.12 Superficies de Bzier Curvas con splines B

450 451 454 454

493

Ecuaciones de una curva con splines B 454 Curvas con splines B peridicos y uniformes Curvas con splines B cbicos y peridicos Curvas con splines B abiertos y uniformes Curvas con splines B no uniformes 8.13 8.14 Superficies con splines B Splines Beta 457 460 461 464 464 465 465

Dimensin fractal Construccin geomtrica de fractales 497 deterministas autosimilares Construccin geomtrica de fractales 499 estadsticamente autosimilares Mtodos de construccin de fractales 501 afines Mtodos de desplazamiento aleatorio 504 del punto medio 506 Control de la topografa del terreno Fractales autocuadrticos Fractales autoinversos 8.24 8.25 Gramticas de formas y otros mtodos procedimentales Sistemas de partculas Modelado basado en las caractersticas fsicas Visualizacin de conjuntos de datos 507 519 521 524 526 529 529

Condiciones de continuidad de los splines Beta Representacin matricial de splines beta cbicos y peridicos 8.15 8.16 8.17

466

8.26 8.27

Splines racionales 467 Conversin entre representaciones de splines 469 Visualizacin de curvas y superficies con splines Regla de Horner Mtodos de subdivisin Funciones OpenGL de aproximacin con splines 470 470 472 474 474 477 480

Representaciones visuales de campos escalares

Representaciones visuales de campos vectoriales 533 Representaciones visuales de campos de tensores 535 Representaciones visuales de campos de datos multivariantes 536 8.28 Resumen Referencias 537 540 542

Clculos de diferencias hacia adelante 471

8.18

Funciones OpenGL para curvas con splines de Bzier Funciones OpenGL para superficies con splines de Bzier Funciones GLU para curvas con splines B Funciones GLU para la creacin de superficies con splines B Funciones GLU para el recorte de superficies 8.19 8.20 8.21 8.22 8.23 Replete-litaciones de barrido Mtodos de geometra constructiva de slidos rboles octales rboles BSP Mtodos de geometra fractal

Mtodos de deteccin de superficies visibles9.1 Clasificacin de los algoritmos de deteccin de superficies visibles Deteccin de caras posteriores Mtodo del bfer de profundidad Mtodo del bfer A Mtodo de la lnea de barrido Mtodo de orientacin de la profundidad 9.7 9.8 Mtodo del rbol BSP Mtodo de la subdivisin de reas

546

482 484 485 486 489 492 492 9.2 9.3 9.4 9.5 9.6

547 548 549 553 554

558 559

xiv 9.9 9.10 9.11 9.12

Contenido Mtodos de rboles octales Mtodo de proyeccin de rayos Comparacin de los mtodos de deteccin de visibilidad Superficies curvas 562 563 564 565 565 Reflexin especular y modelo de Phong Reflexiones difusa y especular combinadas Reflexiones especular y difusa para mltiples fuentes luminosas Emisin de luz superficial

588 592 592 592

Representacin de superficies curvas

Diagramas de contorno de superficies 566 9.13 Mtodos de visibilidad para imgenes almbricas 566 Algoritmos de visibilidad de superficies para representaciones almbricas 567 Algoritmo de variacin de intensidad con la profundidad para representaciones almbricas 567 9.14 Funciones OpenGL de deteccin de visibilidad 568 569 569

Modelo bsico de iluminacin con focos y con atenuacin de la intensidad 594 Consideraciones relativas al color RGB Otras representaciones del color Luminancia 10.4 Superficies transparentes Materiales translcidos Refraccin de la luz Modelo bsico de transparencia 10.5 10.7 Efectos atmosfricos Parmetros de la cmara 10.6 Sombras 10.8 Visualizacin de la intensidad de la luz Distribucin de los niveles de intensidad del sistema Correccin gamma y tablas de sustitucin de vdeo Visualizacin de imgenes de plano continuo 10.9 Patrones de semitono y tcnicas de aleatorizacin 594 596 596 597 597 598 600 601 601 602 602 603 604 605 606 607 610 613 614 614 617 617 618 620

Funciones OpenGL de eliminacin de polgonos Funciones bpenGL de gestin del bfer de profundidad

Mtodos OpenGL para visibilidad de superficies en representaciones almbricas 570 Funcin OpenGL para variacin de la intensidad con la profundidad 571 9.15 Resumen 571 Referencias 573 Ejercicios 573

Modelos de iluminacin y mtodos de representacin superficial10.1 Fuentes luminosas

576578 578 579 579

Aproximaciones de semitonos Tcnicas de aleatorizacin 10.10 Mtodos de representacin de polgonos Representacin superficial con intensidad constante Representacin de superficies por el mtodo de Gouraud Representacin superficial de Phong Representacin superficial rpida de Phong 10.11 Mtodos de trazado de rayos Algoritmo bsico de trazado de rayos

Fuentes luminosas puntuales Fuentes luminosas infinitamente distantes Atenuacin radial de la intensidad

Fuentes de luz direccionales y efectos de foco 580 Atenuacin angular de la intensidad 581 Fuentes luminosas complejas y el modelo de Warn 582 10.2 10.3 Efectos de iluminacin superficial Modelos bsicos de iluminacin 583 584 584 584

Luz ambiente Reflexin difusa

Clculos de interseccin entre rayos y superficie 622 Intersecciones entre rayos y esferas 623

Contenido Intersecciones entre rayos y poliedros 625 Reduccin de los clculos de interseccin con los objetos Mtodos de subdivisin espacial Simulacin de los efectos de enfoque de la cmara Trazado de rayos con antialiasing Trazado de rayos distribuido Trminos de la energa radiante Modelo bsico de radiosidad Mtodo de radiosidad mediante refinamiento progresivo 10.13 Mapeado de entorno 10.14 Mapeado de fotones 626 626 630 632 634 638 639 643 646 646 Funciones de representacin superficial OpenGL Operaciones de semitonos en OpenGL 10.21 Funciones de texluras en OpenGL Funciones OpenGL para texturas lineales Funciones OpenGL para texturas superficiales Funciones OpenGL para texturas volumtricas

xv

667 668 668 669 672 673 674 674 675 675 676 676 677 677 678 679 679 679

10.12 Modelo de iluminacin de radiosidad 638

Opciones de color OpenGL para patrones de texturas Opciones OpenGL para el mapeado de texturas Envolvimiento de texturas en OpenGL Copia de patrones de texturas OpenGL desde el bfer de imagen Matrices de coordenadas de texturas en OpenGL Denominacin de los patrones de textura OpenGL Subpatroncs de textura en OpenGL Patrones de reduccin de texturas en OpenGL Bordes de texturas en OpenGL

10.15 Adicin de detalles a las superficies 647 10.16 Modelado de los detalles superficiales mediante polgonos 650 10.17 Mapeado de texturas Patrones de textura lineales Patrones de textura superficial Patrones de textura volumtricos Patrones de reduccin de texturas Mtodos de texturado procedimental 10.18 Mapeado de relieve 10.19 Mapeado del sistema de referencia 10.20 Funciones OpenGL de iluminacin y representacin de superficies Funcin OpenGL para fuentes luminosas puntuales 650 650 651 654 655 655 656 658 659 659

Texturas proxy en OpenGL Texturado automtico de superficies cudricas Coordenadas de textura homogneas

Especificacin de la posicin y el tipo de una fuente luminosa en OpenGL 659 Especificacin de los colores de las fuentes luminosas en OpenGL Especificacin de coeficientes de atenuacin radial de la intensidad para una fuente luminosa OpenGL Fuentes luminosas direccionales en OpenGL (focos) Parmetros de iluminacin globales en OpenGL Funcin OpenGL de propiedad de una superficie Modelo de iluminacin OpenGL Efectos atmosfricos en OpenGL Funciones de transparencia OpenGL 660

Opciones adicionales para texturas en OpenGL 680 10.22 Resumen 680 Referencias 683 Ejercicios 684

661 661 662 664 665 665 666

gil

Mtodos interactivos de entrada e interfaces grficas de usuarioDatos de en irada grficos

688689

11.1 11.2

Clasificacin lgica de los dispositivos de entrada 689 Dispositivos localizadores 690 Dispositivos de trazo 690 Dispositivos de cadena de caracteres 690

xvi

Contenido Dispositivos evaluadores 690 691 692 694 694 695 695 695 695 696 696 696 696 698 699 699 700 700 705 710 710 711 711 717 717 720 720 723 724 724 724 725 726 726 12.7 #

11.9

Realimentacin Resumen Referencias Ejercicios

726 727 730 730

Dispositivos de eleccin Dispositivos de seleccin 11.3 Funciones de entrada para datos grficos Keiilinientacin mediante eco Funciones de retrollamada

Modos de entrada

Modelos y aplicaciones del color12.1 Propiedades de la luz

734735 735 737 738 738 738 739 739 740 740 741 741 741 742 742 744 744 745 745 745 745 746 747 747 748 749 750 751 751 752 752

11.4 Tcnicas interactivas de construccin de imgenes Mtodos bsicos de posicionamiento Arrastre de objetos Restricciones Cuadrculas Mtodos de banda elstica Campo de gravedad Mtodos interactivos de dibujo 11.5 11.6 Hntomos de realidad virtual Funciones OpenGL para dispositivos de entrada interactiva

El espectro electromagntico Caractersticas psicolgicas del color 12.2 Modelos de color Colores primarios Conceptos intuitivos del color 12.3 Primarios estndar y diagrama cromtico El modelo de color XYZ Valores XYZ normalizados Diagrama cromtico de la CI Gamas de colores Colores complementarios Longitud de onda dominante Pureza El modelo de color RGB El modelo de color YIQ y los modelos relacionados Los parmetros YIQ Transformaciones entre los espacios de color RGB e YIQ Los sistemas YUV e YCrC Los modelos de color CMY y CMYK Los parmetros CMY Transformaciones entre los espacios de color CMY y RGB I :! modelo de color HSV Los parmetros HSV I Seleccin de sombras, tintas y tonalidadesb

Funciones de ratn GLUT Funciones de teclado GLUT Funciones GLUT para tabletas grficas Funciones GLUT para una spaceball Funciones GLUT para cajas de bolones Funciones GLUT para diales 11.7 Funciones de men OpenGL

12.4 12.5

Operaciones de seleccin en OpenGL 7 Creacin de un men GLUT Creacin y gestin de mltiples mens GLUT Creacin de submens GLUT Modificacin de los mens GLUT 11.8 Diseo de una interfaz grfica de usuario El dilogo con el usuario Ventanas e iconos Adaptacin a los distintos niveles de experiencia Coherencia Minimizacin de la memorizacin

12.6

Transformaciones entre los espacios de color HSV y RGB 12.8 12.9 El modelo de color HLS Seleccin y aplicaciones del color Referencias Ejercicios

12.10 Resumen

Cancelacin de acciones y tratamiento de errores 726

44

Contenido

xv

1313.1

Animacin por computadoraMelados de barrido para las animaciones por computadora Doble bfer

754

155.1

Formatos de archivos grficosConfiguraciones de archivos de imagen

790

756 756

791 792 792 792 793 793 794 794

15.2

13.2 13.3

13.5 13.6 * 13.7 13.8 13.9 13.10 13.11

Generacin de animaciones mediante operaciones de barrido Diserto de secuencias de animacin Tcnicas tradicionales de animacin Funciones generales de animacin por computadora Lenguajes de animacin por computadora Sistemas de fonogramas clave Morfismo Simulacin de aceleraciones Especificaciones de movimientos Especificacin directa del movimiento Sistemas dirigidos por objetivos Cinemtica y dinmica Animacin de figuras articuladas Movimientos peridicos Procedimientos de animacin en OpenGL Resumen Referencias Ejercicios

757 757 759 760 760 761 762 764 767 767 768 768 769 771 772 775 776 777

Mtodos de reduccin de color Reduccin uniforme de color Reduccin de color por popularidad Reduccin de color de corte medio Tcnicas de compresin de archivos 15.3 Codificacin de longitud de recorrido Codificacin LZW

Otros mtodos de compresin mediante reconocimiento de patrones 795 Codificacin Huffman 795 Codificacin aritmtica Trasformada discreta del coseno 5.4 Composicin de la mayora de formatos de archivo JPEG: Joint Photographic Experts Group CGM: Computer-Graphics Metafile Format TIFF: Tag Image-File Format PNG: Portable Network-Graphics Format XBM: X Window System BitmapFormat XPM: X Window System Pixmap Format 804 804 804 804 805 805 805 805 805 806 806 Formato Adobe Photoshop MacPaint: Macintosh Paint Format PICT: Formato Picture Data BMP: Formato Bitmap PCX: Formato de archivo PC Paintbrush TGA: Formato Truevision GraphicsAdapter GIF: Graphics Interchange Format

798 799 801 801 803 803 803

Modelado jerrquico14.1 Conceptos bsicos de modelado Representaciones de los sistemas Jerarquas de smbolos 14.2 Paquetes de modelado 14.3 Mtodos generales de modelado jerrquico Coordenadas locales Transformaciones de modelado Creacin de estructuras jerrquicas 4.4 Modelado jerrquico mediante listas de visualizacin OpenGL 14.5 Resumen Referencias Ejercicios

778779 779 781 782 784 784 785 78S 787 787 788 788 A. 1

15.5

Resumen Referencias Ejercicios

Matemticas para grficos por computadoraSistemas de coordenadas

809809

xvii

Coti tenido Coordenadas de pantalla cartesianas bidimensionales Sistemas de referencia cartesianos bidimensionales estndar Coordenadas polares en el plano xy Sistemas de referencia cartesianos tridimensionales estndar Coordenadas de pantalla cartesianas tridimensionales Sistemas de coordenadas curvilneas tridimensionales ngulo slido Derivada direccional 809 809 810 811 812 812 814 814 814 814 816 816 817 818 818 819 820 820 821 822 822 823 823 824 824 825 Operador de Laplace Operador divergencia Operador rotacional A. 11 Teoremas de transformacin integrales Teorema de Stokes Teorema de Creen para una superficie plana Teorema de divergencia Ecuaciones de transformacin de Green rea de un polgono Centroide de un polgono A. 13 Clculo de las propiedades de los A. 14 poliedros 838 Mtodos numricos 839 Resolucin de sistemas de ecuaciones lineales 839 Determinacin de races de ecuaciones no lineales 841 Evaluacin de integrales 842 844 845 835 836 836 831 831 832 832 833 833 833 835

Forma general del operador gradiente 831

A.2

Puntos y vectores Propiedades de los puntos Propiedades de los vectores Suma de vectores y multiplicacin escalar Producto escalar de dos vectores Producto vectorial de dos vectores

A. 12 rea y centroide de un polgono 835

A.3 A.4

Tensores Vectores base y tensor mtrico Determinacin de los vectores base para un espacio de coordenadas Bases ortonormales Tensor mtrico

A.5

Matrices Multiplicacin por un escalar y suma de matrices Multiplicacin de matrices Traspuesta de una matriz Determinante de una matriz Nmeros complejos Aritmtica compleja bsica Inversa de una matriz

Resolucin de ecuaciones diferenciales ordinarias Resolucin de ecuaciones diferenciales parciales Mtodos de ajuste de curvas por mnimos cuadrados para conjuntos de datos

846

A.6

Bibliografa ndice ndice de funciones OpenGl

849 867 893

Unidad imaginaria 825 Conjugado complejo y mdulo de un nmero complejo 826 Divisin compleja 826 Representacin en coordenadas polares de un nmero complejo 826 A.7 A.8 A.9 Cuaternios Representaciones no paramtricas Representaciones paramtricas Operador gradiente 827 828 829 829 830

A. 10 Operadores diferenciales

PrefacioLa infografa, es decir, ios grficos por computadora, continua siendo una de las reas ms excitantes y de ms rpido crecimiento de la moderna tecnologa. Desde la aparicin de la primera edicin de este libro, los mtodos infogrficos se han convertido en una caracterstica estndar del software de aplicacin y de los sistemas informticos en general. Los mtodo infogrficos se aplican de forma rutinaria en el diseo de la mayora de los productos, en los simuladores para actividades de programacin, en la produccin de vdeos musicales y anuncios de televisin, en las pelculas, en el anlisis de datos, en los estudios cientficos, en las intervenciones mdicas y en muchsimas otras aplicaciones. Hoy en da, se utiliza una gran variedad de tcnicas y de dispositivos hardware en estas diversas reas de aplicacin, y hay muchas otras tcnicas y dispositivos actualmente en desarrollo. En particular, buena parte de las investigaciones actuales en el campo de la infograla estn relacionadas con la mejora de la efectividad, del realismo y de la velocidad de generacin de imgenes. Para conseguir una vista realista de una escena natural, un programa grfico puede simular los efectos de las reflexiones y refracciones reales de la luz en los objetos fsicos. Como consecuencia, la tendencia actual en los grficos por computadora consiste en incorporar mejores aproximaciones de los principios fsicos dentro de los algoritmos grficos, con el fin de simular mejor las complejas interacciones existentes entre los objetos y el entorno de iluminacin.

Caractersticas de la tercera edicinEl material de esta tercera edicin ha evolucionado a partir de una serie de notas utilizadas en diversos cursos que hemos impartido a lo largo de los aos, incluyendo cursos de introduccin a la infografa, infografa avanzada, visualizacin cientfica, temas especiales y cursos de proyecto. Cuando escribimos la primera edicin de este libro, muchos aplicaciones y muchos cursos sobre grficos slo trataban con mtodos bidimensionales, as que decidimos separar las explicaciones relativas a las tcnicas grficas bidimensionales y tridimensionales. En la primera parte del libro se proporcionaba una slida base sobre los procedimientos infogrficos bidimensionales, mientras que los mtodos tridimensionales se analizaban en la segunda mitad. Ahora, sin embargo, las aplicaciones grficas tridimensionales resultan comunes y muchos cursos introductorios a la infografa tratan principalmente con mtodos tridimensionales o introducen los grficos tridimensionales en una etapa relativamente temprana. Por tanto, una de las principales caractersticas de esta tercera edicin es la integracin de los temas relativos a grficos tridimensionales y bidimensionales. Tambin hemos ampliado el tratamiento de la mayora de los temas para incluir anlisis de desarrollos recientes y nuevas aplicaciones. Los temas generales que se cubren en esta tercera edicin incluyen: componentes hardware y software actuales de los sistemas grficos, geometra fractal, trazado de rayos, splines, modelos de iluminacin, representacin de superficies, iluminacin por computadora, realidad virtual, implementaciones paralelas de algoritmos grficos, antialiasing, supercudricas, rboles BSP, sistemas de partculas, modelado fsico, visualizacin cientfica, radiosidad, mapeado de relieve y morfismo. Algunas de las principales reas de ampliacin son la animacin, las representaciones de objetos, la pipeline de visualizacin tridimensional, los modelos de iluminacin, las tcnicas de representacin superficial y el mapeado de texturas. Otro cambio importante en esta tercera edicin es la introduccin del conjunto de rutinas grficas OpenGL, que ahora se utiliza ampliamente y que est disponible en la mayora de los sistemas informticos.

xx

Prefacio

El paquete OpenGL proporciona una amplia y eficiente coleccin de funciones independientes del dispositivo para la creacin de imgenes infogrficas, utilizando un programa escrito en un lenguaje de propsito general tal como C o C+ + . OpenGL ofrece bibliolecas auxiliares para el manejo de operaciones de entrada y de salida, que requieren interaccin con los dispositivos, y para procedimientos grficos adicionales como la generacin de formas cilindricas, objetos esfricos y B-splines.

Ejemplos de programacinEn esta tercera edicin se proporcionan ms de veinte programas C + + completos, utilizando la biblioteca de rutinas grficas disponible en el popular paquete OpenGL. Estos programas ilustran las aplicaciones de las tcnicas bsicas de construccin de imgenes, las transformaciones geomtricas bidimensionales y tridimensionales, los mtodos de visualizacin bidimensionales y tridimensionales, las proyecciones en perspectiva, la generacin de splines, los mtodos fractales, la entrada interactiva mediante el ratn, las operaciones de seleccin, la visualizacin de ments y submens y las tcnicas de animacin. Adems, se proporcionan ms de 100 fragmentos de programas C + + / O p e n G L para ilustrar la implementacin de algoritmos infogrficos de recorte, efectos de iluminacin, representacin superficial, mapeado de texturas y muchos otros mtodos infogrficos.

Conocimientos requeridosNo asumimos que el lector tenga ninguna familiaridad previa con los grficos por computadora, pero s que debe tener unos ciertos conocimientos de programacin y de estructuras bsicas de datos, tales como matrices, listas de punteros, archivos y organizaciones de registros. En los algoritmos infogrficos se utilizan diversos mtodos matemticas, y estos mtodos se explican con un cierto detalle en el apndice. Los temas matemticos cubiertos en el apndice incluyen tcnicas diversas que van desde la geometra analtica hasta el anlisis numrico, pasando por el lgebra lineal, el anlisis vectorial y tensorial, los nmeros complejos, los cuaternios y el clculo bsico. Esta tercera edicin puede utilizarse tanto como un texto para estudiantes que no tengan conocimientos previos de infografa, cuanto como referencia para los profesionales de los grficos por computadora. El nfasis del libro se pone en los principios bsicos necesarios para disear, utilizar y comprender los sistemas infogrficos, junto con numerosos programas de ejemplo que ilustran los mtodos y aplicaciones relativos a cada tema.

Estructuraciones sugeridas para el cursoPara un curso de un semestre, puede elegirse un subconjunto de temas que traten acerca de los mtodos bidimensionales o de una combinacin de mtodos bidimensionales y tridimensionales, dependiendo de las necesidades de cada curso concreto. Un curso de dos semestres puede cubrir los conceptos grficos bsicos y los algoritmos en el primer semestre y los mtodos tridimensionales avanzados en el segundo. Para el lector autodidacta, los captulos iniciales pueden usarse para comprender los conceptos grficos, suplementando estos conceptos con temas seleccionados de los captulos posteriores. En los primeros cursos universitarios, puede organizarse un curso de introduccin a la infografa utilizando materiales seleccionados de los Captulos 2 a 6, 11 y 13. Pueden elegirse las adecuadas secciones de estos captulos para cubrir nicamente los mtodos bidimensionales, o bien pueden aadirse temas relativos a los grficos tridimensionales extrados de estos captulos, junto con determinado materiales de los Captulos 7 y 10. Otros temas, como las representaciones fractales, las curvas splines, el mapeado de texturas, los mtodos basados en bfer de profundidad o los modelos de color, pueden introducirse en un primer curso sobre infografa. Para los cursos universitarios posteriores de carcter introductorio, puede hacerse ms nfasis en la visualizacin tridimensional, el modelado tridimensional, los modelos de iluminacin y los mtodos de representacin de superficies. En general, sin embargo, una secuencia de dos semestres constituye un mejor marco

Prefini

xxi

para cubrir adecuadamente los fundamentos de los mtodos infogrficos bidimensionales y tridimensionales, incluyendo las representaciones mediante splines, la representacin de superficies y el trazado de rayos. Tambin pueden ofrecerse cursos dedicados a temas especiales, para los que se requiera un conocimiento bsico de infografa como prerrcquisito. centrando esos curso en una o dos reas seleccionadas como por ejemplo tcnicas de visualizacin, geometra Iraclal, mtodos basados en splines, trazado de rayos, radiosidad y animacin por computadora. II Capitulo I ilustra la diversidad de aplicaciones infbgrfcas existentes, examinando los numerosos tipos distintos de imgenes que se generan mediante software grfico. En el Captulo 2 se presenta el vocabulario bsico del campo de la infografa, junto con una introduccin a los componentes hardware y software de los sisicmas grficos, una introduccin detallada a OpenGL y un programa OpenGL complejo de ejemplo. Los algoritmos fundamentales para la representacin y visualizacin de objetos simples se proporcionan en los Captulos 3 y 4. Estos dos captulos examinan los mtodos para generar componentes grlcos de las imgenes tales como polgonos y crculos; para establecer el color, tamao y otros atributos de los objetos; y para implementar dichos mtodos en OpenGL. El Captulo 5 analiza los algoritmos para realizar transformaciones geomtricas tales como la rotacin y el cambio de escala. En los Captulos 6 y 7, se proporcionan explicaciones detalladas de los procedimientos utilizados para mostrar vistas de escenas bidimensionales y tridimensionales. Los mtodos para la generacin de imgenes de objetos complejos, tales como superficies cudricas, splines, fractales y sistemas de partculas se explican en el Captulo 8. En el Captulo 9 exploramos las diversas tcnicas infogrficas que se utilizan para identificar los objetos visibles en una escena tridimensional. Los modelos de iluminacin y los mtodos para aplicar condiciones de iluminacin en la escena se examinan en el Captulo 10, mientras que los mtodos para la entrada grfica interactiva y para el diseo de interfaces grficas de usuario se repasan en el Captulo 11. Los diversos modelos de color que resultan tiles en la infografa se analizan en el Captulo 12, donde tambin se proporcionan consideraciones relativas al diseo de imgenes en color. Las tcnicas de animacin por computadora se exploran en el Captulo 13. Los mtodos para el modelado jerrquico de sistemas complejos se presentan en el Captulo 14 y, finalmente, en el Captulo 15 se hace un repaso de los principales formatos de archivos grficos.

AgradecimientosSon muchas las personas que han contribuido a este proyecto de diversas formas a lo largo de los aos. Nos gustara expresar de nuevo nuestro agradecimiento a las organizaciones y personas que nos han proporcionado imgenes y otros materiales, as como a los estudiantes de los diversos cursos y seminarios sobre infografa y visualizacin que hemos impartido, los cuales nos han proporcionado numerosos comentarios tiles. Estamos en deuda con todos aquellos que nos han proporcionado comentarios, que han realizado revisiones, que nos han hecho llegar sugerencias para mejorar el material cubierto en el libro y que nos han ayudado de numerosas turas formas, y queramos de forma expresa disculparnos con todas aquellas personas a las que nos hayamos olvidado de mencionar. Damos nuestro agradecimiento a Ed ngel, Norman Badler, Phillip Barry, Brian Barsky, Hedley Bond. Bart Braden, Lara Burton, Robert Burton, Greg Chwelos, John Cross, Steve Cunningham, John DeCatrel, Vctor Duvaneko, Gary Eerkes, Parris Egbert, Tony Faustini, Thomas Foley, Thomas Erank, Don Gillies, Andrew Glassner, Jack Goldfeather, Georges Grinstein, Eric Haines, Robert Herbst, Larry llodges, Carolllubbard. Eng-Kiat Koh,MikeKxogh, Michael Laszlo, Suzanne Lea, Michael May, Nelson Max, David McAllister, JelTrey McConneil, Gary McDonald, C. L. Morgan, Greg Nielson, James Oliver, Lee-Hian Quek, Laurence Rainville, Paul Ross, David Salomn, Gnther Schrack, Steven Shaler, CliVShaTer, Pete Shirley, Carol Smith, Stephanie Smullen, JcTSpears,WilliamTaffe,WaiWanTsang, Spencer Thomas, Sam Uselton, David Wen, fiill Wicker, Andrew Woo, Angelo Yfantis, Marek Zaremba, Michael Zyda y a los numerosos revisores annimos. Tambin queremos dar las gracias a nuestro editor Alan Apt, a Toni llolm y al equipo de Colorado por su ayuda, sus sugerencias, su apoyo y, por encima de todo, su paciencia durante la preparacin de esta tercera edicin. Tambin deseamos dar las gracias a nuestros editores de produccin a su equipo, Lynda Castillo, Camille Trentacoste, Heather Scott, Xiaohong Zhu, Vince

xxii

Prefacio

O'Brien, Patricia Bums, Kathy Ewing y David Abel; agradecemos de verdad su valiosa ayuda y su cuidada atencin al detalle.

Advertencia ai lectorLa versin en ingls del libro, Computer Graphics with OpenGL, est impresa en color. Sin embargo, Grficos por computadora en OpenGL, que es la versin traducida al espaol se ha impreso en blanco y negro, por lo que todas las imgenes y fotografas se presentan en escala de grises. El lector debe entonces sobreenteder que cuando en el texto se hace referencia a cdigos de colores, siempre debe pensarse en la imagen o fotografa en color.

Grficos por computadoracon OpenGL

CAPTULO

1

Introduccin a los grficos por computadora

Una escena de una pelcula de dibujos animados generada por computadora de Saguaro-Emerlaincr. (Cortesa de SOFTIMAGE. Inc.)

1.1 1.2 1.3 1.4 1.5

Grficos y diagramas Diseo asistido por computadora Entornos de realidad virtual Visuali/acin de datos Educacin y formacin

1.6 1.7 1.8 1.9 1.10

Arte por computadora Entretenimiento Procesamiento de imgenes Interfaces grficas de usuario Resumen

, Los grficos por computadora se han convertido en una potente herramienta para la produccin rpida y econmica de imgenes- Prcticamente no existe ninguna tarea en la que la representacin grfica de la informacin no pueda aportar alguna ventaja y, por tanto, no sorprende encontrar grficos por computadora en muchos sectoresAAunque las primeras aplicaciones de ciencia e ingeniera requeran equipos caros y aparatosos, los avances en la tecnologa informtica han hecho de los grficos interactivos una herramienta muy til. Actualmente, los grficos por computadora se usan a diario en campos tan diversos como las ciencias, las artes, la ingeniera, los negocios, la industria. la medicina, las administraciones pblicas, el entretenimiento, la publicidad, la educacin, la formacin y en aplicaciones caseras. E incluso podemos transmitir imgenes alrededor del mundo a travs de Internet. La Figura 1.1 presenta un breve resumen de diversas aplicaciones grficas en simulaciones, formacin y representacin de datos. Antes de entrar en detalle sobre cmo hacer grficos con una computadora, vamos a hacer una pequea visita a una galera de aplicaciones grficas.

1.1 GRFICOS Y DIAGRAMASLas primeras aplicaciones de los grficos por computadora fueron para visualizar grficos de dalos que, frecuentemente, se impriman con impresoras de caracteres. Todava la representacin grfica de datos es una de las aplicaciones ms comunes, pero hoy podemos generar fcilmente grficos que muestren complejas relaciones entre datos para realizar informes escritos o para presentarlos mediante diapositivas, transparencias o animaciones en video. Los grficos y los diagramas se usan comnmente para realizar resmenes financieros, estadsticos, matemticos, cientficos, de ingeniera y econmicos, para realizar informes de investigacin, resmenes de gestin, boletines de informacin al consumidor y otros tipos de publicaciones. Hay disponibles una gran variedad de paquetes grficos y de dispositivos para estaciones de trabajo, as como servicios comerciales para convertir imgenes generadas en la pantalla de una computadora en pelculas, diapositivas o transparencias para presentaciones o para guardar en archivos. Ejemplos tpicos de visualizacin de datos son los diagramas lineales, de barras, los diagramas de tarta, grficos de superficie, diagramas de contorno y otras muchas representaciones en las que se muestran las relaciones entre mltiples parmetros en espacios de dos, tres o ms dimensiones. Las Figuras 1.1 y 1.2 muestran ejemplos de representaciones de datos en dos dimensiones. Estas dos figuras presentan ejemplos bsicos de grficos lineales, diagramas de barras y diagramas de tarta. En este ltimo podemos ver cmo se resalta la informacin desplazando radialmente las diferentes secciones produciendo un diagrama de tarta en explosin. Los diagramas y grficos tridimensionales se usan para mostrar informacin adicional, aunque algunas veces simplemente se usan para causar efecto, dando mayor dramatismo y haciendo ms atractivas las presentaciones de relaciones entre datos. La Figura 1.3 muestra un diagrama de barras 3D combinado con informacin geogrfica. La Figura 1.4 proporciona cjeirplos de grficos trimensionales con efectos dramticos.

4 CAPTULO 1 Introduccin a los grficos por computadora Otro ejemplo de grficos de datos 3I) es la representacin de superficie, como la que se ilustra en la Figura 1.5, en la que se muestra una superficie equipotencial y su contorno bidimensional proyectado. La Figura l .6 muestra un diagrama de tiempos para la planificacin de tareas. Los diagramas de tiempo y los gralbs de planificacin de tareas se usan para la direccin de proyectos y para monilorizar y ordenar en el tiempo el progreso de los mismos.

FIGURA 1.2. Grficos bidimensionales de lnea, diagramas de barras y diagramas de larta. {Cortesia de UNIRS. /.VC.)

FIGURA 1.3. Conjuntos de datos codificados usando dos colores presentados como diagramas de barras tridimensionales en la superficie de una regin geogrfica . {Reimpreso con permiso de ISSCO Graphics, San Diego. California.)

FIGURA 1.4. Dos grficos tridimensionales diseados con electo dramtico. {Reimpreso con permiso de ISSCO Graphics. San Diego. California.)

1.2 Disefw asistido por computadora

5

MECMAHIZg QAWTT

FIGURA 1.5. Representacin de contornos tridimensionales en un plano de tierra, con un campo de potencial. (Reimpreso con permiso Je !SSCO Graphics, San Diego. California.)

FIGURA 1.6. Un diagrama de tiempos para la planificacin de tareas y otras informaciones relevantes para las tareas de un proyecto. (Reimpreso con permiso de ISSCO Graphics. San Diego. California)

1.2 DISEO ASISTIDO POR COMPUTADORAUno de los mayores usos de los grficos por computadora se encuentra en los procesos de diseo, particularmente en arquitectura e ingeniera, aunque ahora muchos productos se disean por computadora. Generalmente, se conoce como (CAD, Computer Aided Design, diseo asistido por computadora) o CADD (Computer Aided Drafting and Design). Estos mtodos se emplean rutinariamente en el diseo de edificios, automviles, aeronaves, barcos, naves espaciales, computadoras, telas, electrodomsticos y muchos otros productos. En algunas aplicaciones de diseo, los objetos se visualizan primero en su modelo almbrico mostrando su forma general y sus caractersticas internas. El modelo almbrico permite a los diseadores ver rpidamente los efectos de los ajustes interactivos que se hacen en las formas sin esperar a que la superficie completa de los objetos est completamente generada. Las Figuras 1.7 y 1.8 proporcionan ejemplos de modelos almbricos en aplicaciones de diseo.

FIGURA 1.7. Modelo almbrico con cdigo de colores de ensamblado de una rueda de automvil. (Cortesia de Evans y Sutherland.)

6 CAPTULO 1 Introduccin o los grficos por computadora

\

i rus C - J -'

U C '

hCti ICU

(a) (b) FIGURA 1.8. Modelos almbricos con cdigo de colores del diseo del cuerpo de un avin y un automvil. (Cortesa de (a) Corporacin Peritek y (b) Evans y Sutherland.)

FIGURA 1.9. testaciones de trabajo CAD con mltiples ventanas. (Cortesa de Intergraph Corporation.) Los paquetes de software CAL) suelen proporcionar al diseador un enlomo multiventana, como se ve en las Figuras 1.9 y 1.10. Las diferentes ventanas pueden mostrar secciones aumentadas o diferentes vistas de los objetos. Circuitos como el mostrado en la Figura 1.10 y redes de comunicacin, de suministro de agua y otras herramientas se construyen colocando de forma repetida unas pocas formas grficas. Las formas empleadas en un diseo representan los diferentes componentes del circuito o de la red. Los paquetes de diseo suelen suministrar formas estndar de mecnica, electricidad, electrnica y circuitos lgicos. Para otro tipo de aplicaciones, el diseador puede crear smbolos personalizados para construir la red o el circuito. El sistema es entonces diseado mediante sucesivas copias de los componentes posieionadas en el plano y unidas automticamente entre si mediante enlaces proporcionados por el paquete grfico. Esto permite que el diseador pueda probar diferentes configuraciones para el circuito y as optimizar al mnimo el nmero de componentes usados o el espacio requerido para el sistema. Las animaciones tambin se usan frecuentemente en las aplicaciones de CAD. Animaciones en tiempo real del modelo almbrico de las formas son muy tiles para comprobar rpidamente el funcionamiento de un vehculo o un sistema como se puede ver en la Figura 1.11.

1.2 Diseo asistido por computadora 1

Dado que las imgenes en modelo almbrico no muestran las superficies, los clculos para cada segmento de animacin pueden realizarse rpido para as producir movimientos suaves en la pantalla. Tambin el modelo almbrico permite ver en el interior del vehculo y observar los componentes internos durante el movimiento. Cuando los diseos del objeto estn completos o casi completos, se aplican condiciones reales de iluminacin y de representacin de superficies para producir visualizaciones que mostrarn la apariencia final del producto.. Ejemplos de esto se proporcionan en la Figura 1.12. Tambin se generan visualizaciones realistas para anunciar.automviles y otros vehculos usando efectos de lu/ y escenas de fondo (Figura 1.13). El proceso de fabricacin tambin va unido a la descripcin computerizada de los objetos diseados, de modo que el proceso de fabricacin del producto puede ser automatizado, utilizando mtodos que son conocidos como CAM (Computer-Aided Manufacturing. fabricacin asistida por computadora). El plano de una placa de circuito, por ejemplo, puede transformarse en la descripcin individualizada de los procesos necesarios para construir el circuito electrnico. Algunas piezas mecnicas se fabrican a partir de las descripciones de cmo las superficies se tienen que formar con las mquinas herramienta. La Figura 1.14 muestra las rutas:

FIGURA 1.10. Aplicacin para el diseo de circuitos electrnicos, usando mltiples ventanas y componentes lgicos codificados mediante colores. (Cortesa de Sun Microsystems.)

FIGURA 1.11. Simulacion del comportamiento de un vehiculo a] eambiar de carril. (Cor/esta de Evans & Sutherland y Mechanical Dynamics. Inc.)

(a)

(b)

FIGURA 1.12. Presentaciones realistas de diseos de ingeniera. (Cortesa de (a) Intergraph Corporation (b) Evans & Sutherland.)

8 CAPITULO 1 Introduccin a los grficos por computadora

FIGURA 1.13. Mediante software grfico se aplican electos de iluminacin de estudio y tcnicas de visualizacin realista de superficies, con el fin de crear anuncios de productos terminados. Esta imagen generada por computadora de un Chrysler Lser fue generada a partir de datos proporcionados por la Compaa Chrysler. (Cortesa de Eric Haines, Autodesk Inc.)

FIGURA 1.14. Un esquema de CAD para describir el control numrico del mecanizado de una pieza. La superficie de la pieza est en un tono de gris y las trayectorias de la herramienta en otro. (Cortesa de Los Alamos National Laboratory.)

^

*

=?"ft3

"II

i

II T*1FII || II II I IIII II>

fi jj FIGURA 1.15. Hsquema CAD de arquitectura para el diseo de un edificio. (Cortesa de Precision Visuals. Inc Boulder, Colorado.)

*"5*ta>Y 'i .sEgMIIII

II r

P

n .

1.2 Disefio asistido por computadora

9

que tienen que tomar las mquinas sobre las superficies de un objeto durante su construccin. Las mquinas con control numrico preparan la fabricacin de acuerdo con estos diseos de fabricacin. I Los arquitectos usan mtodos de grficos interactivos para disear los planos de distribucin de pisos, como se muestra en la Figura 1.15, en los que se indica la posicin de las habitaciones, puertas, ventanas, escaleras, estanteras, encimeras y otras caractersticas del edificio. Trabajando a partir de la visualizacin en un monitor del plano de un edificio, un diseador elctrico puede definir el cableado, los enchufes elctricos y los sistemas de prevencin de incendios. Tambin con un paquete de planificacin de instalaciones se puede optimizar el espacio en una oficina o en una fbrica. Vistas realistas de diseos arquitectnicos, como el de la Figura 1.16 permiten tanto a los arquitectos como a sus clientes estudiar la apariencia de un edificio o de un conjunto de edificios, como un campus o un complejo industrial. Adems para visualizaciones realistas de exteriores de edificios, los paquetes de arquitectura CAD proporcionan utilidades qae permiten experimentar con planos interiores tridimensionales y de iluminacin (Figura 1.17). Pueden disearse muchos otros tipos de sistemas y productos usando tanto paquetes generales de CAD como desarrollos especiales de software de CAD. La Figura 1.18, por ejemplo, muestra un patrn de alfombra diseado con un sistema CAD.

FIGURA 1.16. Presentaciones realistas tridimensionales de diseos de edificios, (a) Una perspectiva a nivel de calle del proyecto de un centro de negocios. (Cortesia de Skidmore, Owings n.)

FIGURA 1.32. Visualizacin con cdigo de colores de la densidad de energa de fatiga en el estudio de la propagacin de una grieta en una plancha de metal. Modelado por Bob Haber. (Cortesia del National Center for Supercomputing Applications, Universidad de Illinois, Urbana-Champaign.)

FIGURA 1.33. Simulacin de la dinmica de un Huido, mostrando la representacin grfica con cdigo de colores de la densidad del fluido que se extiende sobre una malla de planos alrededor del ala de un avin, desarrollado por Lee-Han Quek, John Fickemeyer y JefFery Tan. (Cortesa de Information Technology Institute. Repblica de Singapur.)

16

CAPITULO 1

FIGURA 1.34. Software cortador de secciones, mostrando valores con cdigo de colores sobre las secciones transversales de un conjunto de datos. (Cortesia ae fass, Incj

FIGURA 1.35. Visualizacin de la estructura de una protena creada por Jay Siegel y Kim Baldridge, SDSC. {Cortesa de Siephanie Sides, Supercomputer Center de San Diego.)

FIGURA 1.36. Cientfico imeractuando con vistas cstcrascpicas de estructuras moleculares dentro de un enlomo de realidad virtual, llamado CAVE, caverna. (Cortesa d Wilfiam Sherman y de National Center for Supercomputing Applications, Universidad de Illinois, Urbana-Champaign.)

1A Visualization tic Jotos

17

FIGURA 1.37. Imagen de un par esleroscpieo. que muestra la visuali/aein de suelo ocenico, obtenida do las imgenes de un satlite, creada por David Sundwcll y Chris Small. Institucin Scripps de la Oceanografa y Jim Mcleod. SDS( . (Cortesa tie Stephanie Sides, San Diego Supercomputer C enter)

FIGURA 1.38. Simulacin de los efectos de los incendios en los po/os petrolferas de Kuwait, desarrollada por Gary Cilat/meier, Chuck Hanson y Paul llinker. (Cortesa de Mike Ktgfk Advanced Compuling Laboratory en Los Alamos National Laboratory.)

18

CAPTULO 1 Introduccin a los grficos por computadora

FIGURA 1.39. Visualizacin de la contaminacin sobre !a superficie de la tierra diseada porTom Palmer, Cray Research Inc. /NCSC, Chris Landreth, NCSC, and Dave Bock, NCSC. El contaminante SO., se representa con color azul, la precipitacin de la lluvia acida es un color plano en el mapa de la superficie, y la concentracin de lluvia se representa como cilindros huecos. (Cortesa del Supereomputing Center/ MCNC de Candna del Norte.)

FIGURA 1.40. Un marco de la animacin que muestra el crecimiento de una mazorca de maz. (Cortesa de National Center for Supereomputing Applications, Universidad de Illinois, Urbana-Champaign.)

FIGURA 1.41. Visualizacin de la reconstruccin de las ruinas del Can del Chaco en Arizona. (Cortesa de Melvin L. Prueitt, Los Alamos National Laboratory. Datos proporcionados por Stephen H. Lekson.)

1.5 Educacin y formacin 19

By mapping the class proportionr. onto the group bars, we can see the correlation between the pedestrain injury and other attributes!I'.-*'

Q+otietirnlOICUIOUOCH

ArtSlVSISJ

V,W#r

ti 'i"to

r.rw,.

2T

I FIGURA 1.42. Prototipo para la visualizacin de tablas multidimensionales de datos, llamado WinViz y desarrollado por el equipo de visualizacin del Instituto de Tecnologas de la Informacin, Repblica de Singapur. Se usa aqu para hacer correlaciones de informacin estadstica de peatones implicados en accidentes de trfico. (Cortesa de Lee-Hean Quek. Oracle Corporation, Redwood Shores, California,)

tit

I iMi.I

2

..... , ia

r

-|

,| i I I I

.

1.5 EDUCACIN Y FORMACINLos modelos generados por computadora de sistemas fsicos, financieros, polticos, sociales, econmicos y otros se usan frecuentemente como ayudas para la educacin. Modelos de procesos fsicos, psicolgicos, tendencias de la poblacin, equipamiento, como el diagrama codificado de colores (en escala de grises en la imagen) de la Figura 1.43, puede ayudar a los alumnos a comprender la operacin de un sistema. En algunas aplicaciones de formacin se necesitan equipos especiales de hardware. Ejemplos de este tipo de sistemas son los simuladores para las sesiones prcticas de formacin de capitanes de barco, pilotos de aeronaves, operadores de maquinaria pesada, personal del control de trfico areo. Algunos simuladores no tienen pantallas de video, como por ejemplo, un simulador de vuelo con slo un panel instrumental de vuelo. Pero la mayora de los simuladores proporcionan pantallas para mostrar visualizaciones del entorno exterior. Dos ejemplos de grandes simuladores con sistemas internos de visualizacin se muestran en las Figuras 1.44 y 1.45. Otro tipo de sistemas de visualizacin lo tenemos en las Figuras 1.46(b) y(c). En este caso, se monta una pantalla de visualizacin enfrente del simulador y proyectores en color muestran la escena del vuelo en paneles de pantallas. La Figura 1.47 muestra la zona que puede estar situada detrs de la cabina del piloto del simulador de vuelo. El teclado lo usa el instructor para introducir parmetros que afectan al funcionamiento del avin o al entorno, as mismo se visualiza el camino de la aeronave y otros datos en los monitores durante la sesin de formacin o prueba.

lili i-h 1 ff m m 11V 'i? n \ lj i ?

tez

FIGURA 1.43. Diagrama con cdigo de colores (escala de grises en la imagen) para explicar el funcionamiento de un reactor nuclear. (Cortesa de Los Alamos National Laboratory. )

20

CAPTULO 1

Introduccin a los grficos por computadora

FIGURA 1.45. Simulador de lauque militar con sistema visual de imgenes. (Cortesa de Mediatech y GE Aerospace.) Escenas generadas para simuladores de aeronaves, barcos y naves espaciales se muestran en las Figuras 1.48 hasta la 1.50. El simulador de un automvil y sus imgenes asociadas se dan en la Figura 1.51. La parte (a) de esta figura muestra el interior del simulador y la pantalla de visualizacin visible a travs del parabrisas. Una escena tpica del trfico en una calle se muestra en la Figura 1.51(b). A pesar de que los simuladores de automviles

1.5 Educacin y formacin 21

pueden ser usados como sistemas de entrenamiento, se utilizan comnmente para estudiar ei comportamiento de los conductores ante situaciones crticas. Las reacciones del conductor en diversas condiciones de trfi co pueden ser utilizadas como base para disear un vehculo maximizando la seguridad en el trfico.

FIGURA 1.47. El rea del instructor detrs de la cabina de un simulador pequeo de vuelo. El equipo permite al instructor monitori/ar las condiciones de vuelo y establecer los parmetros del avin y del entorno. (Cortesia de Frasca Internationa/.)

22

CAPITULO 1

Introduction a los grficos por computadora

FIGURA 1.48. Imgenes de un simulador de vuelo. (Cortesa de Evans & Sutherland,)

FIGURA 1.49. Imgenes generadas para un simulador naval. (Cortesa de Evans & Sutherland.)

FIGURA 1.50. Imgenes de una lanzadera espacial. (Cortesa de Mediatech y GE Aerospace.)

1.6 Arte por computadora

23

(a) (b) FIGURA 1.51. Interior del simulador de una automvil (a), una vista de una escena de calle (b) puede presentarse al conductor. (Cortesia de Evans & Sutherland.)

1.6 ARTE POR COMPUTADORA( T a n t o el arte puro como el comercial hacen uso de los mtodos de los grficos por computadora. Los artistas tienen disponibles una variedad de mtodos y herramientas, incluyendo hardware especializado, paquetes de software comercial (como Lumena). programas de matemtica simblica (como Mathematica). paquetes CAD, software de escritorio para publicacin y sistemas de animacin que proporcionan capacidades para disear formas de objetos y especificar sus movimientos. La Figura 1.52 proporciona una representacin figurada del uso de un programa de dibujo (paint brush) que permite al artista pintar cuadros o dibujos en la pantalla de un monitor de vdeo. En realidad, el dibujo se pinta electrnicamente en una tableta grfica digitalizadora utilizando una pluma, que puede simular diferentes golpes de pincel, grosores de pincel y colores. Utilizado un programa de dibujo, un diseador de comics cre los personajes de la Figura 1.53 quienes parecen estar muy ocupados en la creacin de si mismos.

FIGURA 1.52. Dibujo animado generado con un programa de dibujo (paintbrush), representa de manera simblica cmo un artista trabaja en un monitor de vdeo. (Cortesa de Gould Inc. Imaging and Graphics Division y Aurora Imaging)

2 4 CAPTULO 1

Introduccin a los grficos por computadora

(b) FIGURA 1.53. Demostraciones en eomic de un artista creando un dibujo con un sistema painthrush. En (a) el dibujo se hace en una tableta grfica mientras ellos mismos observan el desarrollo de la imagen en la pantalla de video. En (b) el artista y ellos mismos est sohreimpuestos en la lamosa pintura de Thomas Nast de San Nicols, la cual fue introducida en el sistema a travs de una cmara de video. (Cortesa de Gottld Inc.. Imaging A Graphics Divisin y Aurora Imaging). Un sistema de dibujo, con un sistema Wacom inalmbrico y pluma sensible a la presin, se emplearon para producir la pintura electrnica de la Figura 1.54, que simula las pinceladas dadas por Van Gogh. La pluma transforma los cambios de presin en la mano a lneas de ancho variable, diferentes tamaos de pincel y gradaciones de color. La Figura 1.55 muestra una acuarela generada con este tipo de pluma electrnica que permite al artista crear no slo acuarelas sino tambin, pastel, leos, simular efectos de secado, humedad e incluso huellas. La Figura 1.56 proporciona un ejemplo de mtodos de dibujo combinados con imgenes escanciadas. Los creadores de bellas artes utilizan diversas tcnicas para crear imgenes por computadora. Para crear dibujos como el que aparece en la Figura 1.57. los artistas utilizan un combinacin de tcnicas de paquetes de modelado tridimensional, inapeo de texturas, programas de dibujo y software CAD. En la Figura 1.58 tenemos una pintura generada con un trazador usando un software diseado a medida que puede crear arte automtico, sin la intervencin de ningn artista. La Figura 1.59 muestra un ejemplo de arte matemtico. Este artista utiliza una combinacin de funciones matemticas y procedimientos fractales, el software Mathemalica, impresoras de inyeccin de tinta y otros sistemas para crear diversos objetos tridimensionales y formas bidimensionales. as como pares de imgenes estereoscpicas. En la Figura 1.60 se muestra otro ejemplo de arte electrnico creado con la ayuda de rea-

1.6 Arte por computadora

25

FIGURA 1.55. Acuarela electrnica, pintada por John Derry de Time Arts, Inc. con pluma inalmbrica sensible a la presin y el software Lumena con pincel aguado. (Cortesa de Wacom Technology Corporation.)

FIGURA 1.56. Fl creador de esta pintura, titulada Avalancha Electrnica realiza una afirmacin sobre nuestra relacin con la tecnologa, utilizando una computadora personal con tableta grfica y el software Lumena para combinar la generacin de grficos para hojas, ptalos de flor y componentes electrnicos con imgenes escaneadas. {Cortesa de la Williams Galery. C; 1991 Trukenbrod, The Schooi ofthe Arf Institute of Chicago.)

FIGURA 1.57. De una serie llamada Fsferas de influencia, esia pintura electrnica titulada Whigma/aree fue creada con una combinacin de mtodos utilizando una tableta grfica, modelado tridimensional, mapeado de texturas y una serie de transformaciones geomtricas. {Cortesa de ta Williams Gallery. > 1992 Wynne Ragland, Jr.)

26

CAPTULO 1 introduccin a los grficos por computadora

FIGURA 1.58. Produccin de arle electrnico con un trazador y software diseado especficamente para el artista para imitar su estilo. El trazador tiene mltiples plumas e instrumentos de pintura incluyendo pinceles chinos. (Cortesa de la Williams Gallery Romn Verostko. Minneapolis College of Art & Design.)

FIGURA 1.59. Hsta creacin de Andrew Hanson est basada en una visualizacin del ltimo teorema de Fermat, x" + /' = r" , n = 5. Departamento de Ciencias de la Computacin de la Universidad de Indiana. La imagen fue renderizada con Mathematiea y Software Wavefront. (Cortesa dla Williams Galleiy ) 1991 Stewart Dickinson.)

ciones matemticas. La propuesta artstica de este creador frecuentemente se disea en relacin con las variaciones de frecuencia y otros parmetros de una composicin musical para producir vdeo que integra patrones visuales y auditivos. Las arles grficas tambin utilizan estas tcnicas de pintura para generar logos y otros diseos, diseos de pginas combinando textos y grficos, anuncios de televisin y otras aplicaciones. En la Figura 1.61 se muestra una estacin de trabajo para disear pginas que combinan textos y grficos Como en muchas otras aplicaciones de los grficos por computadora, el arte comercial frecuentemente emplea tcnicas fotorrealistas para presentar imgenes de un diseo, producto o escena. La Figura 1.62 muestra el ejemplo del diseo de un logotipo tridimensional, la Figura 1.63 presenta tres imgenes generadas por computadora para el anuncio de un producto. Las animaciones generadas en una computadora se utilizan frecuentemente en la produccin de los anuncios de televisin. Estos anuncios son generados, cuadro a cuadro, y cada cuadro se visualiza y almacena como un archivo de imagen. En cada sucesivo cuadro, las posiciones de cada objeto son ligeramente desplazadas para simular los movimientos que tienen lugar en la animacin. Cuando todos los cuadros que participan en la secuencia de animacin se han renderizado, se transfieren a una pelcula o se almacenan en un bffer de video para su reproduccin. Las pelculas de animacin requieren 24 cuadros por cada segundo de la secuencia. Si la animacin se va reproducir en un monitor de vdeo, por lo menos se necesitan 30 cuadros por segundo. )

1.6 Arte por computadora

27

FIGURA 1.60. Usando funciones matemticas, procedimientos fractales, supercomputadoras, este compositor-artista experimenta con varios diseos para sintetizar formas y colores con composicin musical. {Cortesa de Brian Evans, Vanderhilt University.)

FIGURA 1.61. Fstacin de trabajo para composicin de pginas. (Cortesa de Visual Technology.)

FIGURA 1.62. Presentacin tridimensional de un logotipo. (Cortesa de Vertigo Technology, Inc.) (Un mtodo grfico muy empleado en muchos anuncios de televisin es el morfismo (morftng), donde un objeto se transforma (metamorfiza) en otro. F.ste mtodo se utiliza en anuncios publicitarios para transformar aceite en un motor de automvil, un automvil en un tigre, un charco de agua en un neumtico y la cara de una persona en la de otra. Un ejemplo de morfismo lo tenemos en la siguiente seccin. Figura 1.69.

1.7 ENTRETENIMIENTOLas producciones de televisin, las pelculas de cine y los vdeos musicales usan de manera rutinaria los grficos por computadora. Algunas veces estas imgenes se combinan con actores reales y escenas filmadas, a veces, (otla la pelcula est generada mediante renden/acin por computadora y tcnicas de animacin. Muchas series de televisin utilizan mtodos para producir efectos especiales basados en los grficos por computadora, como en la figura 1.64, de la serie Deep Spuce N'i/w. Algunos programas de televisin utilizan tcnicas de animacin para combinar figuras de personas, animales, o personajes de dibujos animados, generados por computadora con actores reales, tambin se transforma la cara de un actor en otra forma. Muchos programas tambin utilizan los grficos por computadora para generar edificios, rasgos del terreno u otros fondos de escenas. La figura 1.65 muestra una vista muy realista generada por computadora del Dadu (hoy Pekn) en el siglo trece para una emisin japonesa de televisin. Los efectos especiales, las animaciones, personajes y escenas generadas por computadora estn ampliamente extendidas en las pelculas de hoy en da. La Figura 1.66 ilustra la escena preliminar generada por computadora tic la pelcula Star Trek la furia del Klan. Los mtodos de renderizado se aplican a los modelos

FIGURA 1.64. Fscena grafka de la serie de TV Deep Space Nine. (Cortesiu of Rhythm & Hues Studios.)

1.7 Entretenimiento

29

FIGURA 1.65. Imagen de una reconstruccin generada por computadora del Dadu (hoy Pekn) en el siglo trece para una emisin japonesa de televisin, de Taise ( orporation (Tokio, Japn) y renderi/ado con el softwaic Tl)l. (Cortesa de Thomson Digital muge. Inc.)

FIGURA 1.66. Grficos generados para la pelcula de Paramount Piclures Star Trek la furia del Khan. (Cortesa de Evans- and Sutherland.)

(a)

(b)

FIGURA 1.67. Escenas de pelcula generadas por computadora: (a) El sueo de Red, (Cortesia de Pixar) Copyright < Pixar I9X7. (b) Knickknack. (Cortesa de Pixar. Copyright & Pixar I98*>.) almbricos del planeta y de la nave espacial, para producir el aspecto final con el que aparecen los objetos en la pelcula. Para producir las escenas de las dos pelculas, ganadoras de premios, que se muestran en la Figura I.67 se utilizaron tcnicas avanzadas de modelado y renderizacin de superficies. Otras pelculas emplean modelado, renderizado y animacin para producir por completo personajes con aspecto humano. Para dar a los actores generados por computadora, tonos de piel humanos, rasgos realistas en las caras, e imperfecciones en la piel como, lunares, pecas o acn se emplean tcnicas fotorrealistas. La Figura 1.68 muestra una escena de la pelcula Final Fantasy: The Spirits Withhr en la que se emplean estas tcnicas fotorrealistas para simular de manera cercana la apariencia de un actor humano.

3 0 CAPTULO 1

Introduccin a los grficos por computadora

FIGURA 1.68. Una escena de la pelcula 2001 FFFP Reservados todos los derechos.)

(d)

(e)

FIGURA 1.69. Ejemplos de morfismo en el vdeo de David Byrne She is mad. Cortesa de David Byrne, Index Video, y Pacific Dala Images. Tambin se emplean mtodos de grficos por computadora para simular actores humanos. Utilizando archivos de los rasgos faciales de un actor y un programa de animacin se pueden generar secuencias de pelcula que contengan rplicas generadas por computadora de esa persona. En el hipottico caso de que el actor enferme o se accidente durante el rodaje, estos mtodos de simulacin se pueden utilizar para sustituirlo en las subsiguientes escenas. Los vdeos musicales utilizan los grficos por computadora de diversas formas. Se pueden combinar objetos grficos con accin real, o emplearse grficos y tcnicas de procesamiento de imgenes para transformar

1.8 Procesamienio de imgenes

31

una persona en un objeto o viceversa (morflsmoJyUn ejemplo de modismo lo tenemos en la secuencia de escenas de la Figura l .69 producidas para el vdeo de David Byrne. She is mad.

1.8 PROCESAMIENTO DE IMGENESLa modillcacin o interpretacin de imgenes existe^e^cQiuataLjtfalia^.o..cniaras de TV es conocida como procesamiento de imgenes.. Aunque los mtodos empleados en los grficos por computadora y el procesado de imgenes se solapan, las dos reas estn dedicadas a operaciones fundamentales diferentes. En los grficos por computadora, la computadora se utiliza para crear una imagen. Por otra parte las tcnicas de procesamiento de imgenes se utilizan para mejorar la calidad de un dibujo, analizar las imgenes o reconocer patrones visuales para aplicaciones robotizadas. Sin embargo, los mtodos de procesamiento de imgenes se utilizan frecuentemente en los grficos por computadora, y los mtodos de los grficos por computadora se aplican tambin en el procesamiento de imgenes. Por lo general, antes de procesar una imagen o una fotografa, primero se almacena en un archivo de imagen. Entonces es cuando se pueden aplicar los mtodos digitales de reorganizacin de las partes de la imagen, para resallar separaciones de color, o mejorar la calidad del sombreado. :En la Figura l .70 se da un ejemplo de los mtodos de procesamiento de imagen para el realce de la calidad de una imagen. Estas tcnicas se usan de manera amplia en las aplicaciones de arte comercial que se implican en el retoque y reestructuracin de secciones de fotografas y otras obras artsticas. Tcnicas similares se utilizan para analizar las fotografas de la tierra tomadas por un satlite y las grabaciones de distribuciones de estrellas en las galaxias hechas por un telescopio. L a s aplicaciones mdicas tambin hacen uso de las tcnicas de procesamiento de imgenes para el realce de tomografas y simulaciones en operaciones quirrgicas. La lomografla es un tipo de fotografa de rayos X que permite mostrar vistas de secciones transversales de sistemas fisiolgicos. Tomograjla Computerizada por Rayos X(JC), Tomografta Emisiva de Posicin (TEP) y Tomografia Axial Computerizada (TAC) utilizan mtodos computacionales para reconstruir secciones cruzadas a partir de datos digitales. Estas tcnicas se utilizan para monitorizar funciones internas y mostrar secciones durante las intervenciones quirrgicas. Otras tcnicas de imgenes mdicas incluyen ultrasonidos y escneres mdicos nucleares. Con los ultrasonidos, se usan ondas de sonido de alta frecuencia en lugar de rayos X para generar los datos digitales.

FIGURA 1.70. Una fotografa borrosa de una placa de matrcula de automvil se transforma en legible tras la aplicacin de tcnicas de procesamiento de imgenes. (Cortesa de Los Alamos National Labora/ory.)

3 2 CAPITULO 1

Introduccin a los grficos por computadora

FIGURA 1.71. Cuadro de una animacin en la que se visualiza niveles de activacin cardiaca dentro de regiones de volmenes semitransparentes del corazn de un perro. Datos mdicos proporcionados por William Smith, Ed Simpson, and G. Allan Johnson. Duke University. Software de renderizacin de imgens proporcionado por Tom Palmer, Cray Research, Inc./NCSC. (Cortesia de Dave Bock, Supercomptithg Center/MCNC de Carolina del Norte.)

FIGURA 1.72. Imagen de un par estereoscpico mostrando los huesos de una mano humana, renderizado por [nmo Yoon, D. E. Thompson y W. N. Waggcnspack. Jr.. LSU, de un conjunto de datos obtenidos a partir de tomogralas CT por Rehabilitaron Research, GWLNIIDC. Estas imgenes muestran un posible camino para la reconstruccin quirrgica de un tendn. (Cortesia de IMRLAB, Meelumical Engineering, Universidad del Estado de Louisiana.)

Los escneres de medicina nuclear recopilan datos de la radiacin emitida por radionucleoides ingeridos y los datos son presentados como imgenes con cdigo de colores. El procesamiento de imgenes y los grficos por computadora son frecuentemente utilizados en aplicaciones mdicas para modelar y estudiar funciones fsicas, para disear extremidades artificiales y para planificar y practicar tcnicas quirrgicas. Esta ltima aplicacin es conocida como CAS (Computer Aid Surgery. ciruga asistida por computadora). Utilizando las tcnicas de procesamiento de imgenes se pueden obtener secciones transversales en dos dimensiones del cuerpo. Estas secciones del cuerpo se manipulan utilizando modelos grficos para simular procedimientos quirrgicos reales e intentar diferentes cortes?En las Figuras 1.71 y 1.72 se muestran ejemplos de estas aplicaciones mdicas.

1.9 INTERFAZ GRFICA DE USUARIOHoy da es muy comn que las aplicaciones software se proporcionen con interfaces grficas de usuario (GUI) (Grafic User Interface). Un componente principal en una interfaz grfica es un gestor de ventanas que permita al usuario visualizar mltiples reas rectangulares de la pantalla, llamadas ventanas de visualizacin. Cada rea de visualization en la pantalla contiene un proceso diferente, mostrando informacin grfica o de otro tipo pudiendo ser los mtodos para activar una de estas ventanas variados. Si usamos un dispositivo apuntador interactivo, como un ratn, podemos en algunos sistemas, activar una ventana posicionando el cursor de la pantalla dentro del rea mostrada por sta presionando el botn izquierdo del ratn. Con otros sistemas tendremos que hacer clic con el ratn en la barra de ttulo en la parte superior de la ventana. Las interfaces tambin presentan menus e iconos para la seleccin de una ventana, una opcin de proceso o el valor de un parmetro. Un icono es un smbolo grfico frecuentemente diseado para sugerir la opcin

Referencias 3 3

FIGURA 1.73. Inicrlaz grfica de usuario, mostrando mltiples ventanas, ments c iconos. {Cortesa de muge-ln (Orporation.) que representaba ventaja de los iconos es que necesitan menos espacio cu la pantalla que la correspondiente descripcin textual ypuede ser entendido de una manera ms rpida si se ha diseado adecuadamente. Una ventana de visuali/aein se puede convertir en o a partir de la representacin de un icono, los mens pueden contener listas tanto de descripciones textuales como de iconos. La Figura 1.73 ilustra la tpica inlerfaz grlca de usuario, con mltiples ventanas, mens e iconos. En este ejemplo los mens permiten la seleccin de opciones de procesamiento, valores de color y parmetros grficos. Los iconos representan opciones para pintar, dibujar, acercar, escribir cadenas de texto y otras operaciones relacionadas con la construccin de una pintura.

1.10 RESUMENHemos hecho una prospeccin sobre muchas de las reas en las que se aplican los grficos por computadora, incluyendo la visuali/acin de datos, C'AD, realidad virtual, visualizacin cientfica, educacin, arte, entretenimiento, procesamiento de imgenes e interfaces grficas de usuario. Sin embargo, hay muchos otros campos que no hemos mencionado y con los que podramos llenar este libro con ejemplos de aplicaciones. En los captulos siguientes exploraremos los equipos y los mtodos utilizados en las aplicaciones de este captulo, asi como otras muchas aplicaciones.

REFERENCIASAplicaciones de mtodos grficos en varias reas, incluyendo arte, ciencia, matemticas y tecnologa son tratados en Bouquet (1978), Yessios (1979), (iarner y Nelson (1983). Grotch (1983) ), Tufte (1983 y 1990). Wolfram (1984), Huitrie y Nahas (1985), Cilassner (1989), y llearn and Baker (1991). Los mtodos grficos para la \ isualizacin de la msica se dan en Mitroo. Hermn, y Badler (1979). Disertaciones sobre diseo y fabricacin asistidas por computadora (t'AD/C'AM) en varias industrias se presentan en Pao (1984). Las tcnicas grficas para simuladores de vuelo se presentan en Schaehter (1983). Fu y Rosenfeld (1984) expone sobre la simulacin de visin, y Weinberg (1971$) da cuenta de simulacin del transbordador espacial. Los iconos grficos y los conceptos simblicos se presentan en Lodding (1983) y en Loomis, et ul. (1983). Para obtener informacin adicional sobre aplicaciones mdicas vase Hawrylyshyn, Tasker y Organ (1977); Presin, Fagan, Huang y Pryor (1984); y Rhodes. et al. (1983).

CAPTULO

2

Introduccin a los sistemas grficos

stema de representacin de grficos por computadora dotado de una pantalla panormica y curvada, y su panel de control. (Cortesa de Silicon Graphics, Ine y Tridimemion Systems. 2003 567. Todos los derechos reservados.)

2.1 2.2 2.3 2.4 2.5

Dispositivos de visualizacin de video Sistemas de barrido de lneas Estaciones de trabajo grficas y sistemas de \ isualizacin Dispositivos de entrada Dispositivos de copia impresa

2.6 2.7 2.8 2.9 2.10

Redes grficas Grficos en Internet Software grfico Introduccin a OpenCiL Resumen

La potencia y la utilidad de los grficos por computador estn ampliamente reconocidas, como lo demuestra la amplia gama de hardware grfico y sistemas software disponibles en la actualidad para aplicaciones en casi lodos los campos. Las capacidades grficas tanto para aplicaciones bidimensionales como tridimensionales son comunes en computadores de propsito general como calculadoras de mano. Con los computadores personales, podemos utilizar una gran variedad de dispositivos de entrada interactivos y paquetes de software grficos. Para aplicaciones que requieren una calidad superior, podemos escoger entre varios sistemas y tecnologas sofisticadas con hardware grfico para propsitos especiales. En este captulo, analizamos las caractersticas bsicas de los componentes hardware y de los paquetes de software para grficos.

2.1 DISPOSITIVOS DE VISUALIZACIN DE VDEOPor lo general, el dispositivo principal de salida en un sistema grfico es un monitor de video (Figura 2.I). El funcionamiento de la mayor parle de los monitores de video se basa en el diseo estndar de tubo de rayos catdicos o TRC sistemas grficas

Ctodo

nodo do enfoque \

Trayectoria del haz de electrones

LTi tomento de calentamiento Rejilla de Control

J

nodo de aceleracin

FIGURA 2.3. Funcionamiento de un can de electrones con nodo de aceleracin. posicin ulutlUdu por el b&Z dC ClcGtronCS. Puesto que la l u / emitida por el fsforo se desvanece muy rpidamente, se requiere algn mtodo para mantener la imagen en la pantalla. Una forma de hacer esto consiste en almacenar la informacin de la imagen en forma de distribucin de carga dentro del T R C . Esta distribucin de carga se puede utilizar para mantener el fsforo activado. Sin embargo, el mtodo ms utilizado en la actualidad para mantener el resplandor del fsforo es volver a dibujar la imagen redirigiendo rpidamente el haz de electrones de nuevo sobre los mismos puntos de la pantalla, liste tipo de pantalla se llama TRC de refresco. La frecuencia a la cual una imagen es redibujada en la pantalla se llama velocidad de refresco. Los componentes principales de un can de electrones en un TRC* son el ctodo de metal calentado v una rejilla de control (figura 2.3). II calor se suministra al ctodo dirigiendo una corriente a travs de una bobina de cable, llamada el filamento, dentro de la estructura cilindrica del ctodo. Esto causa el desprendimiento de los electrones de la superficie del ctodo caliente. En el vaco, dentro de la cubierta del T R C los electrones libres y cargados negativamente son acelerados hacia el recubrimiento de fsforo mediante una tensin altamente positiva. La tensin de aceleracin se puede generar con un revestimiento de metal cargado positivamente dentro de la cubierta del T R C cerca de la pantalla de fsforo, o se puede utilizar un nodo de aceleracin, como el de la Figura 2.3. para suministrar la tensin positiva. A veces el can de electrones se disea para que el nodo de aceleracin \ el sistema de enfoque se encuentren dentro en la m i s m a unidad. La intensidad del haz de electrones se controla mediante la tensin de la rejilla de control, la cual es un cilindro de metal encajado sobre el ctodo. Una tensin muy negativa aplicada a la rejilla de control interrumpir el haz, al repeler e impedir que los electrones pasen a travs de un pequeo agujero dispuesto al final de la estructura de la rejilla de control. Una tensin negativa menor en la rejilla de control simplemente reduce el nmero de electrones que pasan a travs de ella. Ya que la cantidad de luz emitida por el revestimiento de

2.1 Dispositivos de visualizacin de video 3 7

fsforo depende del nmero de electrones que chocan con la pantalla, el brillo de tari punto de la pantalla se ajusta variando la tensin en la rejilla de control. Este brillo, o nivel de intensidad, se especifica para las posiciones individuales de la pantalla mediante instrucciones del software grfico, como se estudia en el Capitulo 3. El sistema de enfoque en un TRC obliga al haz de electrones a converger a una pequea superficie cuando incide sobre el fsforo. De otro modo, los electrones se repeleran entre si y el haz se expandira a medida que se aproximase a la pantalla. El enfoque se consigue ya sea con campos elctricos o campos magnticos. Mediante enfoque electrosttico, el haz de electrones se pasa a travs de un cilindro metlico cargado positivamente para que los electrones se encuentre