デジタルペインティングのためのピグメントミキシング技術
(scrtwpns.com)- デジタルペインティングのRGB補間は実際の絵の具の混ざり方と異なって見えることがあるが、Mixboxはこれをピグメントベースの混合で改善しようとするライブラリ
- 開発者は既存の
lerpのように2つの色と混合比率だけを渡せばよく、MixboxはRGB入力・RGB出力の形で結果の色を返す - Mixbox 2.0はC++, Python, Javascript, GLSL, HLSL, C#, Java, Rustで動作し、Unity、Android Studio、P5js、WebGL、Godot環境をサポートする
- スマッジ、テクスチャブラシのレイヤリング、暗い色ベースのグラデーションで濁った混合を減らし、より豊かな中間色と色相変化を作ることが目標
- ユーザーが直接インストールするプラグインではなく、ブレンディングモード用コードであるため、実際のペインティングツールで使うにはそのソフトウェア開発者による統合が必要
実際の絵の具のように混ざらないデジタル色の問題
- 一般的なペインティングソフトウェアの色混合は実際のピグメントのようには動作しない
- Mixboxは実際の絵の具に近い色混合をデジタルペインティングで実現するためのライブラリ
- 内部的には色をKubelka & Munkベースのピグメントのように扱うが、APIはシンプルなRGB入力とRGB出力の形で提供される
- 関連資料:
絵の具に近い色彩効果
-
色相変化を伴う豊かなグラデーション
- 自然で鮮やかな混色を作れる
- ブラシストロークでより豊かな減衰を期待できる
- スマッジブラシは濁った混合の代わりに自然なグラデーションを作るのに活用される
- テクスチャブラシのストロークをレイヤリングしても色が脱彩されず、豊かで鮮やかな減衰を作れる
- ペン圧だけで暗い色から始まる深いグラデーションを作れる
適用事例とデモ
- MixboxはRebelleの中核要素として使われており、Rebelleはデジタル油彩と水彩機能を提供するペインティングツール
- Blender用Flip Fluidsアドオンでは、液体のリアルな色表現にMixboxが使われている
- 直接体験できるデモペインターが提供されている
- ブラウザで動作するコーディング例でグラフィックやコードを直接試せる
開発者の使い方
- Mixboxは古典的な**
lerpインターフェース**を提供する - 開発者は2つのRGB色と混合比率
tを渡し、混合されたRGB結果を受け取る - サンプルコードはC/C++、GLSL、Javascript、Python、Java/Android、Rust、Unity/C#形式で提供される
- ドキュメントの例は青の
rgb(0, 33, 133)と黄のrgb(252, 211, 0)をt = 0.5で混ぜる構成を繰り返し示している - 対応言語と環境:
- 言語: C++, Python, Javascript, GLSL, HLSL, C#, Java, Rust
- エンジン・フレームワーク: Unity, Android Studio, P5js, WebGL, Godot
統合方法とライセンス
- Mixboxはユーザーが直接インストールするプラグインではない
- ペインティングソフトウェアに組み込むには、そのソフトウェア開発者が新しいブレンディングモード用コードとして統合する必要がある
- 好みのペインティングツールでMixboxを望むなら、ユーザーフォーラムやサポートチャネルに要望を残せる
- Adobe Photoshop: community.adobe.com
- Adobe Fresco: adobefresco.uservoice.com
- Procreate: folio.procreate.art/discussions
- Corel Painter: corel.com/en/support
- MixboxはCC BY-NC 4.0ライセンスで配布され、無料で評価できる
- 商用製品のリリース準備段階では商用ライセンスの設定が必要
ピグメント混合の原理
- 実際のピグメント混合は単純な加算混合や減算混合だけでは説明できず、両方が複合的に作用する
- チューブから出した絵の具を混ぜると、光が物質の中に入り込み、繰り返し散乱・吸収されて最終的な色が生まれる
- この過程は**表面下散乱(subsurface scattering)**で説明される
- 追加の説明資料:
Mixboxに含まれるピグメント名
- Mixboxが扱うピグメント名は次の通り
- 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件のコメント
Hacker Newsのコメント
2012年に、iPad向けドローイングアプリ Paper のチームが色の混合について興味深い内容を公開していました: https://www.fastcompany.com/3002676/magical-tech-behind-pape...
要約すると、当初は現実的な顔料混合の挙動を実装したものの、ユーザーテストでは絵を描いたことのない人たちは混合で望みの色をうまく作れず、たいてい茶色に行き着いたそうです。そのため、より直感的に感じられる非現実的な混合アルゴリズムを作る必要がありました
油絵具の混合は習得が必要な技術で、直感的には動作しないため、実際の媒体ですでに絵を描いている人、またはそれを学ぼうとしている人にしか役立たない可能性が高いです
また、ArtRage は10年以上にわたって最も現実的なペインティングソフトウェアだったと言えるもので、実際の色混合モードがあり、デフォルトではないようです。サンプルページの結果よりもはるかに近い結果を出します: https://i.ibb.co/T0GwbDV/artrage-mixing.jpg 右側が実際の色混合をオンにしたものです
Webページを見ていて、最初はペインティングソフトウェアが単純な補間以上の色の混合を試みていないとは知りませんでしたし、光に関する物理はかなり複雑で、RGBで失われた情報も多く復元は難しいだろうと思いました
少し下に行くとライブラリとして使うコード片があり、RGBで演算しているのを見て不思議に思いました。論文リンクを開いてみると、肝はRGB色を基本顔料の混合と加算的な残差として表す潜在色空間を作り、その潜在値を線形演算で操作して、期待できるもっともらしい結果を出すという部分でした
非常に賢く、流行の言語モデル領域の外で現代的な機械学習手法をうまく活用した事例に見えます。内部的には知覚色空間と物理ベースの事前知識も使っており、技術的に印象的で美しい仕事です
以前から考えていたことにもつながっています。生成画像モデルや画像エンコーダーモデルにRGBではなく波長データ、あるいは少なくとも知覚的に均一な色空間を入れれば、もっとよく動作するのではないかと思います。私たちの錐体細胞が偶然反応する波長を大ざっぱに使うより、真実に近そうです
こうした理由やその他の理由により、刺激と知覚の間には大きな乖離がしばしばあり、したがって知覚的に均一な色空間のようなものは存在しません
絵具には、混ぜたときにどのような色を出すかについて予測可能な数学的性質があります。ただし非線形に混ざるため、絵具の混合をあまり練習していない人には直感的でないだけです
Photoshopやページに出ている他の比較プログラムは、ほとんどの人が直感的に期待する線形混合を示しています
デジタルの加法混色と物理媒体の減法混色の両方を扱うなら、かなり面白い内容です
これは数年前からありましたが、非商用で制限のあるライセンスのため制約が大きいです
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...
Windows 3.0 の頃に Fractal Designer Painter というソフトがあったのを覚えている。パステル、油彩、水彩、ガッシュのような画材を正確にまねる複数のエンジンがあり、混色、筆致、筆圧などをシミュレートしていた。
800x600x24ビット画面がぜいたくだった時代に、信じられないほど現実的に見えたし、i486 のコンピューターではとても遅かった。今ちょっと調べたら、現在は Corel Painter になっているようだ。
今でも良いのか、また昔と今のアルゴリズムがこの新しいライブラリとどう比較されるのか気になる。残念ながら著者たちは Corel Painter とは比較していなかった。
90年代からデジタルアート向けに Painter が使われてきた理由は、色混ぜがうまく、実際の画材とよく合っているからだ。絵の具だけでなく、パステル、鉛筆、ペンなど選択肢も非常に多い。
ただ、そうした機能を自分のアプリに組み込めるライブラリという形で提供していたわけではなく、それは確かに新しくて良いことに聞こえる。とはいえ、これまで一度も実現されていなかったかのようなニュアンスはかなり間違っている。
Secret Weapons が AI動画ブーム が始まる2〜3年前に、なぜ1億ドル規模のベンチャー投資を受けなかったのか不思議だ。
彼らは、広く使われた最初の AI ベースの動画対動画スタイル転送およびキーフレーム補間システムである EbSynth で最初に登場した: https://ebsynth.com/
EbSynth は Joel Haver のようなコメディアンや、似たタイプのクリエイターをたくさん生み出した: https://www.youtube.com/watch?v=SY3y6zNTiLs&list=PLKtIcOP0Wv...
Kaiber.ai のような複数の会社も EbSynth を基盤に技術を作り、多額のシード投資を受けた: https://kaiber.ai/
主要なミュージシャンたちも、EbSynth を直接、またはこうした会社を通じてミュージックビデオに使っていた。Linkin Park: https://www.youtube.com/watch?v=7NK_JOkuSVY、Magdalena Bay: https://www.youtube.com/watch?v=dXLCHvRsgRQ
Secret Weapons は AI動画と AI クリエイティブツールを掌握するのに好位置にいたのに、見たところその機会を逃したようだ。
EbSynth はマスキングとトラッキングのための Final Cut Pro プラグインに近いように見える。想定顧客層は似ているかもしれないが、エンジニアリングチームに必要な能力とリソースはかなり違う。
Secret Weapons が AI動画とクリエイティブツールを掌握する準備ができていた、という表現は少し大げさに見える。
3年前にすでにここまで来ていたとは知らなかった。
ライブラリ自体にはあまり興味がなく、シェーダーなどで使える 純粋な数学実装 だけが欲しい。GLSL アルゴリズムはここにあり、欲しい関数は
vec3 mixbox_lerpだ。https://github.com/scrtwpns/mixbox/blob/master/shaders/mixbo...
デモを作る時間はないが、かなりよく最適化されているように見えるし、例でも見栄えがいい。作った人たちの仕事は素晴らしい。
3年前の過去の議論がある。
https://news.ycombinator.com/item?id=30116316 71ポイント、コメント15件
https://news.ycombinator.com/item?id=30033611 60ポイント、コメント13件
この方式を使っている商用ペイントアプリ Rebelle を試した人がいるのか気になる。
Painter より機能は少ないが、それがむしろ長所だ。
まだ足りないのは、木炭のような乾式画材の適切な感触と、支持体表面との深い統合だ。今はおおむね浅い深度マップに近く、木や粗い紙、さらには雲のような表面ほど粗く感じられない。
現時点では一番気に入っているアプリで、色混ぜはすでにしばらく前から非常に良かった。
かっこよく見えるが、All Rights Reserved + CC-BY-NC なので、Krita、GIMP、Blender に標準実装として入れるのは不可能だ。
ミニチュアを塗装しているが、基本段階を越えてグレーズでフィルターやブレンディングを使い始めると、ソフトウェアで 塗装計画 を試すのがうまくいかない。これはとても良さそうだ。
これは本当に素晴らしく、すべてのペイントプログラムの選択肢に入るべきだが、一方で 絵の学習過程 をさらに複雑にしてしまうのではないかとも思う。
絵の具の色を混ぜるのは直感的ではないので、学ばなければならない技術だ。
人生のほぼあらゆる他の領域では、A と B を混ぜると線形的な変化が起きると期待する。水に塩を入れれば塩辛さが増すのであって、ある瞬間に酸っぱくなってからまた塩辛くなるとは期待しない。
ウェブページの Mixbox アルゴリズム の混色例は本物らしく見え、他のプログラムの混色はむしろ不正確に見える。
ただし Mixbox が実際の物理的な顔料特性を考慮しているようには見えず、そうした特性は顔料混合に急激な影響を与えることがある。