2010-06-18 15 views
12

sto cercando di scrivere un'applicazione che può essere utilizzata per creare immagini che sembrano dipinti con pennellate simulate. Esistono buone fonti per semplici modi di simulare le pennellate? Ad esempio, dato un elenco di posizioni del mouse che l'utente ha trascinato con il mouse, una larghezza del pennello e una texture del pennello, come faccio a determinare cosa disegnare sulla tela?Simulazione pennellate per l'applicazione della pittura

Ho provato inclinando la texture pennello nella direzione del movimento del mouse e tamponando diverse immagini della spazzola lungo il percorso, ma non sembra fantastico. Penso che mi manchi qualcosa in cui la texture del pennello dovrebbe ridursi e crescere negli angoli.

Sarebbe gradito qualsiasi link semplice da seguire. Ho trovato documenti accademici complessi sulla simulazione, ad es. vernici ad olio ma voglio solo un algoritmo di base da usare che produce risultati OK se possibile.

+0

Oltre all'elenco delle coordinate, è possibile ottenere gli orari? Ciò potrebbe farti oscurare le corse in cui l'utente stava disegnando lentamente o esitando. – genpfault

+0

per simulare correttamente un comportamento del pennello in modo realistico, è necessario almeno conoscere queste informazioni: elenco delle coordinate, pressione, velocità e angolo penna/pennello. Un mouse normale può solo raccogliere dati sull'elenco delle coordinate e sulla velocità; hai bisogno di una tavoletta wacom per raccogliere pressione e forse angolazione. Si potrebbe voler vedere come "Inkscape" fa il suo strumento di pennello, che fa un buon lavoro per un disegno solo per il mouse. –

risposta

5

C'è una grande letteratura sul rendering non fotorealistico. I libri principali sono "Non-Photorealistic Computer Graphics" di Strothotte & Schlechtweg e "Non-photorealistic Rendering" di Gooch & Gooch. Discutono di pennellate. Ci sono molti documenti che trattano di pennellate simulate. Vedere ad esempio "Simulating Artistic Brushstrokes Using Interval Splines".

+2

Il link per Gooch è rotto. [Link alternativo] (http://www.cs.northwestern.edu/~ago820/book.html) –

0

Il modo posso pensare sarebbe per capire la forza della spazzola a ciascun punto della linea, e strati molti texture uniformi su di esso. Ogni trama avrebbe un valore alfa corrispondente a "quanto è duro" il pennello sta spingendo verso il basso sulla tela in quella posizione. La funzione per capire quanto sia difficile spingere il pennello dovrebbe probabilmente essere correlata con l'input.

Se si utilizza uno strumento come Photoshop o GIMP e si osserva come implementa lo strumento pennello, dovrebbe essere abbastanza facile simulare qualcosa vicino ad esso.

+0

Ho davvero copiato ciò che ha Gimp al momento e GIMP sembra non simulare bene la simulazione della vernice. Ho già ottenuto le impostazioni per opacità e spaziatura e l'angolo del tratto segue il mouse. La curvatura non sembra corretta poiché la forma del pennello non cambia, proprio come in Gimp. – DrRobot

6

Ecco un classico 1.989-Dynadraw, da Paul Haeberli. Usa un semplice modello dinamico per riempire le posizioni del mouse in modo uniforme.

Mentre i tratti sono disegnati in modo incrementale come poligoni, si dovrebbe essere in grado di utilizzare i punti generati dal filtro dinamico per posizionare le copie del pennello texture.

+0

Grazie, sembra interessante! Sono curioso di sapere se esiste un algoritmo simile per i tratti di vernice. – DrRobot

+0

@DrRobot, non sono sicuro di cosa intendi con questo.Dynadraw * è * specificamente per i tratti di vernice, no? – brainjam

+0

Oops, ho pensato che fosse una simulazione di uno strumento simile a una penna ...: -/Grazie. – DrRobot

0

Non esattamente quello che stai chiedendo, ma ho trovato che le applicazioni che utilizzano il livellamento della linea (come Adobe Ideas su iPad o Doozla su Mac) rendono più realistiche e piacevoli pennellate, mentre non ottenere i "rigonfiamenti" non naturali associati al rilevamento dei movimenti del mouse perfettamente.

Problemi correlati