Fundamentos de la Computación Gráfica: Representación y Manipulación Visual

Computación Gráfica: Representación y Manipulación Visual

La computación gráfica es el campo de la computación que estudia los métodos para representar y manipular contenido visual. Cubre el estudio de gráficos en 3D, 2D y el procesamiento digital de imágenes. Se enfoca en la parte matemática y computacional de la generación y procesamiento de imágenes.

Usos de la Computación Gráfica

Algunos usos de los gráficos por computadora son:

  • Visualización científica
  • Imágenes foto-realistas
  • Realidad Virtual
  • Realidad aumentada
  • Interfaces de usuario
  • Videojuegos
  • Arte
  • Procesamiento digital de imágenes
  • Diseño asistido por computadora
  • En el área de la salud: operaciones, rehabilitación (a partir de la realidad virtual), tomografías

Tabla Cronológica

1946 – ENIAC. Primera computadora de propósito general.
1950 – CRT, tubo de rayos catódicos y lápiz óptico.
1952 – OXO, uno de los primeros videojuegos.
1961 – Spacewar (juego). Steve Russell
1963 – Sketchpad, software de dibujo por Ivan Sutherland.
1966 – The Sword of Damocles, primer sistema de realidad virtual, así como desarrollo formal de las Interfaces Gráficas de Usuario.
1968 – Realidad virtual, imágenes 3D por Ivan Sutherland.
1970 – Grupo de trabajo especializado en gráficos por computadora. Jim Clark, posterior fundador de Silicon Graphics.
1971 – Microprocesador.
1972 – Atari y videojuego Pong.
1980 – SIGGRAPH (Special Interest Group on GRAPHics). Loren Carpenter por el video «Vol Libre».
1981 – Loren Carpenter ingresa a LucasFilm, y se crea la herramienta REYES (Render Everything You Ever Saw).
1986 – Pixar, y la herramienta RenderMan (API).
1992 – OpenGL.
1993 – Doom por ID Software.
1995 – Toy Story. PlayStation y Direct 3D.
1997 – Primer acelerador gráfico, 3Dfx Voodoo 3D.
1999 – Aparición del primer GPU (Graphics Processing Unit). Videojuego Final Fantasy VIII.
2001 – Película Final Fantasy: The Spirits Within, XBOX.
2003 – Shaders. «Física» en aplicaciones.
2005 – GPUs en paralelo.
2006 – GPGPU, General Purpose Graphic Processing.
2007 – Autodesk.
2009 – Integración GPU y CPU.
2010 – Interfaces de usuario «naturales».
2011 – Cloud processing.
2012 – Realidad Aumentada.
2014 – Physically Based Rendering.
2015 – Mantle, Vulcan y DirectX 12.

Representación de una Imagen

Una imagen se representa como un conjunto ordenado de pixeles, donde cada pixel tiene un valor que representa un color.

  • Color verdadero: 3 bytes, 224 bytes.
  • Mapa de bits: Conjunto de bits, profundidad del color, longitud de bits.
  • Modelo RGB: Para representar colores en la memoria.
  • RAMDAC: Convertidor A/D.

Sistemas de Escaneo

Raster Scan System: CPU, Memoria del sistema junto con Frame Buffer, Controlador de video (Bus del sistema debajo de memoria).
Random Scan System: CPU, Memoria del sistema, Controlador de video, Bus del sistema (debajo de memoria).

Conceptos Clave

Pixel: Unidad mínima de representación gráfica.
Resolución: Cantidad de pixeles que puede mostrar una pantalla y depende del S.O., CPU, GPU, programa y monitor. (RT = Rh X Rv)
Resolución nativa: Cantidad física de pixeles.
Recorridos: A-B barrido, B-C retorno horizontal, C-A Retorno vertical, A-D Frame o cuadro.
Frecuencia de refresco: Cantidad de cuadros que se dibujan en un segundo (Hz), 60 Hz recomendable, 24 Hz película y 3D 120 Hz (dibuja el doble, una para cada ojo).
Memoria por frame: Resolución * Profundidad de color = Resolución * Rh * Rv
Profundidad de color: Cantidad de memoria asignada a un pixel.

1 bit por pixel: 2 colores
2 bits por pixel: 4 colores
8 bits por pixel: 256 colores
24 bits (S.O. modernos): 16,777,216 colores
32 bits (Windows): 16,777,216 colores (si Full HD 1920*1080*32 bits). Entre más bits, más se acerca al color verdadero.

Tipos de GPUs

1. Integrados: Bajo rendimiento, bajo consumo de energía, toma parte de la memoria principal.
2. Discretos: Alto rendimiento, costo adicional, memoria dedicada (DDR5). El driver indica cuánto se dedica.

Conexiones en PC

VGA (Video Graphic Array) – analógica
DVI (Digital Visual Interface)
HDMI (High-Definition Multimedia Interface)
DisplayPort

Software Gráfico

Programas de propósito general: No requieren conocimientos de programación.
Paquetes de programación general: Se usan IDEs (ambientes de desarrollo integrado), herramientas que facilitan la creación de programas.

Contienen: Editor de texto, compiladores, debugger, varios lenguajes, control de versiones, interfaces gráficas.

Pipeline de Renderizado (Paralelo)

El pipeline es la forma en que se procesa la información geométrica: Coordenadas locales (transformación geométrica), Coordenadas universales (recorte o proyección), Coordenadas de visualización (puerto de vista), Coordenadas del dispositivo.

  • Coordenadas locales o de modelo: Cada objeto tiene asociado un sistema de referencia.
  • Coordenadas universales o de mundo: Todos los objetos del escenario utilizan un único sistema de referencia.
  • Coordenadas de visualización: Selección de objetos a visualizar (recorte).
  • Coordenadas del dispositivo: Asignación de pixeles para mostrar la imagen.

Transformación Ventana-Puerto de Vista

Consiste en seleccionar la parte del escenario a visualizar y llevarlo a la región disponible dentro del dispositivo de despliegue. Ejemplo: pantalla dividida, mapa.

Operación Recorte

El recorte (2D) separa la información de la ventana.
Ventana: Región rectangular alineada a los ejes de referencia que delimitan lo que deseamos ver. Se crea con: a) dos coordenadas o puntos opuestos, b) largo, ancho, punto de referencia.
Liang-Barsky: Utiliza la ecuación paramétrica de la línea.

Polígonos

Polígono: Figura cerrada delimitada por segmentos de línea, se requieren al menos 3 vértices (triángulo). Los vértices forman la «lista de vértices».
Regla de unión: Orden en que aparecen los vértices en la lista.

Tipos de Polígonos

  • Convexos: Cada ángulo interno es menor a 180°, sus líneas límite solo se tocan en los vértices.
  • Cóncavos: Al menos un ángulo interior mide más de 180°.

\pi

Operadores de glBegin()

GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES, GL_TRIANGLE_FAN, GL_TRIANGLE_STRIP, GL_QUADS, GL_POLYGON.

Primitivas y Modelado Geométrico

Primitivas: Elementos base: vértices, líneas, polígonos, cubos, cilindros, conos, esferas.
Modelado geométrico: Metodología para construir modelos a partir de elementos más sencillos.
Modelo: Representación de características de una entidad concreta o abstracta.

Transformaciones Geométricas

Operaciones que se aplican a un conjunto de vértices, como traslación, escala y rotación. Se trabaja con un espacio homogéneo.
Composición de transformaciones: Aplicar dos o más transformaciones al mismo conjunto de puntos.
Sen(α+θ) = sen(α)cos(θ) + cos(α)sen(θ)
Cos(α+θ) = cos(α)cos(θ) – sen(α)sen(θ)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.