Articulo de referencia

Gráficos por computadora en 2D

Los gráficos 2D por computadora consisten en la generación de imágenes digitales mediante ordenador , principalmente a partir de modelos bidimensionales (como modelos geométrico...

Los gráficos 2D por computadora consisten en la generación de imágenes digitales mediante ordenador , principalmente a partir de modelos bidimensionales (como modelos geométricos 2D , texto e imágenes digitales) y mediante técnicas específicas para ellos. El término puede referirse a la rama de la informática que comprende dichas técnicas o a los modelos mismos.

Sprites gráficos rasterizados (izquierda) y máscaras

Los gráficos por computadora en 2D se utilizan principalmente en aplicaciones que se desarrollaron originalmente a partir de tecnologías tradicionales de impresión y dibujo , como tipografía , cartografía , dibujo técnico , publicidad , etc. En esas aplicaciones, la imagen bidimensional no es solo una representación de un objeto del mundo real, sino un artefacto independiente con valor semántico añadido; por lo tanto, se prefieren los modelos bidimensionales, porque brindan un control más directo de la imagen que los gráficos por computadora en 3D (cuyo enfoque se asemeja más a la fotografía que a la tipografía).

En muchos ámbitos, como la autoedición , la ingeniería y los negocios , la descripción de un documento mediante técnicas de gráficos 2D puede ser mucho más pequeña que la imagen digital correspondiente , a menudo con una reducción de hasta 1/1000 o más. Esta representación también es más flexible, ya que puede renderizarse a diferentes resoluciones para adaptarse a distintos dispositivos de salida . Por estas razones, los documentos e ilustraciones suelen almacenarse o transmitirse como archivos gráficos 2D .

Los gráficos por computadora en 2D surgieron en la década de 1950, basados ​​en dispositivos de gráficos vectoriales . Estos fueron reemplazados en gran medida por dispositivos basados ​​en tramas en las décadas siguientes. El lenguaje PostScript y el protocolo del Sistema X Window fueron desarrollos trascendentales en este campo.

Los modelos gráficos 2D pueden combinar modelos geométricos (también llamados gráficos vectoriales ), imágenes digitales (también llamadas gráficos rasterizados ), texto para composición tipográfica (definido por contenido, estilo y tamaño de fuente , color, posición y orientación), funciones y ecuaciones matemáticas, y más. Estos componentes pueden modificarse y manipularse mediante transformaciones geométricas bidimensionales como traslación , rotación y escalado . En los gráficos orientados a objetos , la imagen se describe indirectamente mediante un objeto dotado de un método de autorrenderizado : un procedimiento que asigna colores a los píxeles de la imagen mediante un algoritmo arbitrario. Los modelos complejos pueden construirse combinando objetos más simples, en los paradigmas de la programación orientada a objetos .

Antecedentes (geometría)

Una traslación mueve cada punto de una figura o un espacio la misma cantidad en una dirección determinada.

En geometría euclidiana , una traslación (geometría) mueve cada punto una distancia constante en una dirección específica. Una traslación puede describirse como un movimiento rígido ; otros movimientos rígidos incluyen rotaciones y reflexiones. Una traslación también puede interpretarse como la suma de un vector constante a cada punto, o como el desplazamiento del origen del sistema de coordenadas . Un operador de traslación es un operadorTδ{\displaystyle T_{\mathbf {\delta } }}de tal manera queTδF(v)=F(v+δ).{\displaystyle T_{\mathbf {\delta } }f(\mathbf {v} )=f(\mathbf {v} +\mathbf {\delta } ).}

Si v es un vector fijo, entonces la traslación T v funcionará como T v ( p ) = p + v .

Si T es una traslación, entonces la imagen de un subconjunto A bajo la función T es la traslación de A por T. La traslación de A por T v se suele escribir A + v .

En un espacio euclidiano , cualquier traslación es una isometría . El conjunto de todas las traslaciones forma el grupo de traslaciones T , que es isomorfo al espacio mismo, y un subgrupo normal del grupo euclidiano E ( n ). El grupo cociente de E ( n ) por T es isomorfo al grupo ortogonal O ( n ):

E ( n ) / TO ( n ).

Traducción

Dado que una traslación es una transformación afín pero no lineal , normalmente se utilizan coordenadas homogéneas para representar el operador de traslación mediante una matriz y, por lo tanto, hacerlo lineal. Así, escribimos el vector tridimensional w = ( w x , w y , w z ) utilizando 4 coordenadas homogéneas como w = ( w x , w y , w z , 1). [ 1 ]

Para trasladar un objeto mediante un vector v , cada vector homogéneo p (escrito en coordenadas homogéneas) tendría que multiplicarse por esta matriz de traslación :

Tv=[100vincógnita010vy001vz0001]{\displaystyle T_{\mathbf {v} }={\begin{bmatrix}1&0&0&v_{x}\\0&1&0&v_{y}\\0&0&1&v_{z}\\0&0&0&1\end{bmatrix}}}

Como se muestra a continuación, la multiplicación dará el resultado esperado:

Tvpag=[100vincógnita010vy001vz0001][pagincógnitapagypagz1]=[pagincógnita+vincógnitapagy+vypagz+vz1]=pag+v{\displaystyle T_{\mathbf {v} }\mathbf {p} ={\begin{bmatrix}1&0&0&v_{x}\\0&1&0&v_{y}\\0&0&1&v_{z}\\0&0&0&1\end{bmatrix}}{\begin{bmatrix}p_{x}\\p_{y }\\p_{z}\\1\end{bmatrix}}={\begin{bmatrix}p_{x}+v_{x}\\p_{y}+v_{y}\\p_{z}+v_{z}\\1\end{bmatrix}}=\mathbf {p} +\mathbf {v} }

La inversa de una matriz de traslación se puede obtener invirtiendo la dirección del vector:

Tv1=Tv.{\displaystyle T_{\mathbf {v} }^{-1}=T_{-\mathbf {v} }.\!}

De manera similar, el producto de matrices de traslación se obtiene sumando los vectores:

TTv=T+v.{\displaystyle T_{\mathbf {u} }T_{\mathbf {v} }=T_{\mathbf {u} +\mathbf {v} }.\!}

Dado que la suma de vectores es conmutativa , la multiplicación de matrices de traslación también lo es (a diferencia de la multiplicación de matrices arbitrarias).

Rotación

En álgebra lineal , una matriz de rotación es una matriz que se utiliza para realizar una rotación en el espacio euclidiano .

R=[porqueθpecadoθpecadoθporqueθ]{\displaystyle R={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}}

La rotación de puntos en el plano cartesiano xy se realiza en sentido antihorario un ángulo θ alrededor del origen del sistema de coordenadas cartesianas . Para realizar la rotación mediante una matriz de rotación R , la posición de cada punto debe representarse mediante un vector columna v , que contiene las coordenadas del punto. El vector rotado se obtiene mediante la multiplicación de matrices R v . Dado que la multiplicación de matrices no afecta al vector cero (es decir, a las coordenadas del origen), las matrices de rotación solo pueden utilizarse para describir rotaciones alrededor del origen del sistema de coordenadas.

Las matrices de rotación proporcionan una descripción algebraica simple de dichas rotaciones y se utilizan ampliamente en cálculos de geometría , física y gráficos por computadora . En el espacio bidimensional, una rotación se puede describir simplemente mediante un ángulo de rotación θ , pero también se puede representar mediante las 4 entradas de una matriz de rotación con 2 filas y 2 columnas. En el espacio tridimensional, toda rotación se puede interpretar como una rotación de un ángulo dado alrededor de un único eje de rotación fijo (véase el teorema de rotación de Euler ), y por lo tanto se puede describir simplemente mediante un ángulo y un vector con 3 entradas. Sin embargo, también se puede representar mediante las 9 entradas de una matriz de rotación con 3 filas y 3 columnas. La noción de rotación no se usa comúnmente en dimensiones superiores a  3; existe la noción de desplazamiento rotacional , que se puede representar mediante una matriz, pero sin un único eje o ángulo asociado.

Las matrices de rotación son matrices cuadradas con entradas reales . Más específicamente, se pueden caracterizar como matrices ortogonales con determinante  1:

RT=R1,detR=1{\displaystyle R^{T}=R^{-1},\det R=1\,}.

El conjunto de todas esas matrices de tamaño n forma un grupo , conocido como el grupo ortogonal especial SO( n ) .

Técnicas

Pintura directa

Una forma práctica de crear una imagen compleja es comenzar con un mapa ráster en blanco (una matriz de píxeles , también conocida como mapa de bits ) relleno con un color de fondo uniforme y luego "dibujar", "pintar" o "pegar" parches de color simples sobre él, en el orden apropiado. En particular, el lienzo puede ser el búfer de fotogramas de una pantalla de ordenador .

Algunos programas establecen los colores de los píxeles directamente, pero la mayoría dependen de alguna biblioteca de gráficos 2D o de la tarjeta gráfica de la máquina , que generalmente implementan las siguientes operaciones:

  • pegar una imagen determinada en una posición específica del lienzo;
  • escribir una cadena de caracteres con una fuente específica, en una posición y ángulo determinados;
  • pintar una figura geométrica simple , como un triángulo definido por tres vértices, o un círculo con un centro y un radio dados;
  • Dibuja un segmento de línea , un arco o una curva simple con un lápiz virtual de un ancho determinado.

Modelos de color ampliados

El texto, las formas y las líneas se representan con un color especificado por el cliente. Muchas bibliotecas y tarjetas ofrecen degradados de color , útiles para generar fondos con transiciones suaves, efectos de sombra, etc. (Véase también el sombreado de Gouraud ). Los colores de los píxeles también pueden obtenerse de una textura, por ejemplo, una imagen digital (emulando así las tramas de puntos y la legendaria pintura a cuadros que antes solo se veía en los dibujos animados ).

Pintar un píxel con un color determinado suele reemplazar su color anterior. Sin embargo, muchos sistemas admiten colores transparentes y translúcidos , que solo modifican los valores del píxel anterior. Los dos colores también se pueden combinar de formas más complejas, por ejemplo, calculando su OR exclusivo a nivel de bits . Esta técnica se conoce como inversión de color y se utiliza a menudo en interfaces gráficas de usuario para resaltar, dibujar con efecto de banda elástica y otras técnicas de pintura volátil , ya que al volver a pintar las mismas formas con el mismo color se restauran los valores originales del píxel.

Capas

Un personaje animado en 2D compuesto con fondos en 3D mediante capas.

Los modelos utilizados en gráficos por computadora 2D generalmente no contemplan formas tridimensionales ni fenómenos ópticos tridimensionales como iluminación, sombras , reflexión , refracción , etc. Sin embargo, suelen poder modelar múltiples capas (conceptualmente de tinta, papel o película; opacas, translúcidas o transparentes ) apiladas en un orden específico. Este orden suele definirse mediante un único número (la profundidad de la capa o la distancia al observador).

Los modelos por capas a veces se denominan "gráficos por computadora 2 1/2 ". Permiten imitar técnicas tradicionales de dibujo e impresión basadas en película y papel, como cortar y pegar; y permiten al usuario editar cualquier capa sin afectar a las demás. Por estas razones, se utilizan en la mayoría de los editores gráficos . Los modelos por capas también permiten un mejor suavizado espacial de dibujos complejos y proporcionan un modelo sólido para ciertas técnicas como las uniones a inglete y la regla par-impar .

Los modelos por capas también se utilizan para permitir al usuario suprimir información no deseada al visualizar o imprimir un documento, por ejemplo, carreteras o vías férreas en un mapa , ciertas capas de proceso en un diagrama de circuito integrado o anotaciones manuscritas en una carta comercial.

En un modelo basado en capas, la imagen final se obtiene "pintando" o "pegando" cada capa, en orden de profundidad decreciente, sobre el lienzo virtual. Conceptualmente, cada capa se renderiza primero de forma independiente, generando una imagen digital con la resolución deseada que luego se pinta sobre el lienzo, píxel a píxel. Las partes totalmente transparentes de una capa no necesitan renderizarse, por supuesto. El renderizado y la pintura pueden realizarse en paralelo; es decir, cada píxel de la capa puede pintarse sobre el lienzo tan pronto como se genera mediante el proceso de renderizado.

Las capas que constan de objetos geométricos complejos (como texto o polilíneas ) pueden descomponerse en elementos más simples ( caracteres o segmentos de línea , respectivamente), que luego se pintan como capas separadas, en algún orden. Sin embargo, esta solución puede generar artefactos de aliasing indeseables cuando dos elementos se superponen en el mismo píxel.

Véase también Formato de documento portátil#Capas .

Hardware

Las pantallas de las tarjetas gráficas modernas utilizan casi en su totalidad técnicas de tramado, dividiendo la pantalla en una cuadrícula rectangular de píxeles , debido al coste relativamente bajo del hardware de vídeo basado en tramado en comparación con el hardware gráfico vectorial. La mayoría del hardware gráfico cuenta con soporte interno para operaciones de blitting o dibujo de sprites . Un coprocesador dedicado al blitting se conoce como chip blitter .

Los chips gráficos 2D clásicos y las unidades de procesamiento gráfico de finales de la década de 1970 y de la década de 1980, utilizados en juegos arcade de 8 bits a principios de la década de 16 bits , consolas de videojuegos y ordenadores domésticos , incluyen:

Software

Muchas interfaces gráficas de usuario (GUI), como macOS , Microsoft Windows o el Sistema X Window , se basan principalmente en conceptos gráficos bidimensionales. Este software proporciona un entorno visual para interactuar con el ordenador y suele incluir algún tipo de gestor de ventanas para ayudar al usuario a distinguir conceptualmente entre las diferentes aplicaciones. La interfaz de usuario dentro de las aplicaciones de software individuales también suele ser bidimensional, debido en parte a que la mayoría de los dispositivos de entrada comunes , como el ratón , están limitados a dos dimensiones de movimiento.

Los gráficos 2D son muy importantes en los periféricos de control, como impresoras, plotters, máquinas de corte de hojas, etc. También se utilizaron en la mayoría de los primeros videojuegos y todavía se usan en juegos de cartas y de mesa como el solitario , el ajedrez , el mahjong , etc.

Los editores de gráficos 2D o programas de dibujo son software de nivel de aplicación para la creación de imágenes, diagramas e ilustraciones mediante la manipulación directa (a través del ratón, tableta gráfica o dispositivo similar) de primitivas gráficas 2D. Estos editores suelen proporcionar primitivas geométricas , así como imágenes digitales ; algunos incluso admiten modelos procedimentales. La ilustración se representa internamente como un modelo por capas, a menudo con una estructura jerárquica para facilitar la edición. Estos editores suelen generar archivos gráficos donde las capas y las primitivas se conservan por separado en su formato original. MacDraw , presentado en 1984 con la línea de ordenadores Macintosh , fue un ejemplo temprano de esta clase; ejemplos recientes son los productos comerciales Adobe Illustrator y CorelDRAW , y los editores gratuitos como xfig o Inkscape . También existen muchos editores de gráficos 2D especializados para ciertos tipos de dibujos, como diagramas eléctricos, electrónicos y VLSI, mapas topográficos, fuentes de ordenador, etc.

Los editores de imágenes se especializan en la manipulación de imágenes digitales , principalmente mediante dibujo/pintura a mano alzada y operaciones de procesamiento de señales . Suelen emplear un paradigma de pintura directa, donde el usuario controla lápices, pinceles y otros instrumentos artísticos virtuales para aplicar pintura a un lienzo virtual. Algunos editores de imágenes admiten un modelo de múltiples capas; sin embargo, para admitir operaciones de procesamiento de señales como el desenfoque, cada capa se representa normalmente como una imagen digital. Por lo tanto, cualquier primitiva geométrica proporcionada por el editor se convierte inmediatamente en píxeles y se pinta sobre el lienzo. El término editor de gráficos rasterizados se utiliza a veces para contrastar este enfoque con el de los editores generales, que también manejan gráficos vectoriales . Uno de los primeros editores de imágenes populares fue MacPaint de Apple , complemento de MacDraw . Ejemplos modernos son el editor gratuito GIMP y los productos comerciales Photoshop y Paint Shop Pro . Esta categoría también incluye muchos editores especializados para medicina, teledetección, fotografía digital , etc.

animación del desarrollo

Con el resurgimiento [ 2 ] : 8 de la animación 2D, los paquetes de software gratuitos y de pago se han vuelto ampliamente accesibles para aficionados y animadores profesionales. Con software como RETAS UbiArt Framework y Adobe After Effects , el coloreado y la composición se pueden realizar en menos tiempo.

Se han desarrollado varios enfoques [ 2 ] : 38 para ayudar y acelerar el proceso de animación digital 2D. Por ejemplo, al generar ilustraciones vectoriales en una herramienta como Adobe Flash, un artista puede emplear coloración automática y entrecruzamiento controlados por software .

Programas como Blender o Adobe Substance permiten al usuario realizar animación 3D, animación 2D o combinar ambas en su software, lo que permite experimentar con múltiples formas de animación. [ 3 ]

Véase también

Referencias

  1. Richard Paul, 1981, Manipuladores robóticos: matemáticas, programación y control  : el control informático de manipuladores robóticos , MIT Press, Cambridge, MA
  2. 1 2 Pile, John Jr. (mayo de 2013). Programación de gráficos 2D para juegos . Nueva York, NY: CRC Press. ISBN 978-1466501898.
  3. "blender.org - Página principal del proyecto Blender - Software de creación 3D libre y de código abierto" . blender.org . Consultado el 24 de abril de 2019 .