1. Generación de imágenes: Esta es la función fundamental. Abarca la creación de imágenes, ya sea 2D o 3D, a partir de datos digitales. Esto incluye:
* Modelado geométrico: Definición y manipulación de formas y objetos utilizando representaciones matemáticas (puntos, líneas, curvas, superficies). Esto es crucial para los gráficos 3D.
* Rasterización: Convirtiendo representaciones basadas en vectores (como líneas y curvas) en una imagen ráster (píxeles) para mostrar en una pantalla.
* Renderización: El proceso de generar una imagen realista a partir de un modelo 3D, considerando aspectos como iluminación, sombras, texturas y materiales. Esto puede variar desde pantallas simples de estructura alámbrica hasta imágenes fotorrealistas.
* Síntesis de imagen: Creación de imágenes desde cero, sin confiar en el escaneo directo o la digitalización de objetos del mundo real. Esto está muy involucrado en CGI.
2. Manipulación de imágenes: Esto implica modificar las imágenes existentes:
* Edición de imágenes: Modificar imágenes para corregir defectos, mejorar la calidad o cambiar su apariencia (por ejemplo, Photoshop).
* Transformación de la imagen: Transformaciones geométricas (escala, rotación, traducción) y ajustes de color.
* Procesamiento de imágenes: Aplicación de algoritmos a las imágenes para diversos fines, como reducción de ruido, filtrado, detección de bordes y compresión de imágenes.
3. Visualización de imágenes e interacción: Esto abarca cómo se presentan las imágenes al usuario y cómo el usuario puede interactuar con ellas:
* Dispositivos de salida: Generación de imágenes en pantallas, impresoras u otras tecnologías de visualización.
* Dispositivos de entrada: Aceptar la entrada del usuario (por ejemplo, mouse, teclado, lápiz óptico, pantalla táctil) para manipular imágenes o controlar el sistema de gráficos.
* Interfaz de usuario: Proporcionar herramientas y controles para que los usuarios interactúen con el sistema gráfico de manera fácil de usar.
* Interacción en tiempo real: Respondiendo rápidamente a la entrada del usuario para tareas como el juego o aplicaciones de realidad virtual.
4. Estructuras de datos y algoritmos: Subyacente a estas características funcionales son estructuras y algoritmos de datos sofisticados:
* Estructuras de datos: Métodos eficientes para almacenar y administrar datos gráficos (por ejemplo, mallas políticas, ocrees, árboles BSP).
* Algoritmos: Algoritmos para representación, procesamiento de imágenes, cálculos geométricos y detección de colisiones.
5. Dominios de aplicación: Las características funcionales se adaptan a necesidades de aplicación específicas:
* Diseño asistido por computadora (CAD): Creación y manipulación de modelos 3D para ingeniería y diseño.
* Imágenes generadas por computadora (CGI): Creación de imágenes realistas o estilizadas para películas, videojuegos y otros medios visuales.
* Visualización: Presentar datos en forma visual (por ejemplo, imágenes médicas, simulaciones científicas).
* Realidad virtual (VR) y realidad aumentada (AR): Creando entornos inmersivos e interactivos.
Estas características funcionales están interconectadas y a menudo se superponen. Por ejemplo, generar una imagen realista en un videojuego (generación de imágenes) requiere algoritmos eficientes (estructuras de datos y algoritmos) e interacción en tiempo real con el usuario (pantalla e interacción de imágenes).