Ich verstehe, wie ein Künstler nahtlose Texturen von Hand erstellen würde, aber wie kann ein Computerprogramm diesen Prozess automatisieren? Software wie PixPlant ist dazu in der Lage, aber ich verstehe nicht, wie das geht.
Ich verstehe, wie ein Künstler nahtlose Texturen von Hand erstellen würde, aber wie kann ein Computerprogramm diesen Prozess automatisieren? Software wie PixPlant ist dazu in der Lage, aber ich verstehe nicht, wie das geht.
Antworten:
Für diese Arten von Algorithmen müssen Sie sich normalerweise auf mehrere Formen der Textur-Synthese verlassen. Das bedeutet nicht, dass Sie die gesamte Textur von Grund auf neu erstellen müssen. Sie können beispielsweise die Seiten der Textur neu generieren, um einen nahtlosen Effekt zu erzielen. Diese Antwort ist möglicherweise nicht vollständig, da es sich um ein großes Feld handelt und unterschiedliche Ansätze je nach Eingabebild unterschiedliche Wirksamkeit haben.
Als Künstler besteht eine Möglichkeit, nahtlose Texturen zu erstellen, darin, das Bild in zwei Richtungen zu versetzen. Dann können Sie die Kanten verwischen.
Dieses Beispiel ist nicht das beste, aber Sie können mit Ergebnissen mit bestimmten Texturarten anständige Ergebnisse erzielen.
Alternativ können Sie hier einen minimalen Schnitt am Rand ausführen, indem Sie das Bild mit sich selbst überlappen und dann die Differenz zwischen den beiden Bildern ermitteln.
Einer der beliebtesten Algorithmen ist das Quilten von Bildern . Die Idee dahinter ist, die Textur in eine Reihe von Patches aufzuteilen. Sie füllen die Textur aus, indem Sie zunächst zufällig eine Teilmenge der Patches aus Ihrer Gesamtmenge der Patches auswählen und diejenige mit der geringsten Fehlerquote auswählen, wenn Sie das Patch mit den benachbarten Patches überlappen. Anschließend führen Sie minimale Schnitte entlang der überlappenden Bereiche durch.
Meine Erfahrung mit diesem Algorithmus ist, dass er für viele Texturen mit runden Details gut funktioniert. Wenn die Textur beispielsweise Gras ist, kann sie eine schlechte Leistung erbringen. Das Ausmaß, in dem Sie die einzelnen Patches überlappen, hat auch einen großen Einfluss auf die Qualität. Je größer die Überlappung ist, desto besser ist die Übereinstimmung, aber desto wahrscheinlicher ist eine Wiederholung. Wenn die Teilmenge der Kandidaten-Patches zu groß ist, werden Sie wiederholt. Andernfalls finden Sie möglicherweise keine guten Übereinstimmungen.
Es gibt Erweiterungen dieses Algorithmus, einschließlich PatchMatch (das in Photoshop verwendet wurde).
Eine andere Möglichkeit, nahtlose Texturen zu verarbeiten, besteht darin, den Farbverlauf zu entfernen. Die Poisson-Bildbearbeitung kann dabei helfen, wenn Sie Ihr Bild aufteilen und die verschiedenen Teile als Vordergrund- und Hintergrundobjekte verwenden.
Ein einfacherer Ansatz besteht darin, eine Niederfrequenz (z. B. eine Mipmap) Ihrer Textur zu erstellen und dann den Farbverlauf Ihres Bildes zu entfernen. Natürlich sind Hochfrequenzdaten nicht nahtlos, aber Sie können dies mit anderen Algorithmen entfernen.
Sie können auch verschiedene Computer-Vision-Ansätze verwenden. Die Idee hier wäre, dass Sie wichtige Funktionen intakt halten, wenn Sie versuchen, Ihre Texturen zu kacheln. Wenn sich beispielsweise eine Schmutzstruktur mit einem Stein am Bildrand befindet, können Sie diesen Stein mithilfe verschiedener Feature-Detektoren wie der Differenz der Gaußschen Werte identifizieren und entfernen, bevor Sie die Kacheln durchführen. Möglicherweise müssen Sie den Rest der Textur ausfüllen, in der der Stein entfernt wurde. Dies kann jedoch dazu beitragen, das Bild nahtloser zu gestalten.