2010-06-18 5 views
12

Ich versuche eine Anwendung zu schreiben, mit der Bilder erstellt werden können, die wie Gemälde mit simulierten Pinselstrichen aussehen. Gibt es gute Quellen für einfache Möglichkeiten, Pinselstriche zu simulieren? Wenn Sie beispielsweise eine Liste von Mauspositionen angeben, mit denen der Benutzer die Maus durchgezogen hat, eine Pinselbreite und eine Pinselstruktur, wie kann ich bestimmen, was auf der Zeichenfläche gezeichnet werden soll?Pinselstriche für Malanwendung simulieren

Ich habe versucht, die Pinsel Textur in die Richtung der Mausbewegung Angeln und tupfen mehrere Pinsel Textur Bilder entlang des Pfades, aber es sieht nicht gut aus. Ich denke, ich vermisse etwas, wo die Pinselstruktur schrumpfen und an Ecken wachsen sollte.

Alle einfach zu folgen Links werden geschätzt. Ich habe komplexe akademische Arbeiten zur Simulation von z. Ölfarben, aber ich möchte nur einen grundlegenden Algorithmus verwenden, der OK-Ergebnisse erzeugt, wenn möglich.

+0

Können Sie neben der Koordinatenliste auch Zeitstempel erhalten? Dadurch können Sie die Läufe, bei denen der Benutzer langsam oder zögerlich gezeichnet hat, verdunkeln. – genpfault

+0

Um das Verhalten eines Pinsels realistisch zu simulieren, müssen Sie zumindest folgende Informationen kennen: Koordinatenliste, Druck, Geschwindigkeit und Stift/Pinselwinkel. Eine normale Maus kann nur Daten über Koordinatenliste und Geschwindigkeit sammeln; Sie benötigen eine Wacom-Tablette, um Druck und vielleicht Winkel zu sammeln. Vielleicht möchten Sie sehen, wie "Inkscape" sein Pinsel-Werkzeug macht, was eine ziemlich gute Arbeit für eine Maus-Zeichnung ist. –

Antwort

5

Es gibt eine große Literatur zum nicht-photorealistischen Rendering. Die wichtigsten Bücher sind "Non-Photorealistic Computer Graphics" von Strothotte & Schlechtweg und "Non-photorealistic Rendering" von Gooch & Gooch. Sie diskutieren Pinselstriche. Es gibt mehrere Arbeiten, die sich mit simulierten Pinselstrichen beschäftigen. Siehe zum Beispiel "Simulating Artistic Brushstrokes Using Interval Splines".

+2

Der Link für Gooch ist kaputt. [Alternativer Link] (http://www.cs.northwestern.edu/~ago820/book.html) –

0

Die Art und Weise, wie ich mir vorstellen kann, wäre, an jedem Punkt der Linie die Stärke des Pinsels herauszufinden und viele gleichförmige Texturen darüber zu legen. Jede Textur würde einen Alpha-Wert haben, der dem "Wie hart" der Pinsel entspricht, der an dieser Stelle auf die Leinwand gedrückt wird. Die Funktion, um herauszufinden, wie stark der Pinsel nach unten drücken würde, müsste wahrscheinlich mit der Eingabe korreliert werden.

Wenn Sie ein Werkzeug wie Photoshop oder GIMP verwenden und beobachten, wie es das Pinselwerkzeug implementiert, sollte es ziemlich einfach sein, etwas in der Nähe zu simulieren.

+0

Ich habe wirklich kopiert, was Gimp im Moment hat und Gimp scheint überhaupt keine Farbsimulation zu machen. Ich habe bereits Einstellungen für Deckkraft und Abstand und der Winkel des Strichs folgt der Maus. Das Abbiegen sieht nicht richtig aus, da sich die Pinselform nicht verändert, genau wie in Gimp. – DrRobot

6

Hier ist ein Klassiker von 1989 - Dynadraw, von Paul Haeberli. Es verwendet ein einfaches dynamisches Modell, um die rohen Mauspositionen zu füllen.

Während die Striche inkrementell als Polygone gezeichnet werden, sollten Sie in der Lage sein, die vom dynamischen Filter erzeugten Punkte zu verwenden, um Kopien Ihrer Pinselstruktur zu platzieren.

+0

Danke, das sieht interessant aus! Ich bin gespannt, ob es einen ähnlichen Algorithmus speziell für Malstriche gibt. – DrRobot

+0

@DrRobot, ich bin mir nicht sicher, was du damit meinst.Dynadraw * ist * speziell für Malstriche, nein? – brainjam

+0

Ups, ich dachte, es wäre eine Simulation eines stiftähnlichen Werkzeugs ...: -/Danke. – DrRobot

0

Nicht genau das, was Sie verlangen, aber ich habe festgestellt, dass Anwendungen, die Linienglättung verwenden (wie Adobe Ideen auf dem iPad oder Doozla auf dem Mac) für realistischere und Augen erfreuliche Pinselstriche, wie Sie Die nicht-natürlichen "jaggies", die mit dem Tracking von Mausbewegungen verbunden sind, werden nicht perfekt.