Pigmentmischtechnik für digitales Malen
(scrtwpns.com)- Die RGB-Interpolation beim digitalen Malen kann anders aussehen als das Mischen echter Farben; Mixbox ist eine Bibliothek, die dies durch pigmentbasiertes Mischen verbessern soll
- Entwickler müssen wie bei einem herkömmlichen
lerpnur zwei Farben und das Mischverhältnis übergeben; Mixbox gibt die Ergebnisfarbe als RGB-Eingabe·RGB-Ausgabe zurück - Mixbox 2.0 läuft unter C++, Python, Javascript, GLSL, HLSL, C#, Java, Rust und unterstützt die Umgebungen Unity, Android Studio, P5js, WebGL und Godot
- Ziel ist es, bei Smudge, Texture-Brush-Layering und auf dunklen Farben basierenden Verläufen trübe Mischungen zu reduzieren und reichere Zwischentöne sowie Farbveränderungen zu erzeugen
- Da es sich nicht um ein vom Nutzer direkt installierbares Plug-in, sondern um Code für einen Blending-Modus handelt, ist für den Einsatz in echten Malwerkzeugen eine Integration durch die jeweiligen Softwareentwickler erforderlich
Das Problem digitaler Farben, die sich nicht wie echte Farbe mischen
- Die Farbmischung in gewöhnlicher Malsoftware funktioniert nicht wie echte Pigmente
- Mixbox ist eine Bibliothek, um eine Farbmischung, die echter Farbe nahekommt, im digitalen Malen umzusetzen
- Intern behandelt sie Farben wie Pigmente auf Basis von Kubelka & Munk, bietet die API jedoch in einer einfachen Form mit RGB-Eingabe und RGB-Ausgabe an
- Weiterführende Materialien:
Farbeffekte näher an echter Farbe
-
Reichhaltige Verläufe mit Farbverschiebungen
- Es lassen sich natürliche und lebendige Mischfarben erzeugen
- Bei Pinselstrichen ist eine reichhaltigere Abstufung zu erwarten
- Smudge-Pinsel können genutzt werden, um statt trüber Mischungen natürliche Verläufe zu erzeugen
- Selbst beim Layering von Texturpinselstrichen werden die Farben nicht entsättigt, sondern erzeugen reichhaltige und lebendige Abstufungen
- Allein mit dem Stiftdruck lassen sich tiefe Verläufe erzeugen, die von dunklen Farben ausgehen
Anwendungsfälle und Demos
- Mixbox wird als Kernelement von Rebelle verwendet, einem Malwerkzeug mit Funktionen für digitale Öl- und Aquarellmalerei
- Im Flip-Fluids-Add-on für Blender wird Mixbox für eine realistische Farbdarstellung von Flüssigkeiten eingesetzt
- Es gibt einen Demo-Painter zum direkten Ausprobieren
- Außerdem stehen im Browser laufende Coding-Beispiele bereit, mit denen sich Grafik oder Code direkt ausprobieren lassen
So verwenden Entwickler es
- Mixbox bietet eine klassische
lerp-Schnittstelle - Entwickler übergeben zwei RGB-Farben und das Mischverhältnis
tund erhalten ein gemischtes RGB-Ergebnis zurück - Beispielcode wird für C/C++, GLSL, Javascript, Python, Java/Android, Rust und Unity/C# bereitgestellt
- Die Beispiele in der Dokumentation zeigen wiederholt die Struktur, Blau
rgb(0, 33, 133)und Gelbrgb(252, 211, 0)mitt = 0.5zu mischen - Unterstützte Sprachen und Umgebungen:
- Sprachen: C++, Python, Javascript, GLSL, HLSL, C#, Java, Rust
- Engines·Frameworks: Unity, Android Studio, P5js, WebGL, Godot
Integrationsweise und Lizenz
- Mixbox ist kein Plug-in, das Nutzer direkt installieren
- Damit es in Malsoftware eingesetzt werden kann, muss der jeweilige Softwareentwickler es als Code für einen neuen Blending-Modus integrieren
- Wer Mixbox in seinem bevorzugten Malwerkzeug sehen möchte, kann in Nutzerforen oder Support-Kanälen einen entsprechenden Wunsch hinterlassen
- Adobe Photoshop: community.adobe.com
- Adobe Fresco: adobefresco.uservoice.com
- Procreate: folio.procreate.art/discussions
- Corel Painter: corel.com/en/support
- Mixbox wird unter der Lizenz CC BY-NC 4.0 veröffentlicht und kann kostenlos evaluiert werden
- In der Vorbereitungsphase zur Veröffentlichung eines kommerziellen Produkts ist die Einrichtung einer kommerziellen Lizenz erforderlich
Das Prinzip der Pigmentmischung
- Das Mischen echter Pigmente lässt sich nicht allein durch einfache additive oder subtraktive Mischung erklären; beides wirkt in Kombination zusammen
- Wenn Farbe aus der Tube gemischt wird, dringt Licht in das Material ein, wird wiederholt gestreut und absorbiert, wodurch die endgültige Farbe entsteht
- Dieser Prozess wird durch Subsurface Scattering beschrieben
- Zusätzliche Erläuterungen:
In Mixbox enthaltene Pigmentnamen
- Die von Mixbox behandelten Pigmentnamen sind wie folgt:
- Cadmium Yellow Light, Hansa Yellow, Cadmium Yellow Deep
- Cadmium Orange Light, Cadmium Orange
- Cadmium Red Light, Cadmium Red Medium, Pyrrole Red
- Alizarin Crimson, Quinacridone Magenta
- Cobalt Violet, Ultramarine Violet
- Ultramarine Blue, Cobalt Blue, Phthalo Blue, Cerulean Blue, Prussian Blue
- Phthalo Green, Permanent Green, Permanent Green Light, Sap Green
- Burnt Sienna, Indian Red, Bone Black
1 Kommentare
Meinungen auf Hacker News
2012 veröffentlichte das Team der Zeichen-App Paper für das iPad Interessantes zum Thema Farbmischung: https://www.fastcompany.com/3002676/magical-tech-behind-pape...
Kurz gesagt: Anfangs hatten sie ein realistisches Verhalten beim Mischen von Pigmenten implementiert, aber in Nutzertests konnten Menschen, die nie gemalt hatten, durch Mischen kaum die gewünschte Farbe erzeugen und landeten meist bei Braun. Daher mussten sie einen unrealistischen Mischalgorithmus entwickeln, der sich intuitiver anfühlte.
Das Mischen von Ölfarben ist eine Technik, die man lernen muss, und funktioniert nicht intuitiv. Es ist daher vermutlich nur für Menschen nützlich, die bereits mit realen Medien malen oder das lernen wollen.
Außerdem kann man sagen, dass ArtRage über mehr als zehn Jahre hinweg die realistischste Painting-Software war; sie hat einen Modus für echte Farbmischung, der offenbar nicht standardmäßig aktiviert ist. Er liefert Ergebnisse, die denen auf der Beispielseite deutlich näherkommen: https://i.ibb.co/T0GwbDV/artrage-mixing.jpg rechts mit aktivierter echter Farbmischung.
Beim Lesen der Webseite wusste ich zunächst nicht, dass Painting-Software bei der Farbmischung meist nicht mehr versucht als einfache Interpolation. Ich dachte, die Physik rund um Licht sei ziemlich komplex und in RGB gehe so viel Information verloren, dass eine Rekonstruktion schwierig wäre.
Etwas weiter unten gibt es ein Code-Snippet zur Nutzung als Library; als ich sah, dass es in RGB rechnet, war ich irritiert. Nach dem Öffnen des Paper-Links wurde klar: Der Kern besteht darin, einen latenten Farbraum zu erzeugen, der RGB-Farben als Mischung von Grundpigmenten plus additivem Rest darstellt, und diese latenten Werte dann mit linearen Operationen zu manipulieren, um erwartbar plausible Ergebnisse zu erhalten.
Das ist sehr clever und wirkt wie ein gutes Beispiel dafür, moderne Machine-Learning-Verfahren außerhalb des gerade angesagten Bereichs der Sprachmodelle einzusetzen. Intern werden auch perzeptuelle Farbräume und physikalisch fundiertes Vorwissen genutzt; technisch ist das beeindruckend und elegant.
Es berührt auch eine Idee, die mir schon länger im Kopf herumgeht: Vielleicht würden generative Bildmodelle oder Image-Encoder-Modelle besser funktionieren, wenn man ihnen statt RGB Wellenlängendaten oder zumindest einen perzeptuell gleichmäßigen Farbraum gibt. Das scheint näher an der Wahrheit zu liegen, als grob die Wellenlängen zu verwenden, auf die unsere Zapfen zufällig reagieren.
Aus diesen und anderen Gründen gibt es oft eine starke Diskrepanz zwischen Reiz und Wahrnehmung; daher existiert so etwas wie ein perzeptuell gleichmäßiger Farbraum nicht.
Farben haben vorhersagbare mathematische Eigenschaften dafür, welche Farbe sie beim Mischen ergeben. Weil sie sich jedoch nichtlinear mischen, ist das für Menschen, die nicht viel Übung im Mischen von Farben haben, einfach nicht intuitiv.
Photoshop und die anderen Vergleichsprogramme auf der Seite zeigen die lineare Mischung, die die meisten Menschen intuitiv erwarten.
Wenn einen sowohl additive Farben im Digitalen als auch subtraktive Farben physischer Medien interessieren, ist das ziemlich spannend.
Das gibt es schon seit ein paar Jahren, aber wegen der nichtkommerziellen und restriktiven Lizenz sind die Grenzen groß.
https://krita-artists.org/t/implementing-mixbox-mixing-for-k...
https://invent.kde.org/graphics/krita/-/merge_requests/1783
https://krita-artists.org/t/can-we-get-mixbox-on-krita/64201...
Ich erinnere mich, dass es zu Zeiten von Windows 3.0 eine Software namens Fractal Designer Painter gab. Sie hatte mehrere Engines, die Materialien wie Pastell, Öl, Aquarell und Gouache ziemlich genau nachahmten, inklusive Mischen, Pinselstrichen, Druck usw.
In einer Zeit, in der ein 800x600x24-Bit-Bildschirm Luxus war, sah das unglaublich realistisch aus, und auf einem i486-Rechner war es sehr langsam. Ich habe gerade nachgesehen: Heute ist daraus Corel Painter geworden.
Ich frage mich, ob es immer noch gut ist und wie die alten und aktuellen Algorithmen im Vergleich zu dieser neuen Library abschneiden. Leider haben die Autoren keinen Vergleich mit Corel Painter gemacht.
Seit den 90ern nutze ich Painter für digitale Kunst, weil die Farbmischung gut funktioniert und es gut zu echten Kunstwerkzeugen passt. Es gibt nicht nur Farben, sondern auch sehr viele Optionen wie Pastell, Bleistift, Stift usw.
Allerdings wurde das nie als Library angeboten, mit der man solche Funktionen in die eigene App einbauen kann, und das klingt definitiv neu und gut. Aber die Andeutung, dass so etwas vorher noch nie möglich gewesen sei, ist ziemlich falsch.
Ich frage mich, warum Secret Weapons nicht 2 bis 3 Jahre vor Beginn des AI-Video-Booms 100 Millionen Dollar Venture-Kapital bekommen hat.
Sie traten zuerst mit EbSynth auf, dem ersten weit verbreiteten AI-basierten System für Video-to-Video-Style-Transfer und Keyframe-Interpolation: https://ebsynth.com/
EbSynth hat viele Creator ähnlich wie den Comedian Joel Haver hervorgebracht: https://www.youtube.com/watch?v=SY3y6zNTiLs&list=PLKtIcOP0Wv...
Auch mehrere Unternehmen wie Kaiber.ai haben ihre Technologie auf EbSynth aufgebaut und große Seed-Finanzierungen erhalten: https://kaiber.ai/
Große Musiker haben EbSynth ebenfalls direkt oder über solche Unternehmen für Musikvideos eingesetzt. Linkin Park: https://www.youtube.com/watch?v=7NK_JOkuSVY, Magdalena Bay: https://www.youtube.com/watch?v=dXLCHvRsgRQ
Secret Weapons war in einer guten Position, AI-Video und AI-Kreativtools zu dominieren, aber von außen betrachtet scheinen sie diese Chance verpasst zu haben.
EbSynth wirkt eher wie ein Final-Cut-Pro-Plugin für Maskierung und Tracking. Die erwartete Zielgruppe mag ähnlich sein, aber die Fähigkeiten und Ressourcen, die das Engineering-Team braucht, sind ziemlich unterschiedlich.
Zu sagen, Secret Weapons sei bereit gewesen, AI-Video und Kreativtools zu dominieren, wirkt etwas überzogen.
Ich wusste nicht, dass man schon vor 3 Jahren so weit war.
Die Library selbst interessiert mich kaum; ich will nur eine rein mathematische Implementierung für Shader und Ähnliches. Der GLSL-Algorithmus ist hier, und die gewünschte Funktion ist
vec3 mixbox_lerp:https://github.com/scrtwpns/mixbox/blob/master/shaders/mixbo...
Ich habe keine Zeit, eine Demo zu bauen, aber es sieht ziemlich gut optimiert aus und macht auch in den Beispielen einen guten Eindruck. Gute Arbeit von den Leuten, die das gemacht haben.
Es gibt frühere Diskussionen von vor 3 Jahren:
https://news.ycombinator.com/item?id=30116316 71 Punkte, 15 Kommentare
https://news.ycombinator.com/item?id=30033611 60 Punkte, 13 Kommentare
Ich frage mich, ob jemand die kommerzielle Painting-App Rebelle ausprobiert hat, die diesen Ansatz verwendet.
Es hat weniger Funktionen als Painter, aber das ist eher ein Vorteil.
Was noch fehlt, ist ein überzeugendes Gefühl für trockene Medien wie Kohle und eine tiefere Integration mit der Oberfläche des Trägermaterials. Im Moment ist es im Wesentlichen eher eine flache Depth Map und fühlt sich nicht so rau an wie Holz, grobes Papier oder sogar Oberflächen wie Wolken.
Derzeit ist es meine Lieblings-App, und die Farbmischung ist schon seit einiger Zeit sehr gut.
Sieht beeindruckend aus, aber wegen All Rights Reserved + CC-BY-NC ist es unmöglich, es als Standardimplementierung in Krita, GIMP oder Blender aufzunehmen.
Ich bemale Miniaturen, und sobald man über die Grundschritte hinaus ist und anfängt, mit Lasuren Filter oder Blending zu verwenden, ist es nicht besonders gut möglich, Bemalungspläne in Software zu testen. Das hier sieht sehr gut aus.
Das ist wirklich cool und sollte als Option in jedes Painting-Programm kommen, aber andererseits frage ich mich, ob es den Lernprozess beim Malen nicht komplizierter macht.
Farben zu mischen ist nicht intuitiv und daher eine Fähigkeit, die man lernen muss.
In fast allen anderen Bereichen des Lebens erwartet man, dass das Mischen von A und B eine lineare Veränderung bewirkt. Wenn man Salz ins Wasser gibt, wird es salziger; man erwartet nicht, dass es irgendwann sauer schmeckt und dann wieder salzig wird.
Die Mischbeispiele des Mixbox-Algorithmus auf der Webseite sehen echt aus, während die Mischungen anderer Programme eher ungenau wirken.
Allerdings scheint Mixbox keine realen physikalischen Pigmenteigenschaften zu berücksichtigen, und solche Eigenschaften können die Pigmentmischung stark beeinflussen.