2010-06-18 22 views
12

Estoy tratando de escribir una aplicación que se puede utilizar para crear imágenes que se parecen a las pinturas utilizando pinceladas simuladas. ¿Hay alguna buena fuente para formas simples de simular trazos de pincel? Por ejemplo, dada una lista de posiciones del mouse por las que el usuario ha arrastrado el mouse, un ancho de brocha y una textura de brocha, ¿cómo determino qué dibujar en el lienzo?Simulando trazos de pincel para la aplicación de pintura

He intentado inclinar la textura del pincel en la dirección del movimiento del mouse y pintar varias imágenes de textura del pincel a lo largo de la ruta, pero no se ve muy bien. Creo que me falta algo en que la textura del pincel se contraiga y crezca en las esquinas.

Cualquier enlace fácil de seguir sería apreciado. He encontrado artículos académicos complejos sobre cómo simular, p. pinturas al óleo, pero solo quiero un algoritmo básico para usar que produzca buenos resultados si es posible.

+0

Además de la lista de coordenadas, ¿puede obtener marcas de tiempo? Eso podría permitirle oscurecer las carreras en las que el usuario estaba dibujando lentamente o titubeando. – genpfault

+0

para simular correctamente un comportamiento de pincel de forma realista, al menos necesitará conocer esta información: lista de coordenadas, presión, velocidad y ángulo de pluma/pincel. Un mouse normal solo puede recopilar datos sobre la lista de coordenadas y la velocidad; necesitas una tableta wacom para reunir la presión y tal vez el ángulo. Es posible que desee ver cómo "Inkscape" hace su herramienta de pincel, que hace un buen trabajo para un dibujo solo con el mouse. –

Respuesta

5

Hay una gran cantidad de literatura sobre la representación no fotorrealista. Los libros principales son "Non-Photorealistic Computer Graphics" por Strothotte & Schlechtweg y "Non-photorealistic Rendering" por Gooch & Gooch. Discuten los trazos de pincel. Hay varios artículos que tratan sobre trazos de pincel simulados. Ver por ejemplo "Simulating Artistic Brushstrokes Using Interval Splines".

+2

El enlace de Gooch está roto. [Enlace alternativo] (http://www.cs.northwestern.edu/~ago820/book.html) –

0

La forma en que puedo pensar sería descubrir la fuerza del pincel en cada punto de la línea y superponer muchas texturas uniformes sobre él. Cada textura tendría un valor alfa correspondiente a "qué tan duro" está presionando el pincel sobre el lienzo en esa ubicación. La función de averiguar qué tan duro estaría presionando el cepillo probablemente tendría que correlacionarse con la entrada.

Si va a una herramienta como Photoshop o GIMP, y observa cómo implementa la herramienta Pincel, debería ser bastante fácil simular algo cercano.

+0

Realmente he copiado lo que tiene GIMP en este momento y GIMP no parece hacer simulación de pintura en absoluto. Ya tengo los ajustes de opacidad y espaciado y el ángulo del trazo sigue al mouse. Las curvas no se ven bien ya que la forma del pincel no cambia, al igual que en Gimp. – DrRobot

6

Aquí hay un clásico de 1989 - Dynadraw, por Paul Haeberli. Utiliza un modelo dinámico simple para rellenar las posiciones sin formato del mouse.

Mientras que los trazos se dibujan incrementalmente como polígonos, debe poder utilizar los puntos generados por el filtro dinámico para colocar copias de la textura de su pincel.

+0

Gracias, esto se ve interesante! Tengo curiosidad si hay un algoritmo similar específicamente para trazos de pintura. – DrRobot

+0

@DrRobot, no estoy seguro de lo que quieres decir con eso.Dynadraw * es * específicamente para trazos de pintura, ¿no? – brainjam

+0

Vaya, pensé que era una simulación de una herramienta similar a un bolígrafo ...: - Gracias. – DrRobot

0

No es exactamente lo que está pidiendo, pero he encontrado que las aplicaciones que usan suavizado de línea (como Adobe Ideas en el iPad o Doozla en la Mac) crean pinceladas más realistas y agradables, como usted no obtenga los "jaggies" no naturales asociados con el seguimiento perfecto de los movimientos del mouse.

Cuestiones relacionadas