Wright, Richard S / Lipchak, Benjamin
El uso de las aplicaciones para dibujar gráficos 3D en tiempo real se ha estandarizado en áreas tan diversas como los juegos interactivos, películas y simulaciones, hasta la visualización de datos para usos científicos, médicos y comerciales. En este sentido, OpenGL constituye una de las interfaces de programación más recomendadas en este campo por su excelente estabilidad y rendimiento. Con esta obra se familiarizará con los elementos básicos de la programación de gráficos 3D con OpenGL, aprendiendo a construir un programa que use OpenGL, establecer el entorno de interpretación 3D y a crear objetos básicos así como a aplicarles luces y sombras y mucho más. El lector encontrará además toda la información específica que necesite dependiendo del sistema operativo con el que trabaje, y a medida que avance en el uso de esta API gráfica irá profundizando en el conocimiento de sus opciones avanzadas y los distintos efectos especiales que permite. Incluye CD-ROM con los ejemplos desarrollados a lo largo del libro así como diversas herramientas de utilidad.Introducción Contenido del libro Parte I. OpenGL clásico Parte II. OpenGL en todas partes Parte III. OpenGL: la próxima generación Parte IV. Apéndice Convenios utilizados en este libro Parte I. OpenGL clásico 1. Introducción a los gráficos 3D y OpenGL ¿De qué trata todo esto? Una breve historia sobre los gráficos por ordenador Introducción del CRT Hacia los gráficos tridimensionales 2D + Perspectiva = 3D Elementos 3D Estudio sobre los efectos 3D Perspectiva Color y sombreado Luces y sombras Trazado de mapa de textura Niebla Fusión y transparencia Suavizado Usos comunes para gráficos de 3D 3D en tiempo real 3D en tiempo no real Principios básicos de programación 3D Modo inmediato y modo retenido (gráficos de escena) Sistemas de coordenadas Coordenadas cartesianas 2D Recorte de coordenadas Puertos de vista: coordenadas de dibujo en coordenadasde ventana El vértice: una posición en el espacio Coordenadas cartesianas 3D Proyecciones: llevar 3D a 2D Proyecciones ortogonales Proyecciones de perspectiva 2. Uso de OpenGL ¿Qué es OpenGL? Evolución de un estándar OpenGL ARB Licencias y conformidad La guerra de las API Introducción de DirectX OpenGL llega a los PC ¿OpenGL para juegos? Ventaja inicial de Direct3D El juego sucio El futuro de OpenGL ¿Cómo funciona OpenGL? Implantaciones genéricas Implantaciones de hardware El canal OpenGL: Una API, no un lenguaje Bibliotecas y encabezados Especificaciones API Tipos de datos Convenios de denominación de funciones Independencia de plataforma Uso de GLUT Configurar el entorno de programación El primer programa El encabezado El cuerpo Modo de presentación: un solo búfer Crear la ventana OpenGL Mostrar la devolución de llamada Establecer el contexto y seguir Llamadas de gráficos OpenGL Borrar el búfer de color Limpiar la cola Dibujar formas con OpenGL Dibujar un rectángulo Escalar la ventana Configurar el puerto de vista y el volumen de recorte Definir el puerto de vista Definir el volumen de visualización recortado Mantener cuadrado un cuadrado Animación con OpenGL y GLUT Doble búfer Máquina de estado de OpenGL Guardar y restablecer estados Errores de OpenGL Errores en un código Identificar la versión Especificar sugerencias con glHint Usar extensiones Comprobar una extensión ¿De quién es esta extensión? OpenGL más allá de 1.1 en Windows Referencia 3. Dibujo espacial: Primitivos geométricos y búferes Dibujar puntos en 3D Configurar un lienzo 3D Un punto 3D: el vértice Dibujar algo Dibujar puntos Nuestro primer ejemplo Establecer el tamaño del punto Dibujar líneas en 3D Bandas y bucles de línea Aproximación de curvas con líneas rectas Establecer el ancho de línea Punteo de líneas Dibujo de triángulos en 3D Triángulos: nuestro primer polígono Giro Bandas de triángulo Abanicos de triángulos Construir objetos sólidos Establecer los colores del polígono Ocultar eliminación de superficies Eliminación selectiva: ocultar superficies para mejorarel rendimiento Modos de polígonos Otros primitivos Polígonos de cuatro lados: cuadriláteros Bandas de cuadriláteros Polígonos generales Rellenar polígonos o volver a puntear Reglas de creación de polígonos Subdivisión y bordes Otros trucos de búfer Usar los destinos de búfer Manipular el búfer de