Graficos Por Computadora Con Opengl

916
Gráficos por computadora con OpenGL

Transcript of Graficos Por Computadora Con Opengl

  • Grficos por computadora con OpenGL

  • Grficos por computadora con OpenGL

  • Grficos por computadora con OpenGL

    Tercera 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

    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

    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

  • A nuestra gente Dwight, Rose, Jay y Millie

  • Contenido Prefacio xix

    - Introduccin a los grficos por computadora 2

    1.1 Grficos y diagramas 3 1.2 Diseo asistido por computadora 5 1.3 Entornos de realidad virtual 10 1.4 Visualizacin de datos 12 1.5 Educacin y formacin 19 1.6 Arte por computadora 23 1.7 Entretenimiento 28 1.8 Procesamiento de imgenes 31 1.9 Interfaz grfica de usuario 32 1.10 Resumen 33

    Referencias 33

    2 Introduccin a los sistemas grficos 34

    2.1 Dispositivos de visualizacin de vdeo 35 Tubos de refresco de rayos catdicos 35 Pantallas por barrido de lineas 38 Pantallas de barrido aleatorio 41 Monitores TRC de color 42 Pantallas planas 44 Dispositivos de visualizacin

    tridimensional 47 Sistemas estereoscpicos y de realidad

    virtual 47 2.2 Sistema de barrido de lneas 50

    Controlador de vdeo 51 Procesador de pantalla de lneas de

    barrido 53 2.3 Estaciones de trabajo grficas y

    sistemas de visualizacin 54 2.4 Dispaositivos de entrada 58

    Teclados, cajas de botones y botones de seleccin 58

    Ratones 59 Trackballs y spaceballs 60 Joysticks 61 Guantes de datos 61 Digitalizadores 62 Escneres de imagen 64 Paneles tctiles 64 Lapiceros pticos 66 Sistemas de voz 67

    2.5 Dispositivos de copia impresa 67 2.6 Redes grficas 69 2.7 Grficos en Internet 69 2.8 Software grfico 70

    Representaciones con coordenadas 70 Funciones grficas 72 Estndares de software 73 Otros paquetes grficos 74

    2.9 Introduccin a OpenGL 74 Sintaxis bsica de OpenGL 74 Bibliotecas relacionadas 75 Archivos de cabecera 76 Gestin de la ventana de visualizacin

    empleando GLUT 76 Un programa OpenGL completo 78

    2.10 Resumen 81 Referencias 82 Ejercicios 82

    Primitivas grficas 84

    3.1 Sistemas de coordenadas de referencia 86 Coordenadas de pantalla 86 Especificaciones absolutas y relativas

    de coordenadas 87 3.2 Especificacin de un sistema

    bidimensional de referenda universal ea.Qpe.nGL 88

  • viii Contenido

    3.3 Funciones de gunto en QpenQj, 3.4 Funciones OpenGL para lneas 53 Algoritmos de dibujo de lneas

    Ecuaciones de las lneas Algoritmo DDA Algoritmo de Bresenham para dibujo de lneas

    Visualizacin de polilneas 3.6 Algoritmos paralelos de dibujo de

    lneas

    3 . 7 _ Almacenamiento de los valores en el

    3.8 bu fer de imagen Funciones OpenGL para curvas

    88 91

    94

    96 100

    100

    102 103

    104 104

    106 1LL

    3.9 \|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 111 Algoritmo del punto medio para la

    elipse 113 3.11 Otras curvas 120

    Secciones cnicas 121 Polinomios y curvas de tipo sptine 123

    3.12 Algoritmos paralelos para curvas 124 3^13 Direccionamiento de pixeles y

    geometra de los objetos 124 Coordenadas de cuadrcula de

    pantalla 124 Mantenimiento de las propiedades

    geomtricas de los objetos visualizados

    3.14 Primitivas de reas rellenas 3.15 reas de relleno poligonales 128

    Clasificaciones de los polgonos 129 Identificacin de polgonos cncavos 129 Divisin de los polgonos cncavos 130 Divisin de un polgono convexo

    en un conjunto de tringulos 131. Pruebas dentro-fuera 132 Tablas de polgonos 135 Ecuaciones de un plano 136 Caras poligonales anteriores y

    posteriores 138

    3.16

    3.17 3.18 3.19

    3.20 3.21 3.22 3.23

    Funciones OpenGL de relleno de reas poligonales 139 Matrices de vrtices OpenGL 145 Primitivas de matrices de pixeles 148 Funciones OpenGL para matrices de pixeles 148 Funcin de mapa de bits de OpenGL 148 Funcin OpenGL para mapas de pixeles 150 Operaciones OpenGL de manipula-cin de bferes 151 Primitivas de caracteres 153 Funciones OpenGL de caracteres 155 Particionamiento de imgenes 156 Listas de visualizacin de OpenGL 156 Creacin y denominacin de una lista de visualizacin OpenGL 156 Ejecucin de listas de visualizacin OpenGL 157 Borrado de listas de visualizacin OpenGL 158 Funcin OpenGL de redimensiona-miento de la ventana de visualizacin 158 Resumen 161 Programas de ejemplo 165 Referencias 173 Ejercicios 174

    Atributos de los primitivos grficas 178

    4.1 Variable de estado de OpenGL 180 4.2 Color es escala de grises 180

    Las componentes de color RGB 180 Tablas de color 181 Escala de grises 182 Otros parmetros de color 182

    4.3 Funciones de color de OpenGL 183 Los modos de color RGB y RGBA de

    OpenGL 183 Modo de color indexado de OpenGL 184 Fundido de color en OpenGL 185 Matrices de color en OpenGL 186 Otras funciones de color en OpenGL 187

    4.4 Atributos de los puntos 188 4.5 Atributos de las lneas 188

    3.24

    3.25

  • 4.7

    4.8

    4.9

    4.10

    4.1!

    4.12

    4.13

    4.14

    4.15 4.16

    4.17

    Rl grosor de las lneas 188 Estilo de las lneas 190 Opciones de plumilla y brocha 191 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 196 La funcin de estilo de lnea de OpenGL 196 Otros efectos de lnea de OpenGL 198 Atributos de relleno de reas 199 Estilos de relleno 199 Relleno de regiones con fundido de color 200 Algoritmo general de relleno de polgonos mediante lneas de barrido 202 Relleno de polgonos convexos mediante lneas de barrido 206 Relleno de regiones con lmites curvos mediante lneas de barrido 207 Mtodos de relleno de reas con lmites irregulares 207 Algoritmo de relleno por contorno 207 Algoritmo de relleno por inundacin 211 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 223 Muestreo por rea de segmentos de lnea recta 224

    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 Funciones OpenGL de suavizado 4.19 Funciones de consulta de OpenGL 4.20 Grupos de atributos de OpenGL 4.21 Resumen

    Referencias Ejercicios

    K Transformaciones H geomtricas 5.1 Transformaciones geomtricas

    bidimensionales bsicas Traslaciones bidimensionales Rotaciones bidimensionales Cambio de escala bidimensional

    5.2 Representacin matricial y coordenadas homogneas Coordenadas homogneas Matriz de traslacin bidimensional Matriz de rotacin bidimensional Matriz de cambio de escala bidimensional

    5.3 Transformaciones inversas 5.4 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

  • x Contenido

    5.5

    5.6

    5.7

    5.8

    5.9

    5.10 5.11

    5.12 5.13

    5.14

    5.15

    5.16 5.17

    5.18

    Transformacin bidimensional de slido-rgido Construccin de matrices de rotacin bidimensionales Ejemplo de programacin de matrices bidimensionales compuestas Otras transformaciones bidimensionales Reflexin Inclinar Mtodos de rasterizacin para transformaciones geomtricas Transformaciones de rasterizacin en OpenGL 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

    253

    254

    255

    260

    Visualizacin bidimensional 304

    265

    266

    267

    272 274

    284

    290

    291 292

    292 293 293 295

    296

    301 301

    6.1

    6.2

    Pipcline de visualizacin bidimensional 305 La ventana de recorte 307 Ventana de recorte en coordenadas de visualizacin 308 Ventana de recorte en coordenadas universales 308 Normalizacin y transformaciones de visor 309 Mapeo de la ventana de recorte en un visor normalizado 310 Mapeo de la ventana de recorte a un cuadrado normalizado 311 Visualizacin de cadenas de caracteres 313 Efectos de divisin de pantalla y mltiples dispositivos de salida 313 Funciones de visualizacin bidimen-sional de OpenGL 314 Modo de proyeccin de OpenGL 314 Funcin de ventana de recorte de GLU 314 Funcin de visor de OpenGL 315 Creacin de una ventana de visualizacin con GLUT 315 Establecimiento del modo y del color de la ventana de visualizacin con GLUT 316 klentifkador de la ventana de visualizacin con GLUT 316 Borrado de una ventana de visualizacin con GLUT 316 Ventana de visualizacin actual con GLUT 317 Reposicionamiento y cambio de tamao de una ventana de visualizacin con GLUT 317 Gestin de mltiples ventanas de visualizacin con GLUT 317 Subventanas de GLUT 318 Seleccin de la forma del cursor de pantalla en una ventana de visualizacin 318 Visualizacin de objetos grficos en una ventana de visualizacin de GLUT 319

  • Contenido xi

    Ejecucin del programa de aplicacin 319 Otras funciones de GLUT 319 Ejemplo de programa de visualizacin

    bidimensional en OpenGL 320 6.5 Algoritmos de recorte 322 6.6 Recorte de puntos bidimensionales 323 6.7 Recorte de lneas bidimensionales 323

    Recorte de lneas de Cohen-Sutherland 324

    Recorte de lneas de Liang-Barsky 330 Recorte de lneas de Nicholl-Lee-

    Nicholl 333 Recorte de lneas con ventanas de

    recorte poligonales no rectangulares 335 Recorte de lneas utilizando ventanas

    de recorte con lmites no lineales 335 6.8 Recorte de reas de relleno

    poligonales 336 Recorte de polgonos de Sutherland-

    Hodgman 338 Recorte de polgonos de Weiler-

    Atherton 343 Recorte de polgonos utilizando

    ventanas de recorte poligonales no rectangulares 345

    Recorte de polgonos utilizando ventanas de recorte con lmites no lineales 345

    6.9 Recorte de curvas 346 6.10 Recorte de textos 347 6.11 Resumen 349

    Referencias 352 Ejercicios 352

    Visualizacin tridimensional 354

    7.1 Panormica de los conceptos de visualizacin tridimensional 355

    Visualizacin de una escena tridimensional 355

    Proyecciones 356 Pistas de profundidad 356 Identificacin de lneas y superficies

    visibles 358 Representacin de superficies 358 Despieces y secciones transversales 359

    7.4

    7.5 7.6

    360

    360

    362

    362 363

    363

    364

    366 368 368

    369

    Visualizacin tridimensional y estereoscpica

    7.2 Pipeline de visualizacin tridimensional

    7.3 Parmetros de coordenadas de visualizacin tridimensional

    Vector normal del plano de visualizacin

    El vector vertical Sistema de referencia de coordenadas

    de visualizacin uvn Generacin de efectos de visualizacin

    tridimensionales Transformacin de coordenadas universales a coordenadas de visualizacin Transformaciones de proyeccin Proyecciones ortogonales

    Proyecciones ortogonales axonomtricas e somtricas

    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 Proyecciones paralelas oblicuas

    Proyecciones paralelas oblicuas en diseo

    Perspectivas caballera y cabinet Vector de proyeccin paralela oblicua 376 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

    7.8 Proyecciones en perspectiva Transformacin de coordenadas para

    la proyeccin en perspectiva Ecuaciones de la proyeccin en

    perspectiva: casos especiales Puntos de fuga para las proyecciones

    en perspectiva Volumen de visualizacin para

    proyeccin en perspectiva

    372 374

    374 376

    377

    378

    379 379

    380

    381

    383

    383

  • xi Contenido

    Matriz de transformacin para la proyeccin en perspectiva 385

    Frustrum de proyeccin en perspectiva simtrico 386

    Frustrum de proyeccin en perspectiva oblicua 390

    Coordenadas de transformacin normalizadas para proyeccin en perspectiva 392

    7.9 Transformacin del visor y coorde-nadas de pantalla tridimensionales 395

    7.10 Funciones de visualizacin tridimensional OpenGL 396

    Funcin de transformacin de visualizacin OpenGL 396

    Funcin de proyeccin ortogonal OpenGL 397

    Funcin OpenGL de proyeccin en perspectiva simtrica 398

    Funcin general de proyeccin de perspectiva OpenGL 398

    Visores OpenGL y ventanas de visualizacin 399

    Ejemplo de programa OpenGL para visualizacin tridimensional 399

    7.11 Algoritmos de recorte tridimensional 401 Recorte en coordenadas homogneas

    tridimensionales 402 Cdigos de regin tridimensional 402 Recorte tridimensional de puntos y

    lneas 403 Recorte de polgonos tridimensionales 406 Recorte de curvas tridimensionales Planos de recorte arbitrarios

    7.12 Planos de recorte ocpionales en OpenGL

    7.13 Resumen Referencias Ejercicios

    Representaciones de objetos tridimensionales

    407 407

    409 410 412 412

    414

    8.1 Poliedros 416 8.2 Funciones para poliedros en OpenGL 416

    Funciones de reas de relleno de polgonos en OpenGL 416

    8.3 8.4

    8.5

    8.6

    Funciones para poliedros regulares de GLUT Ejemplo de programa de poliedros con GLUT Superficies curvadas Superficies cudricas Esfera Elipsoide Toro Supercudricas Superelipse Superelipsoide

    416

    Funciones OpenGL para superficies cudricas y superficies cbicas

    Funciones para superficies cudricas de GLUT

    Funcin de GLUT para la generacin de una tetera con una superficie cbica

    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 Obejtos din forma (biobby) 8.8 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 Ecuaciones de las curvas de Bzier Ejemplo de un programa de

    generacin de curvas de Bzier Propiedades de las curvas de Bzier

    420 420 421 421

    423

    424

    424

    425

    425

    428 429 431

    434

    434 435 436 437

    437 438 438 441 444 445 445

    446 450

  • Contenido xiii

    Tcnicas de diseo utilizando curvas de Bzier 450

    Curvas de Bzier cbicas 451 8.11 Superficies de Bzier 454 8.12 Curvas con splines B 454

    Ecuaciones de una curva con splines B 454 Curvas con splines B peridicos y

    uniformes 457 Curvas con splines B cbicos y

    peridicos 460 Curvas con splines B abiertos y

    uniformes 461 Curvas con splines B no uniformes 464

    8.13 Superficies con splines B 464 8.14 Splines Beta 465

    Condiciones de continuidad de los splines Beta 465

    Representacin matricial de splines beta cbicos y peridicos 466 Splines racionales 467 Conversin entre representaciones de splines 469 Visualizacin de curvas y superficies con splines 470 Regla de Horner 470 Clculos de diferencias hacia adelante 471 Mtodos de subdivisin 472 Funciones OpenGL de aproximacin con splines 474

    Funciones OpenGL para curvas con splines de Bzier 474

    Funciones OpenGL para superficies con splines de Bzier 477

    Funciones GLU para curvas con splines B 480

    Funciones GLU para la creacin de superficies con splines B 482

    Funciones GLU para el recorte de superficies 484

    8.19 Replete-litaciones de barrido 485 8.20 Mtodos de geometra constructiva

    de slidos 486 8.21 rboles octales 489 8.22 rboles BSP 492 8.23 Mtodos de geometra fractal 492

    8.15 8.16

    8.17

    8.18

    Procedimientos para generacin de fractales

    Clasificacin de fractales Dimensin fractal Construccin geomtrica de fractales

    deterministas autosimilares Construccin geomtrica de fractales

    estadsticamente autosimilares Mtodos de construccin de fractales

    afines Mtodos de desplazamiento aleatorio

    del punto medio Control de la topografa del terreno Fractales autocuadrticos Fractales autoinversos

    8.24 Gramticas de formas y otros mtodos procedimentales

    8.25 Sistemas de partculas 8.26 Modelado basado en las caracters-

    ticas fsicas 8.27 Visualizacin de conjuntos de datos

    Representaciones visuales de campos escalares

    Representaciones visuales de campos vectoriales

    Representaciones visuales de campos de tensores

    Representaciones visuales de campos de datos multivariantes

    8.28 Resumen Referencias

    493

    9.1

    9.2 9.3 9.4 9.5 9.6

    9.7 9.8

    Mtodos de deteccin de superficies visibles

    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 Mtodo del rbol BSP Mtodo de la subdivisin de reas

    497

    499

    501

    504 506 507 519

    521 524

    526 529

    529

    533

    535

    536 537 540 542

    546

    547 548 549 553 554

    558 559

  • xiv Contenido

    9.9 Mtodos de rboles octales 562 9.10 Mtodo de proyeccin de rayos 563 9.11 Comparacin de los mtodos de

    deteccin de visibilidad 564 9.12 Superficies curvas 565

    Representacin de superficies curvas 565 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 representacio-nes almbricas 567

    9.14 Funciones OpenGL de deteccin de visibilidad 568

    Funciones OpenGL de eliminacin de polgonos 569

    Funciones bpenGL de gestin del bfer de profundidad 569

    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 superficial 576

    10.1 Fuentes luminosas 578 Fuentes luminosas puntuales 578 Fuentes luminosas infinitamente

    distantes 579 Atenuacin radial de la intensidad 579 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 Efectos de iluminacin superficial 583 10.3 Modelos bsicos de iluminacin 584

    Luz ambiente 584 Reflexin difusa 584

    Reflexin especular y modelo de Phong 588

    Reflexiones difusa y especular combinadas 592

    Reflexiones especular y difusa para mltiples fuentes luminosas 592

    Emisin de luz superficial 592 Modelo bsico de iluminacin con fo-

    cos y con atenuacin de la intensidad 594 Consideraciones relativas al color

    RGB 594 Otras representaciones del color 596 Luminancia 596

    10.4 Superficies transparentes 597 Materiales translcidos 597 Refraccin de la luz 598 Modelo bsico de transparencia 600

    10.5 Efectos atmosfricos 601 10.6 Sombras 601 10.7 Parmetros de la cmara 602 10.8 Visualizacin de la intensidad de

    la luz 602 Distribucin de los niveles de

    intensidad del sistema 603 Correccin gamma y tablas de

    sustitucin de vdeo 604 Visualizacin de imgenes de plano

    continuo 605 10.9 Patrones de semitono y tcnicas de

    aleatorizacin 606 Aproximaciones de semitonos 607 Tcnicas de aleatorizacin 610

    10.10 Mtodos de representacin de polgonos 613

    Representacin superficial con intensidad constante 614

    Representacin de superficies por el mtodo de Gouraud 614

    Representacin superficial de Phong 617 Representacin superficial rpida de

    Phong 617 10.11 Mtodos de trazado de rayos 618

    Algoritmo bsico de trazado de rayos 620 Clculos de interseccin entre rayos y

    superficie 622 Intersecciones entre rayos y esferas 623

  • Intersecciones entre rayos y poliedros 625 Reduccin de los clculos

    de interseccin con los objetos 626 Mtodos de subdivisin espacial 626 Simulacin de los efectos de enfoque

    de la cmara 630 Trazado de rayos con antialiasing 632 Trazado de rayos distribuido 634

    10.12 Modelo de iluminacin de radiosidad 638 Trminos de la energa radiante 638 Modelo bsico de radiosidad 639 Mtodo de radiosidad mediante

    refinamiento progresivo 643 10.13 Mapeado de entorno 646 10.14 Mapeado de fotones 646 10.15 Adicin de detalles a las superficies 647 10.16 Modelado de los detalles superficiales

    mediante polgonos 650 10.17 Mapeado de texturas 650

    Patrones de textura lineales 650 Patrones de textura superficial 651 Patrones de textura volumtricos 654 Patrones de reduccin de texturas 655 Mtodos de texturado procedimental 655

    10.18 Mapeado de relieve 656 10.19 Mapeado del sistema de referencia 658 10.20 Funciones OpenGL de iluminacin

    y representacin de superficies 659 Funcin OpenGL para fuentes

    luminosas puntuales 659 Especificacin de la posicin y el tipo

    de una fuente luminosa en OpenGL 659 Especificacin de los colores de las

    fuentes luminosas en OpenGL 660 Especificacin de coeficientes de

    atenuacin radial de la intensidad para una fuente luminosa OpenGL 661

    Fuentes luminosas direccionales en OpenGL (focos) 661

    Parmetros de iluminacin globales en OpenGL 662

    Funcin OpenGL de propiedad de una superficie 664

    Modelo de iluminacin OpenGL 665 Efectos atmosfricos en OpenGL 665 Funciones de transparencia OpenGL 666

    Contenido xv

    Funciones de representacin superficial OpenGL 667

    Operaciones de semitonos en OpenGL 668

    10.21 Funciones de texluras en OpenGL 668 Funciones OpenGL para texturas

    lineales 669 Funciones OpenGL para texturas

    superficiales 672 Funciones OpenGL para texturas

    volumtricas 673 Opciones de color OpenGL para

    patrones de texturas 674 Opciones OpenGL para el mapeado

    de texturas 674 Envolvimiento de texturas en

    OpenGL 675 Copia de patrones de texturas

    OpenGL desde el bfer de imagen 675 Matrices de coordenadas de texturas

    en OpenGL 676 Denominacin de los patrones de

    textura OpenGL 676 Subpatroncs de textura en OpenGL 677 Patrones de reduccin de texturas en

    OpenGL 677 Bordes de texturas en OpenGL 678 Texturas proxy en OpenGL 679 Texturado automtico de superficies

    cudricas 679 Coordenadas de textura homogneas 679 Opciones adicionales para texturas en

    OpenGL 680 10.22 Resumen 680

    Referencias 683 Ejercicios 684

    g i l Mtodos interactivos de entrada e interfaces grficas de usuario 688

    11.1 Datos de en irada grficos 689 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 Dispositivos de eleccin 691 Dispositivos de seleccin 692

    11.3 Funciones de entrada para datos grficos 694

    Modos de entrada 694 Keiilinientacin mediante eco 695 Funciones de retrollamada 695

    11.4 Tcnicas interactivas de construccin de imgenes 695 Mtodos bsicos de posicionamiento 695 Arrastre de objetos 696 Restricciones 696 Cuadrculas 696 Mtodos de banda elstica 696 Campo de gravedad 698 Mtodos interactivos de dibujo 699

    11.5 Hntomos de realidad virtual 699 11.6 Funciones OpenGL para dispositivos

    de entrada interactiva 700 Funciones de ratn GLUT 700 Funciones de teclado GLUT 705 Funciones GLUT para tabletas

    grficas 710 Funciones GLUT para una spaceball 710 Funciones GLUT para cajas de

    bolones 711 Funciones GLUT para diales 711

    Operaciones de seleccin en OpenGL 7 11.7 Funciones de men OpenGL 717

    Creacin de un men GLUT 717 Creacin y gestin de mltiples

    mens GLUT 720 Creacin de submens GLUT 720 Modificacin de los mens GLUT 723

    11.8 Diseo de una interfaz grfica de usuario 724

    El dilogo con el usuario 724 Ventanas e iconos 724 Adaptacin a los distintos niveles de

    experiencia 725 Coherencia 726 Minimizacin de la memorizacin 726 Cancelacin de acciones y tratamiento

    de errores 726

    Realimentacin 11.9 Resumen

    Referencias Ejercicios

    Modelos y aplicaciones del color

    12.1 Propiedades de la luz 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 b Los modelos de color CMY y CMYK Los parmetros CMY Transformaciones entre los espacios de color CMY y RGB :! modelo de color HSV

    Los parmetros HSV Seleccin de sombras, tintas y tonalidades

    Transformaciones entre los espacios de color HSV y RGB

    12.8 El modelo de color HLS 12.9 Seleccin y aplicaciones del color 12.10 Resumen

    Referencias Ejercicios

    12.4 12.5

    12.6

    12.7 I I

    #

    726 727 730 730

    734

    735 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

  • 4 4

    Contenido xv

    13 Animacin por computadora 754 15 Formatos de archivos grficos 790

    13.1

    13.2 13.3

    13.5

    13.6

    *

    13.7

    13.8 13.9 13.10

    13.11

    Melados de barrido para las animaciones por computadora 756 Doble bfer 756 Generacin de animaciones mediante operaciones de barrido 757 Diserto de secuencias de animacin 757 Tcnicas tradicionales de animacin 759 Funciones generales de animacin por computadora 760 Lenguajes de animacin por compu-tadora 760 Sistemas de fonogramas clave 761 Morfismo 762 Simulacin de aceleraciones 764 Especificaciones de movimientos 767 Especificacin directa del movimiento 767 Sistemas dirigidos por objetivos Cinemtica y dinmica Animacin de figuras articuladas Movimientos peridicos Procedimientos de animacin en OpenGL Resumen Referencias Ejercicios

    14.1

    14.2 14.3

    4.4

    14.5

    Modelado jerrquico

    Conceptos bsicos de modelado Representaciones de los sistemas Jerarquas de smbolos Paquetes de modelado Mtodos generales de modelado jerrquico Coordenadas locales Transformaciones de modelado Creacin de estructuras jerrquicas Modelado jerrquico mediante listas de visualizacin OpenGL Resumen Referencias Ejercicios

    768 768 769 771

    772 775 776 777

    778

    779 779 781 782

    784 784 785 78S

    787 787 788 788

    5.1

    15.2

    15.3

    5.4

    15.5

    791 792 792 792 793 793

    Configuraciones de archivos de imagen 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 Codificacin de longitud de recorrido 794 Codificacin LZW 794

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

    Matemticas para grficos por computadora 809

    A. 1 Sistemas de coordenadas 809

  • xvii Coti tenido

    Coordenadas de pantalla cartesianas bidimensionales 809

    Sistemas de referencia cartesianos bidimensionales estndar 809

    Coordenadas polares en el plano xy 810 Sistemas de referencia cartesianos

    tridimensionales estndar 811 Coordenadas de pantalla cartesianas

    tridimensionales 812 Sistemas de coordenadas curvilneas

    tridimensionales 812 ngulo slido 814

    A.2 Puntos y vectores 814 Propiedades de los puntos 814 Propiedades de los vectores 814 Suma de vectores y multiplicacin

    escalar 816 Producto escalar de dos vectores 816 Producto vectorial de dos vectores 817

    A.3 Tensores 818 A.4 Vectores base y tensor mtrico 818

    Determinacin de los vectores base para un espacio de coordenadas 819

    Bases ortonormales 820 Tensor mtrico 820

    A.5 Matrices 821 Multiplicacin por un escalar y

    suma de matrices 822 Multiplicacin de matrices 822 Traspuesta de una matriz 823 Determinante de una matriz 823 Inversa de una matriz 824

    A.6 Nmeros complejos 824 Aritmtica compleja bsica 825 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 Cuaternios 827 A.8 Representaciones no paramtricas 828 A.9 Representaciones paramtricas 829 A. 10 Operadores diferenciales 829

    Operador gradiente 830

    Derivada direccional 831 Forma general del operador gradiente 831 Operador de Laplace 831 Operador divergencia 832 Operador rotacional 832

    A. 11 Teoremas de transformacin integrales 833

    Teorema de Stokes 833 Teorema de Creen para una

    superficie plana 833 Teorema de divergencia 835 Ecuaciones de transformacin

    de Green 835 A. 12 rea y centroide de un polgono 835

    rea de un polgono 836 Centroide de un polgono 836

    A. 13 Clculo de las propiedades de los poliedros 838

    A. 14 Mtodos numricos 839 Resolucin de sistemas de ecuaciones

    lineales 839 Determinacin de races de ecuaciones

    no lineales 841 Evaluacin de integrales 842 Resolucin de ecuaciones

    diferenciales ordinarias 844 Resolucin de ecuaciones

    diferenciales parciales 845 Mtodos de ajuste de curvas por

    mnimos cuadrados para conjuntos de datos 846

    Bibliografa 849

    ndice 867

    ndice de funciones OpenGl 893

  • Prefacio La 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 mto-dos 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 intervencio-nes mdicas y en muchsimas otras aplicaciones. Hoy en da, se utiliza una gran variedad de tcnicas y de dis-positivos 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 info-grala estn relacionadas con la mejora de la efectividad, del realismo y de la velocidad de generacin de im-genes. 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 den-tro 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 edicin El material de esta tercera edicin ha evolucionado a partir de una serie de notas utilizadas en diversos cur-sos 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 edi-cin de este libro, muchos aplicaciones y muchos cursos sobre grficos slo trataban con mtodos bidimen-sionales, 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 introducto-rios a la infografa tratan principalmente con mtodos tridimensionales o introducen los grficos tridimensio-nales 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: compo-nentes 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, imple-mentaciones paralelas de algoritmos grficos, antialiasing, supercudricas, rboles BSP, sistemas de partcu-las, 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 visualiza-cin 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 dispositi-vo 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 programacin En 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 tridimen-sionales, 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 requeridos No 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 matri-ces, listas de punteros, archivos y organizaciones de registros. En los algoritmos infogrficos se utilizan diver-sos 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 nfa-sis del libro se pone en los principios bsicos necesarios para disear, utilizar y comprender los sistemas info-grficos, junto con numerosos programas de ejemplo que ilustran los mtodos y aplicaciones relativos a cada tema.

    Estructuraciones sugeridas para el curso Para un curso de un semestre, puede elegirse un subconjunto de temas que traten acerca de los mtodos bidi-mensionales o de una combinacin de mtodos bidimensionales y tridimensionales, dependiendo de las nece-sidades 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 auto-didacta, 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 utilizan-do 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 info-grafa. 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 repre-sentacin 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 bsi-co de infografa como prerrcquisito. centrando esos curso en una o dos reas seleccionadas como por ejem-plo 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 imge-nes 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 explicacio-nes detalladas de los procedimientos utilizados para mostrar vistas de escenas bidimensionales y tridimensio-nales. 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 diver-sas 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 gr-ficas de usuario se repasan en el Captulo 11. Los diversos modelos de color que resultan tiles en la infogra-fa 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.

    Agradecimientos Son 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 proporciona-do imgenes y otros materiales, as como a los estudiantes de los diversos cursos y seminarios sobre infogra-fa 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 edito-res 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 lector La 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 ima-gen o fotografa en color.

  • Grficos por computadora con OpenGL

  • C A P T U L O 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 Grficos y diagramas 1.2 Diseo asistido por computadora 1.3 Entornos de realidad virtual 1.4 Visuali/acin de datos 1.5 Educacin y formacin

    1.6 Arte por computadora 1.7 Entretenimiento 1.8 Procesamiento de imgenes 1.9 Interfaces grficas de usuario 1.10 Resumen

    , Los grficos por computadora se han convertido en una potente herramienta para la produccin rpida y eco-nmica de imgenes- Prcticamente no existe ninguna tarea en la que la representacin grfica de la informa-cin 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 DIAGRAMAS Las primeras aplicaciones de los grficos por computadora fueron para visualizar grficos de dalos que, fre-cuentemente, 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 rela-ciones 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 disponi-bles 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 figu-ras 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 pre-sentaciones de relaciones entre datos. La Figura 1.3 muestra un diagrama de barras 3D combinado con infor-macin 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.3. Conjuntos de datos codificados usando dos FIGURA 1.2. Grficos bidimensionales de lnea, dia- colores presentados como diagramas de barras tridimensio-gramas de barras y diagramas de larta. {Cortesia de nales en la superficie de una regin geogrfica . {Reimpreso UNIRS. /.VC.) 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

    FIGURA 1.5. Representacin de contornos tridimen-sionales en un plano de tierra, con un campo de poten-cial. (Reimpreso con permiso Je !SSCO Graphics, San Diego. California.)

    MECMAHIZg QAWTT

    FIGURA 1.6. Un diagrama de tiempos para la planifi-cacin 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 COMPUTADORA Uno de los mayores usos de los grficos por computadora se encuentra en los procesos de diseo, particular-mente 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 pro-ductos.

    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 rpidamen-te 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 alm-bricos 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 r u s

    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 apli-caciones, 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 autom-ticamente 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 componen-tes 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 segmen-to 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 movi-miento.

    :

    Cuando los diseos del objeto estn completos o casi completos, se aplican condiciones reales de ilumi-nacin 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 cono-cidos 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 necesa-rios 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 vehi-culo 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 apli-can 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 proporciona-dos 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

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

    " I I II T*1F i II || II II > fi jj II I II II

    *"5*ta>Y 'i .sEgM II II 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 com-plejo 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 ilumina-cin (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 alfom-bra 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

  • 10 CAPITULO 1 Introduccin a los grficos por computadora

    FIGURA 1.18. Patrn de alfombra oriental creado con mtodos de diseo con grficos por computadora. {Cortesa de a Lexidata Corporation).

    1.3 ENTORNOS DE REALIDAD VIRTUAL

    Una aplicacin ms reciente de los grficos por computadora es la creacin de los entornos de realidad vir-tual en los que el usuario puede interactuar con los objetos en una escena tridimensional. Dispositivos hard-ware especializados proporcionan efectos de visin tridimensional y permiten al usuario tomar los objetos de la escena. Los entornos de realidad virtual animados se usan frecuentemente para formar a los operadores de equipo pesado o para analizar la efectividad de diferentes configuraciones de cabina y localizaciones de con-trol. Mientras el operador del tractor de la Figura 1.I9 manipula los controles, el equipo de la cabeza presen-la una visin estereoscpica (Figura 1.20) de la pala delantera o del cazo trasero, como si el operador estuviera en el asiento del tractor. Esto permite al diseador explorar varias posiciones para la pala o el cazo trasero que pudieran entorpecer la visin del operador, lo que puede tenerse en cuenta para el diseo global del tractor. La Figura 1.21 muestra una vista compuesta con un ngulo de visin amplio desde el asiento del tractor, visua-lizada en un monitor estndar de video en lugar de una escena tridimensional virtual. La Figura 1.22 muestra una \ ista de| tractor que puede visualizarse en una ventana separada o en otro monitor.

    FIGURA 1.19. Prcticas con un tractor en un entorno de realidad virtual. Gulido los controles se mueven el operador ve la pala delantera, el cazo trasero y los alrededores a travs del equipo de la cabeza. {Cortesa de National Center jar Supercomputing Appli-cations, Universidad de Illinois en Urbana-Champaign y Caterpillar. Inc.l

  • 1.3 Entornos de realidad virtual 11

    FIGURA 1.20. Una vista en el visiocasco del cazo trasero presentada al operador del tractor en un entorilo de realidad virtual. (Cortesa de Natio-nal Center for Supercomputing Applications, Universidad de Illinois en Urbana-Champaign y Caterpillar, Inc.)

    FIGURA 1.21. Vista del operador de la pala delante-ra compuesta de varias secciones para generar una vista Je gran angular en un monitor estndar. (Cortesa de National Center for Supercomputing Applications, Universidad de Illinois en Urbanu-Champaign y Caterpillar, Inc.)

    FIGURA 1.22. Vista del tractor en un monitor estndar (Cortesa de National Center for Supercomputing Applications. Universidad de Illinois en Urbana-Champaign y Caterpillar. Inc.)

    Con los sistemas de realidad virtual, tanto los diseadores como los dems pueden moverse alrededor e inleracluar con los objetos de diferentes maneras. Los diseos arquitectnicos pueden examinarse mediante un pasco simulado a travs de habitaciones o alrededor de los exteriores del edificio para poder apreciar mejor el efecto global de un diseo particular. Mediante un guante especial, podemos, incluso agarrar objetos en una escena y girarlos o moverlos de un sitio a otro.

  • 12 C APITU LO 1 Introduccin a los grficos por computadora

    1.4 VISUALIZARON DE DATOS

    La generacin de representaciones gradeas de conjuntos de datos o procesos de naturaleza cientfica, de inge-niera o de medicina es otra nueva aplicacin de los grficos por computadora. Generalmente, esto se conoce como visualizacin cientfica. Y el termino visnalizacin de negocios se usa para conjuntos de datos rela-cionados con el comercio, la industria y otras reas no cientficas^

    Investigadores, analistas y dems, frecuentemente necesitan tratar con grandes cantidades de informacin o estudiar el comportamiento de procesos de elevada complejidad. Las simulaciones numricas por computa-dora, por ejemplo, normalmente, producen grandes cantidades de archivos de datos que contienen miles o incluso millones de valores. De modo similar, las cmaras de un satlite u otras fuentes de grabacin acumu-lan archivos de datos ms rpido de lo que pueden ser interpretados. Rastrear estos grandes conjuntos de nmeros para determinar tendencias y relaciones es un proceso tedioso y totalmente inefectivo. Sin embargo, si los datos se convierten a una formato grfico, las tendencias y relaciones aparecen inmediatamente. La Figura 1.23 muestra un ejemplo de un gran conjunto de valores que han sido convertidos en una visualizacin codificada mediante colores de alturas relativas sobre un plano de tierra. Una vez que hemos representado los valores de densidad en esta forma, podemos ver el patrn global de los datos.

    FIGURA 1.23. Diagrama que usa un cdigo de colores con 16 millones de puntos de densidad de brillo relativo observado de la Nebulosa Whirlpool donde se revelan dos galaxias distintas. {Cortesa ce Los Alamos National Laboratory)

    FIGURA 1.24. Representacin de funciones de curvas matemticas en varias combinaciones de colores (en escala de grises en la imagen). (Cortesa de Melvin L. Prueiit, Los Alamos National Laboratory.)

    FIGURA 1.25. Para producir esta funcin tridimensional se utilizaron efectos de iluminacin y tcnicas de representa-cin de superficies. (Cortesa de Wolfram Research Inc.. el creador de Mathematica)

  • 1.4 Visualizacin de dato* 13

    Existen muchas clases distintas de conjuntos de dalos, por lo que los esquemas de visuali/acin efectivos dependen de las caractersticas de los datos. Una coleccin de datos puede contener valores escalares, vecto-res, tensores de orden superior o cualquier combinacin de estos tipos de datos. Los conjuntos de datos pue-den estar distribuidos sobre una regin bidimensional en el espacio, una regin tridimensional o un espacio de dimensin superior. La codificacin mediante colores es una manera de visualizar un conjunto de dalos. Otras tcnicas de visualizacin incluyen la representacin de perfiles, la representacin de superficies de valor constante u otras regiones del espacio y formas especialmente diseadas para la representacin de diferentes tipos de datos.

    Las tcnicas de visualizacin tambin se usan como ayuda para la comprensin de procesos complejos y funciones matemticas. Una representacin en color (en escala de grises en la figura) de una funcin matem-tica se muestra en la Figura 1.24. En la Figura 1.25 se puede ver la representacin de una superficie. El obje-to de la Figura 1.26 se gener mediante procedimientos (raciales usando cuaternios. En la Figura 1.27 se mues-tra una estructura topolgica.

    Los cientficos estn desarrollando mtodos para la v isualizacin de dalos de carcter genrico. La Figura 1.28 muestra una tcnica genrica para la representacin y el modelado de datos distribuidos sobre una super-ficie esfrica.

    FIGURA 1.26. Un objeto de cuatro dimensiones proyectado en un espacio de tres dimensiones y representado en una pantalla de video de dos dimensiones, con cdigo de colores. El objelo se gener utilizando cuaternios y procedi-mientos cuadrticos de fractales, con un ociante sublra/ado para mostrar la complejidad del conjunto de Julia. (Cortesa de John C. Hart. Depar-tamento de Ciencias de la Computacin, Universidad de Illinois, Urhana-Champaign.)

    FIGURA 1.27. Cuatro vistas en tiempo real de una animacin interactiva que estudia las superficies mnimas (snails) en las tres esferas proyectadas en un espacio euclideo tridimensional. (Cortesia de George Francis, Departamento de Matemticas y del National Center far Snpercompitfing Applications, Universidad de Illinois. Urbana-Champaign. 1993.)

  • 14 CAPTULO 1 Introduccin a ios grficos por computadora

    FIGURA 1.28. Un mtodo para realizar repre-sentaciones grficas y modelar datos distribui-dos sobre una superficie esfrica (Cortesa de Grieg Nelson, Departamento de Ciencias de la Computacin, Universidad del Estado de Arizona.)

    FIGURA 1.29. Visualizacin de superficies de corriente que fluyen a travs de una lanzadera espacial. Proporcionado por Jeff llultquist y Fre Rable, NASA Ames (Cortesa de Sam Use/ton, Nasa Ames Research Center.)

    FIGURA 1.30. Modelo numrico de las corrien-tes de aire dentro de una tormenta. (Cortesa de Mol Wilhelmsom, Departamento de Ciencias Atmosfricas y del National Center for Super-computing Applications, Universidad de Illinois, Urbana-Champaign. )

    Desde la Figura 1.29 hasta la 1.42 se muestran diversas aplicaciones para la visualizacin. Estas figuras muestran: corrientes de aire Huyendo sobre la superficie de una lanzadera espacial, modelado numrico de una tormenta, un despliegue de los efectos de la propagacin de fracturas en los metales, la representacin en cdigo de colores de la densidad de un tluido sobre un perfil aerodinmico, secciones cruzadas de un conjun-to de datos, modelado de protenas, visualizacin interactiva de estructuras moleculares dentro de un entrono de realidad virtual, un modelo del suelo del ocano, una simulacin de un incendio en un pozo petrolfero en Kuwait, un estudio de la contaminacin del aire, un estudio del crecimiento del maiz, una reconstruccin de las ruinas del Can del Chaco en Arizona y un diagrama de las estadsticas de los accidentes de trfico.

  • 1.4 Visualizaran de datos 15

    FIGURA 1.31. Modelo numrico de la superficie de una tnrmenta.(Cor/?/a de Bob Wilhelmsom, Departamento de Ciencias Atmosfricas y del National Center for Supercomputing Appli-cations, Universidad de Illinois. Urbana-Champaif>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, mostran-do 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 pro-tena 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 rea-lidad 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 preci-pitacin 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. Q + o t i e t i r n l onto the group bars, we can see the O I C U I O U O C H correlation between the pedestrain ArtSlVSIS injury and other attributes! J

    tit

    Mi. I

    I ' . - * ' V,W#r ti 'i" r.r 2T to w,. I

    I 2 i ..... , r - | , |

    i i I .

    a I I

    FIGURA 1.42. Prototipo para la visualizacin de tablas multidimensionales de datos, llamado WinViz y desa-rrollado 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 Corpo-ration, Redwood Shores, California,)

    1.5 EDUCACIN Y FORMACIN Los 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, ten-dencias de la poblacin, equipamiento, como el diagrama codificado de colores (en escala de grises en la ima-gen) 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 duran-te la sesin de formacin o prueba.

    f f lili i-h 1 m m \ lj i V '

    1 1 i ? n ? V '

    1 1 tez FIGURA 1.43. Diagrama con cdigo de colores (escala de grises en la imagen) para explicar el fun-cionamiento 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 figu-ra 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 comportamien-to 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 equi-po 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 simu-lador naval. (Cortesa de Evans & Sutherland.)

    FIGURA 1.50. Imgenes de una lanzadera espa-cial. (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 con-ductor. (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 dife-rentes 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 gene-rado 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 C A P T U L O 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 esca-nciadas.

    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 tene-mos una pintura generada con un trazador usando un software diseado a medida que puede crear arte auto-mtico, sin la intervencin de ningn artista.

    La Figura 1.59 muestra un ejemplo de arte matemtico. Este artista utiliza una combinacin de funcio-nes 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 afirma-cin sobre nuestra relacin con la tecnologa, utilizando una computadora personal con table-ta 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 lla-mada Fsferas de influencia, esia pintura electrnica titulada Whigma/aree fue creada con una combinacin de mtodos utilizando una tableta grfica, modelado tridimensional, ma-peado 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 especfica-mente para el artista para imitar su estilo. El trazador tiene mlti-ples plumas e instrumentos de pintura incluyendo pinceles chi-nos. (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 teo-rema de Fermat, x" + /' = r" , n = 5. Departamento de Ciencias de la Computacin de la Univer-sidad 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 varia-ciones de frecuencia y otros parmetros de una composicin musical para producir vdeo que integra patro-nes 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 mues-tra 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 anun-cios 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 despla-zadas para simular los movimientos que tienen lugar en la animacin. Cuando todos los cuadros que partici-pan en la secuencia de animacin se han renderizado, se transfieren a una pelcula o se almacenan en un bf-fer 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 logo-tipo. (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 ENTRETENIMIENTO Las producciones de televisin, las pelculas de cine y los vdeos musicales usan de manera rutinaria los gr-ficos 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 utili-zan 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 amplia-mente extendidas en las pelculas de hoy en da. La Figura 1.66 ilustra la escena preliminar generada por com-putadora 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 FIGURA 1.66. Grficos generados para la pel-para una emisin japonesa de televisin, de Taise cula de Paramount Piclures Star Trek la furia ( orporation (Tokio, Japn) y renderi/ado con el softwa- del Khan. (Cortesa de Evans- and Suther-ic Tl)l. (Cortesa de Thomson Digital muge. Inc.) land.)

    (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 simu-lar de manera cercana la apariencia de un actor humano.

  • 3 0 C A P T U L O 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 pel-cula 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 obje-tos 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.

    La 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 procesa-do de imgenes se solapan, las dos reas estn dedicadas a operaciones fundamentales diferentes. En los gr-ficos por computadora, la computadora se utiliza para crear una imagen. Por otra parte las tcnicas de proce-samiento de imgenes se utilizan para mejorar la calidad de un dibujo, analizar las imgenes o reco