Gráficos 2D por computadora

Ajustar Compartir Imprimir Citar
Generación informática de imágenes digitales

Gráficos por computadora en 2D es la generación de imágenes digitales basada en computadora, principalmente a partir de modelos bidimensionales (como modelos geométricos en 2D, texto e imágenes digitales) y mediante técnicas específicas para ellos. Puede referirse a la rama de la informática que comprende tales técnicas oa los propios modelos.

Sprites gráficos (izquierda) y máscaras

Los gráficos 2D por computadora se utilizan principalmente en aplicaciones que se desarrollaron originalmente sobre 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, pero un artefacto independiente con valor semántico agregado; 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 es más parecido a la fotografía que a la tipografía).

En muchos dominios, como la autoedición, la ingeniería y los negocios, la descripción de un documento basada en técnicas de gráficos por computadora en 2D puede ser mucho más pequeña que la imagen digital correspondiente, a menudo por un factor de 1/1000 o más. Esta representación también es más flexible, ya que se puede representar a diferentes resoluciones para adaptarse a diferentes dispositivos de salida. Por estas razones, los documentos y las ilustraciones a menudo se almacenan o transmiten como archivos gráficos 2D.

Los gráficos por computadora en 2D comenzaron 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 X Window System fueron desarrollos históricos en el campo.

Técnicas

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

Geometría

Una traducción mueve cada punto de una figura o un espacio por la misma cantidad en una dirección dada.
Una reflexión contra un eje seguido de una reflexión contra un segundo eje paralelo al primero resulta en un movimiento total que es una traducción.

En la geometría euclidiana, una traducción (geometría) mueve cada punto una distancia constante en una dirección especificada. Una traducción se puede describir como un movimiento rígido: otros movimientos rígidos incluyen rotaciones y reflexiones. Una traducción también puede ser interpretada como la adición de un vector constante a cada punto, o como cambiar el origen del sistema de coordenadas. A operador de traducción es un operador Tδ δ {displaystyle T_{mathbf {delta} tales que Tδ δ 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 Tv funcionará como T v(p) = p + v.

Si T es una traducción, entonces la imagen de un subconjunto A bajo la función T es la traducción de A por T. La traducción de A por Tv a menudo se escribe A + v.

En un espacio euclidiano, cualquier traslación es una isometría. El conjunto de todas las traslaciones forma el grupo de traslación T, que es isomorfo al propio espacio, 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) / T. O()n).

Traducción

Dado que una traslación es una transformación afín pero no una transformación 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 = (wx, w y, wz) usando 4 coordenadas homogéneas como w = (wx, wy, wz, 1).

Para trasladar un objeto por un vector v, cada vector homogéneo p (escrito en coordenadas homogéneas) necesitaría ser multiplicado por esta matriz de traducción:

Tv=[100vx010vSí.001vz0001]{displaystyle T_{mathbf {v} }={begin{bmatrix}1 unos pocos0 tardev_{x} rest1 tendrían que estar bien.

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

Tvp=[100vx010vSí.001vz0001][pxpSí.pz1]=[px+vxpSí.+vSí.pz+vz1]=p+v{cH} {c}c}c}c}c}c}c} {c}c}c}c}c}c}c}c}cH0} {cH0} {cH0} {c}b} {c}c}cH0}b} {b} {b}b}c}c}c}c}c}c}c}c}b}b}c}c}c}c}c}c}b}c}c}c}c}c}c}c}c}b}c}c}c}c}c}c}c}c}c}c}c}c}c}c}c}c}c}c}c}c}c}c}c}c}c} {p} +mathbf {v}

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

Tv− − 1=T− − v.{displaystyle T_{mathbf {v} } {-1}=T_{-mathbf {v} }

Del mismo modo, el producto de las matrices de traslación se obtiene sumando los vectores:

TuTv=Tu+v.{displaystyle T_{mathbf}T_{mathbf {v} }=T_{mathbf {u} +mathbf {v} }.

Debido a que la suma de vectores es conmutativa, la multiplicación de matrices de traslación también es conmutativa (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=[#⁡ ⁡ Silencio Silencio − − pecado⁡ ⁡ Silencio Silencio pecado⁡ ⁡ Silencio Silencio #⁡ ⁡ Silencio Silencio ]{displaystyle R={begin{bmatrix}cos theta &-sin theta \sin theta &cos theta \end{bmatrix}}}

rota puntos en el plano cartesiano xy en sentido contrario a las agujas del reloj en un ángulo θ con respecto al origen del sistema de coordenadas cartesianas. Para realizar la rotación usando una matriz de rotación R, la posición de cada punto debe estar representada por un vector columna v, que contiene las coordenadas del punto. Un vector rotado se obtiene usando la multiplicación de matrices Rv. Dado que la multiplicación de matrices no tiene efecto sobre el vector cero (es decir, sobre las coordenadas del origen), las matrices de rotación solo se pueden usar para describir rotaciones sobre el origen del sistema de coordenadas.

Las matrices de rotación brindan una descripción algebraica simple de tales rotaciones y se usan ampliamente para cálculos en geometría, física y gráficos por computadora. En un espacio bidimensional, una rotación puede describirse simplemente mediante un ángulo θ de rotación, pero también puede representarse mediante las 4 entradas de una matriz de rotación con 2 filas y 2 columnas. En el espacio tridimensional, cada rotación se puede interpretar como una rotación de un ángulo dado alrededor de un solo eje fijo de rotación (ver 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 por 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 una noción de un desplazamiento de rotación, que puede representarse mediante una matriz, pero no un eje o ángulo único 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=R− − 1,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 grupo ortogonal especial SO(n).

En dos dimensiones
Una rotación en sentido contrario de un vector a través del ángulo Silencio. El vector se alinea inicialmente con el eje x.

En dos dimensiones, toda matriz de rotación tiene la siguiente forma:

R()Silencio Silencio )=[#⁡ ⁡ Silencio Silencio − − pecado⁡ ⁡ Silencio Silencio pecado⁡ ⁡ Silencio Silencio #⁡ ⁡ Silencio Silencio ]{displaystyle R(theta)={begin{bmatrix}cos theta &sin theta\\sin theta > theta\end{bmatrix}}}}.

Esto rota vectores columna por medio de la siguiente multiplicación de matrices:

[x.Sí..]=[#⁡ ⁡ Silencio Silencio − − pecado⁡ ⁡ Silencio Silencio pecado⁡ ⁡ Silencio Silencio #⁡ ⁡ Silencio Silencio ][xSí.]{fnMicrosoft Sans Serif}={begin{bmatrix}cos} theta &-sin theta \sin theta &cos theta {begin{bmatrix}x\\\\\\fn\\fn}}}.

Entonces, las coordenadas (x#39;,') del punto (x,y) después de la rotación son:

x.=x#⁡ ⁡ Silencio Silencio − − Sí.pecado⁡ ⁡ Silencio Silencio {displaystyle x'=xcos theta -ysin theta ,},
Sí..=xpecado⁡ ⁡ Silencio Silencio +Sí.#⁡ ⁡ Silencio Silencio {displaystyle y'=xsin theta +ycos theta ,}.

La dirección de rotación del vector es en sentido contrario a las agujas del reloj si θ es positivo (por ejemplo, 90°) y en el sentido de las agujas del reloj si θ es negativo (por ejemplo, -90°).

R()− − Silencio Silencio )=[#⁡ ⁡ Silencio Silencio pecado⁡ ⁡ Silencio Silencio − − pecado⁡ ⁡ Silencio Silencio #⁡ ⁡ Silencio Silencio ]{displaystyle R(-theta)={begin{bmatrix}cos theta &sin theta \-sin theta &cos theta\end{bmatrix},}.
Orientación no estándar del sistema de coordenadas
Una rotación a través del ángulo Silencio con ejes no estándar

Si se utiliza un sistema de coordenadas cartesianas derechas estándar, con el eje x a la derecha y el eje y hacia arriba, la rotación R(θ ) es en sentido antihorario. Si se utiliza un sistema de coordenadas cartesianas para zurdos, con x dirigido hacia la derecha pero y dirigido hacia abajo, R(θ) está en el sentido de las agujas del reloj. Estas orientaciones no estándar rara vez se usan en matemáticas, pero son comunes en gráficos de computadora 2D, que a menudo tienen el origen en la esquina superior izquierda y el eje y hacia abajo en la pantalla o página.

Consulte a continuación otras convenciones alternativas que pueden cambiar el sentido de la rotación producida por una matriz de rotación.

Rotaciones comunes

Particularmente útiles son las matrices para rotaciones de 90° y 180°:

R()90∘ ∘ )=[0− − 110]{displaystyle R(90^{circ })={begin{bmatrix}0 limit-1[3pt]1 convict0\\end{bmatrix}} (Rotación en sentido contrario de 90°)
R()180∘ ∘ )=[− − 100− − 1]{displaystyle R(180^{circ })={begin{bmatrix}-1 implica0[3pt]0 convict-1\\end{bmatrix}} (Rotación de 180° en cualquier dirección – medio giro)
R()270∘ ∘ )=[01− − 10]{displaystyle R(270^{circ })={begin{bmatrix}0 limit1[3pt]-1 implica0\end{bmatrix}} (270° rotación en sentido contrario, igual que una rotación de 90° en el reloj)

En geometría euclidiana, escala uniforme (escala isotrópica, dilatación homogénea, homotecia) es una transformación lineal que se agranda (aumenta) o se encoge (disminuye) los objetos por un factor de escala que es el mismo en todas las direcciones. El resultado de la escala uniforme es similar (en el sentido geométrico) al original. Normalmente se permite un factor de escala de 1, por lo que las formas congruentes también se clasifican como similares. (Algunos libros de texto escolares excluyen específicamente esta posibilidad, al igual que algunos excluyen que los cuadrados sean rectángulos o los círculos sean elipses).

Más general es escalar con un factor de escala separado para cada dirección del eje. Escala no uniforme (escala anisotrópica, dilatación no homogénea) se obtiene cuando al menos uno de los factores de escala es diferente de los demás; un caso especial es escalado direccional o estiramiento (en una dirección). La escala no uniforme cambia la forma del objeto; p.ej. un cuadrado puede convertirse en un rectángulo o en un paralelogramo si los lados del cuadrado no son paralelos a los ejes de escala (los ángulos entre líneas paralelas a los ejes se conservan, pero no todos los ángulos).

Escalado

Una escala se puede representar mediante una matriz de escala. Para escalar un objeto por un vector v = (vx, vy, vz), cada punto p = (px, py, pz) tendría que multiplicarse con esta matriz de escala:

Sv=[vx000vSí.000vz].{displaystyle S_{v}={begin{bmatrix}v_{x} limitada0 limitada0 limitadav_{y} limit0 Pulsando0 limit0duc_{z}\end{bmatrix}}}}

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

Svp=[vx000vSí.000vz][pxpSí.pz]=[vxpxvSí.pSí.vzpz].{displaystyle {fnMicrosoft Sans} {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {cH} {f} {f} {f}f} {fnK}f} {cH0} {f}cH0} {cH0} {cH00}cH0}} {f} {cH0}cH0}cH0}cH00}cH00}cH00}cH00}cH00}cH00}cH00}cH00}cH00}cH00}cH00}}cH00}cH00}cH00}cH00}}cH00}cH00}cH00}cH00}cH00}cH00}cH00}cH00}cH00}cH00}cH00}}cH00}c

Tal escalado cambia el diámetro de un objeto por un factor entre los factores de escala, el área por un factor entre el producto más pequeño y el más grande de dos factores de escala, y el volumen por el producto de los tres.

La escala es uniforme si y solo si los factores de escala son iguales (vx = vy = vz). Si todos excepto uno de los factores de escala son iguales a 1, tenemos una escala direccional.

En el caso de que vx = vy = vz = k, la escala también es llamado ampliación o dilatación por un factor k, aumentando el área por un factor k2 y el volumen por un factor k3.

La escala en el sentido más general es cualquier transformación afín con una matriz diagonalizable. Incluye el caso de que las tres direcciones de escala no sean perpendiculares. Incluye también el caso de que uno o más factores de escala sean iguales a cero (proyección), y el caso de uno o más factores de escala negativos. Este último corresponde a una combinación de escalado propiamente dicho y una especie de reflexión: a lo largo de líneas en una dirección particular tomamos la reflexión en el punto de intersección con un plano que no necesita ser perpendicular; por lo tanto, es más general que la reflexión ordinaria en el plano.

Usando coordenadas homogéneas

En la geometría proyectiva, a menudo utilizada en gráficos por computadora, los puntos se representan usando coordenadas homogéneas. Para escalar un objeto por un vector v = (vx, vy, vz), cada vector de coordenadas homogéneo p = (px, py, pz, 1) tendría que multiplicarse con esta matriz de transformación proyectiva:

Sv=[vx0000vSí.0000vz00001].{displaystyle S_{v}={begin{bmatrix}v_{x} limit0 unos pocos0 unos pocosv_{y}0 unos pocos0 unos pocosv_{z} implica0 cada uno de los dos, cada uno de los dos, dos, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres, tres,

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

Svp=[vx0000vSí.0000vz00001][pxpSí.pz1]=[vxpxvSí.pSí.vzpz1].{displaystyle {fnMicrosoft Sans Serif} {fnMicrosoft Sans Serif} {cH} {cH} {cH} {cH}} {c}cH0} {cH0} {cH0} {cc} {cH0} {ccH0}cH0} {cH0}c}cH0}}cH0}cH0}ccH00}cH00}cH00} {ccH00}cccH00}ccH00}cccH00}}ccccccH00}cccccH00}ccH00}ccH00}cH00}c}cH00}cH00}}cH00}cccH00}cH00}c}ccc

Dado que el último componente de una coordenada homogénea se puede ver como el denominador de los otros tres componentes, se puede lograr una escala uniforme por un factor común s (escala uniforme) usando esta matriz de escala:

Sv=[1000010000100001s].{displaystyle S_{v}={begin{bmatrix}1 tendría0 ventaja0 correspond0 correspond0 implica0 duplica0 {1}end{bmatrix}}}

Para cada vector p = (px, py, pz, 1) tendríamos

Svp=[1000010000100001s][pxpSí.pz1]=[pxpSí.pz1s]{displaystyle S_{v}p={begin{bmatrix}1 tendría0 ventaja0 correspond0 correspond0 correspond0 {1}{s}end{bmatrix} {begin{bmatrix}p_{x}p_{y}p_{z}1end{bmatrix}={begin{bmatrix}p_{x}p_{y}p_{y}p_{z}\\\\p}\\p}\\p}\p}p}p}p}p}p}p}p}p}\p}p}p}p}p}p}p}p}p}p}p}p}p}p}p}p}p}p}p}p}p}\\\\p\\\p}p}p}p}p}p}p}p}p}p}p}p}p} {1} {}end{bmatrix}}

que sería homogeneizado a

[spxspSí.spz1].{fnMicrosoftware {fnMicrosoft Sans Serif}\sp_\sp_{z}1end{bmatrix}}}}

Pintura directa

Una manera conveniente de crear una imagen compleja es comenzar con un "lienzo" mapa ráster (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" simples parches de color en él, en un orden apropiado. En particular, el lienzo puede ser la memoria intermedia de fotogramas para una pantalla de ordenador.

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

Modelos de color extendidos

El texto, las formas y las líneas se representan con un color especificado por el cliente. Muchas bibliotecas y tarjetas proporcionan gradientes de color, que son útiles para la generación de fondos, efectos de sombra, etc. que varían suavemente (consulte también el sombreado de Gouraud). Los colores de los píxeles también se pueden tomar de una textura, p. una imagen digital (emulando así los screentones frotados y la legendaria pintura a cuadros que solía estar disponible solo en dibujos animados).

Al pintar un píxel con un color dado, generalmente se reemplaza su color anterior. Sin embargo, muchos sistemas admiten pintar con colores transparentes y translúcidos, que solo modifican los valores de píxeles anteriores. Los dos colores también se pueden combinar de formas más complejas, p. calculando su bit a bit exclusivo o. Esta técnica se conoce como inversión de color o inversión de color, y se usa a menudo en interfaces gráficas de usuario para resaltar, dibujar con bandas elásticas y otras pinturas volátiles, ya que volver a pintar las mismas formas con el mismo color restaurarán los valores de píxeles originales.

Capas

Un personaje animado 2D compuesto con fondos 3D usando capas

Los modelos que se utilizan en los gráficos 2D por computadora generalmente no brindan formas tridimensionales o fenómenos ópticos tridimensionales como iluminación, sombras, reflexión, refracción, etc. Sin embargo, generalmente pueden modelar múltiples capas (conceptualmente de tinta, papel o película; opaco, translúcido o transparente, apilados en un orden específico. El orden generalmente se define por un solo número (la profundidad de la capa o la distancia del espectador).

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

Los modelos en capas también se utilizan para permitir que el usuario suprima información no deseada al ver o imprimir un documento, p. carreteras o vías férreas de un mapa, ciertas capas de proceso de un diagrama de circuito integrado o anotaciones manuales de una carta comercial.

En un modelo basado en capas, la imagen de destino se produce "pintando" o "pegar" cada capa, en orden decreciente de profundidad, en el lienzo virtual. Conceptualmente, cada capa se representa primero por sí sola, produciendo una imagen digital con la resolución deseada que luego se pinta sobre el lienzo, píxel por píxel. Por supuesto, no es necesario renderizar las partes completamente transparentes de una capa. La renderización y la pintura se pueden realizar en paralelo, es decir, cada píxel de capa se puede pintar en el lienzo tan pronto como se produzca mediante el procedimiento de renderización.

Las capas que consisten en objetos geométricos complejos (como texto o polilíneas) se pueden dividir 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 crear artefactos de alias no deseados donde dos elementos se superponen al mismo píxel.

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

Hardware

Las pantallas de tarjetas gráficas de computadora modernas utilizan casi abrumadoramente técnicas de trama, dividiendo la pantalla en una cuadrícula rectangular de píxeles, debido al costo relativamente bajo del hardware de video basado en trama en comparación con el hardware de gráficos vectoriales. La mayoría del hardware gráfico tiene soporte interno para operaciones de blitting o dibujo de sprites. Un coprocesador dedicado al blitting se conoce como chip Blitter.

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

Software

Muchas interfaces gráficas de usuario (GUI), incluidos macOS, Microsoft Windows o el sistema X Window, se basan principalmente en conceptos gráficos 2D. Dicho software proporciona un entorno visual para interactuar con la computadora y, por lo general, incluye algún tipo de administrador de ventanas para ayudar al usuario a distinguir conceptualmente entre diferentes aplicaciones. La interfaz de usuario dentro de las aplicaciones de software individuales también suele ser de naturaleza 2D, debido en parte al hecho de que los dispositivos de entrada más comunes, como el mouse, están restringidos a dos dimensiones de movimiento.

Los gráficos 2D son muy importantes en los periféricos de control como impresoras, plotters, cortadoras de hojas, etc. También se usaban en la mayoría de los primeros videojuegos; y todavía se utilizan para juegos de cartas y de mesa como el solitario, el ajedrez, el mahjongg, 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 mouse, la tableta gráfica o un dispositivo similar) de primitivos gráficos de computadora 2D.. Estos editores generalmente proporcionan primitivos geométricos además de imágenes digitales; y algunos incluso admiten modelos procedimentales. La ilustración generalmente se representa internamente como un modelo en capas, a menudo con una estructura jerárquica para facilitar la edición. Estos editores generalmente generan archivos de gráficos en los que las capas y las primitivas se conservan por separado en su forma original. MacDraw, introducido en 1984 con la línea de computadoras 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 cierto tipo de dibujos como diagramas eléctricos, electrónicos y VLSI, mapas topográficos, fuentes de computadora, etc.

Los editores de imágenes están especializados en la manipulación de imágenes digitales, principalmente mediante operaciones de dibujo/pintura a mano alzada y procesamiento de señales. Por lo general, utilizan un paradigma de pintura directa, en el que el usuario controla bolígrafos virtuales, pinceles y otros instrumentos artísticos a mano alzada 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 normalmente se representa como una imagen digital. Por lo tanto, cualquier primitiva geométrica proporcionada por el editor se convierte inmediatamente en píxeles y se pinta en el lienzo. El nombre editor de gráficos de trama se usa 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, compañero de MacDraw. Los ejemplos modernos son el editor GIMP gratuito y los productos comerciales Photoshop y Paint Shop Pro. Esta clase también incluye muchos editores especializados en medicina, teledetección, fotografía digital, etc.

Animación de desarrollo

Con el resurgimiento de la animación en 2D, los paquetes de software gratuitos y propietarios están ampliamente disponibles para animadores aficionados y profesionales. El problema principal con la animación 2D son los requisitos de mano de obra. Con software como RETAS UbiArt Framework y Adobe After Effects, la coloración y la composición se pueden realizar en menos tiempo.

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

Los programas como Blender permiten al usuario realizar animaciones en 3D, animaciones en 2D o combinar ambas en su software, lo que permite experimentar con múltiples formas de animación.