Teknik pencampuran pigmen untuk digital painting
(scrtwpns.com)- Interpolasi RGB dalam digital painting bisa terlihat berbeda dari pencampuran cat sungguhan; Mixbox adalah library yang berupaya memperbaikinya dengan pencampuran berbasis pigmen
- Developer cukup memberikan dua warna dan rasio pencampuran seperti
lerpyang sudah ada, lalu Mixbox mengembalikan warna hasil dalam bentuk input RGB·output RGB - Mixbox 2.0 berjalan di C++, Python, Javascript, GLSL, HLSL, C#, Java, Rust serta mendukung lingkungan Unity, Android Studio, P5js, WebGL, dan Godot
- Tujuannya adalah mengurangi pencampuran yang kusam pada smudge, layering brush bertekstur, dan gradien berbasis warna gelap, sekaligus menghasilkan warna antara dan variasi warna yang lebih kaya
- Ini bukan plugin yang dipasang langsung oleh pengguna, melainkan kode untuk blending mode, sehingga agar bisa dipakai di tool painting nyata diperlukan integrasi oleh developer software tersebut
Masalah warna digital yang tidak bercampur seperti cat sungguhan
- Pencampuran warna pada software painting umum tidak bekerja seperti pigmen sungguhan
- Mixbox adalah library untuk mengimplementasikan pencampuran warna yang mendekati cat sungguhan dalam digital painting
- Secara internal, warna diperlakukan seperti pigmen berbasis Kubelka & Munk, tetapi API-nya disediakan dalam bentuk sederhana: input RGB dan output RGB
- Materi terkait:
Efek warna yang mendekati cat
-
Gradien kaya dengan perubahan warna
- Dapat membuat warna campuran yang alami dan hidup
- Dapat diharapkan menghasilkan falloff yang lebih kaya pada sapuan brush
- Smudge brush dimanfaatkan untuk membuat gradien alami, bukan campuran yang kusam
- Meski sapuan brush bertekstur dilapisi berulang, warna tidak mengalami desaturasi, dan dapat menghasilkan falloff yang kaya serta hidup
- Hanya dengan tekanan pena, dapat dibuat gradien dalam yang dimulai dari warna gelap
Contoh penerapan dan demo
- Mixbox digunakan sebagai elemen inti Rebelle, sebuah tool painting yang menyediakan fitur digital oil dan watercolor
- Pada add-on Flip Fluids untuk Blender, Mixbox digunakan untuk representasi warna cairan yang realistis
- Tersedia demo painter yang bisa dicoba langsung
- Tersedia contoh coding yang berjalan di browser untuk mencoba langsung grafik atau kode
Cara developer menggunakannya
- Mixbox menyediakan antarmuka
lerpklasik - Developer memberikan dua warna RGB dan rasio pencampuran
t, lalu menerima hasil RGB yang sudah dicampur - Contoh kode tersedia dalam bentuk C/C++, GLSL, Javascript, Python, Java/Android, Rust, dan Unity/C#
- Contoh dalam dokumentasi berulang kali menunjukkan struktur pencampuran warna biru
rgb(0, 33, 133)dan kuningrgb(252, 211, 0)dengant = 0.5 - Bahasa dan lingkungan yang didukung:
- Bahasa: C++, Python, Javascript, GLSL, HLSL, C#, Java, Rust
- Engine·framework: Unity, Android Studio, P5js, WebGL, Godot
Cara integrasi dan lisensi
- Mixbox bukan plugin yang dipasang langsung oleh pengguna
- Agar masuk ke software painting, developer software tersebut harus mengintegrasikannya sebagai kode untuk blending mode baru
- Jika menginginkan Mixbox di tool painting favorit, pengguna dapat mengajukan permintaan di forum pengguna atau kanal dukungan
- Adobe Photoshop: community.adobe.com
- Adobe Fresco: adobefresco.uservoice.com
- Procreate: folio.procreate.art/discussions
- Corel Painter: corel.com/en/support
- Mixbox didistribusikan dengan lisensi CC BY-NC 4.0, sehingga dapat dievaluasi secara gratis
- Pada tahap persiapan peluncuran produk komersial, perlu pengaturan lisensi komersial
Prinsip pencampuran pigmen
- Pencampuran pigmen sungguhan tidak dapat dijelaskan hanya dengan pencampuran aditif atau subtraktif sederhana; keduanya bekerja secara kompleks bersama-sama
- Ketika cat dari tube dicampur, cahaya masuk ke dalam material, berulang kali terhambur dan diserap, lalu menghasilkan warna akhir
- Proses ini dijelaskan sebagai subsurface scattering
- Materi penjelasan tambahan:
Nama pigmen yang disertakan Mixbox
- Nama pigmen yang ditangani Mixbox adalah sebagai berikut
- 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 komentar
Komentar Hacker News
Pada 2012, tim aplikasi menggambar Paper untuk iPad pernah mengungkap hal menarik tentang pencampuran warna: https://www.fastcompany.com/3002676/magical-tech-behind-pape...
Ringkasnya, awalnya mereka menerapkan perilaku pencampuran pigmen yang realistis, tetapi dalam uji pengguna, orang-orang yang belum pernah menggambar kesulitan membuat warna yang mereka inginkan lewat pencampuran dan biasanya berakhir dengan cokelat. Jadi mereka harus membuat algoritma pencampuran yang tidak realistis yang terasa lebih intuitif
Mencampur cat minyak adalah keterampilan yang harus dipelajari dan tidak bekerja secara intuitif, jadi kemungkinan hanya berguna bagi orang yang sudah melukis dengan media nyata atau ingin mempelajarinya
Selain itu, ArtRage bisa dibilang sudah lebih dari 10 tahun menjadi perangkat lunak melukis paling realistis, memiliki mode pencampuran warna nyata, dan tampaknya bukan mode bawaan. Hasilnya jauh lebih mendekati daripada hasil di halaman sampel: https://i.ibb.co/T0GwbDV/artrage-mixing.jpg sisi kanan dengan pencampuran warna nyata diaktifkan
Saat melihat halaman webnya, awalnya saya tidak tahu bahwa perangkat lunak melukis tidak mencoba mencampur warna lebih dari interpolasi sederhana, dan saya berpikir fisika terkait cahaya cukup rumit serta banyak informasi yang hilang di RGB sehingga sulit dipulihkan
Setelah menggulir sedikit, ada potongan kode yang digunakan sebagai pustaka, dan saya heran melihat operasinya dilakukan di RGB. Ketika membuka tautan makalahnya, inti pendekatannya adalah membuat ruang warna laten yang merepresentasikan warna RGB sebagai campuran pigmen dasar dan residu aditif, lalu memanipulasi nilai laten itu dengan operasi linear untuk menghasilkan hasil masuk akal yang bisa diharapkan
Sangat cerdas, dan tampak seperti contoh bagus pemanfaatan teknik machine learning modern di luar ranah model bahasa yang sedang populer. Secara internal juga memakai ruang warna perseptual dan pengetahuan awal berbasis fisika, jadi secara teknis ini karya yang mengesankan dan indah
Ini juga berkaitan dengan ide yang sudah lama terpikir. Saya bertanya-tanya apakah model generatif gambar atau model encoder gambar akan bekerja lebih baik jika diberi data panjang gelombang, atau setidaknya ruang warna yang seragam secara perseptual, alih-alih RGB. Itu terasa lebih dekat dengan kebenaran daripada sekadar memakai kira-kira panjang gelombang yang kebetulan direspons sel kerucut kita
Karena alasan-alasan ini dan alasan lainnya, sering ada jurang besar antara stimulus dan persepsi, sehingga hal seperti ruang warna yang seragam secara perseptual tidak ada
Cat memiliki sifat matematis yang dapat diprediksi mengenai warna apa yang dihasilkan saat dicampur. Hanya saja, karena bercampur secara non-linear, ini tidak intuitif bagi orang yang belum banyak berlatih mencampur cat
Photoshop dan program pembanding lain yang ditampilkan di halaman tersebut menunjukkan pencampuran linear yang secara intuitif diharapkan kebanyakan orang
Jika Anda tertarik pada warna aditif digital maupun warna subtraktif media fisik, isinya cukup menarik
Ini sudah ada sejak beberapa tahun lalu, tetapi sangat terbatas karena lisensinya nonkomersial dan restriktif
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...
Saya ingat pada era Windows 3.0 ada software bernama Fractal Designer Painter. Ada beberapa engine yang meniru material seperti pastel, cat minyak, cat air, dan gouache dengan akurat, serta mensimulasikan pencampuran, sapuan kuas, tekanan, dan sebagainya
Pada masa ketika layar 800x600x24-bit adalah kemewahan, tampilannya terasa luar biasa realistis, dan di komputer i486 sangat lambat. Baru saja saya cari, sekarang rupanya sudah menjadi Corel Painter
Saya penasaran apakah masih bagus, dan bagaimana algoritma lama maupun sekarang dibandingkan dengan library baru ini. Sayangnya para penulis tidak membandingkannya dengan Corel Painter
Alasan saya memakai Painter untuk seni digital sejak tahun 90-an adalah karena pencampuran warnanya bagus dan cocok dengan alat seni nyata. Pilihannya juga sangat banyak, bukan hanya cat, tapi juga pastel, pensil, pena, dan lain-lain
Namun memang tidak pernah disediakan dalam bentuk library untuk memasukkan fitur seperti itu ke aplikasi sendiri, dan itu jelas terdengar baru dan bagus. Tapi nuansa seolah-olah ini belum pernah bisa dilakukan sebelumnya cukup keliru
Saya penasaran mengapa Secret Weapons tidak mendapat pendanaan ventura sekitar 100 juta dolar 2–3 tahun sebelum booming video AI dimulai
Mereka pertama muncul dengan EbSynth, sistem transfer gaya video-to-video dan interpolasi keyframe berbasis AI pertama yang banyak dipakai: https://ebsynth.com/
EbSynth melahirkan banyak kreator mirip komedian seperti Joel Haver: https://www.youtube.com/watch?v=SY3y6zNTiLs&list=PLKtIcOP0Wv...
Beberapa perusahaan seperti Kaiber.ai juga membangun teknologi berbasis EbSynth dan memperoleh pendanaan seed besar: https://kaiber.ai/
Musisi besar juga memakai EbSynth, secara langsung atau melalui perusahaan semacam ini, untuk video musik. Linkin Park: https://www.youtube.com/watch?v=7NK_JOkuSVY, Magdalena Bay: https://www.youtube.com/watch?v=dXLCHvRsgRQ
Secret Weapons berada di posisi yang bagus untuk menguasai video AI dan alat kreatif AI, tetapi dari luar tampaknya mereka melewatkan peluang itu
EbSynth lebih terlihat seperti plugin Final Cut Pro untuk masking dan tracking. Target pelanggannya mungkin mirip, tetapi kapabilitas dan sumber daya yang dibutuhkan tim engineering cukup berbeda
Mengatakan Secret Weapons sudah siap menguasai video AI dan alat kreatif tampaknya agak berlebihan
Saya tidak tahu bahwa 3 tahun lalu pun sudah sejauh ini
Saya tidak terlalu tertarik pada library-nya sendiri, hanya ingin implementasi matematika murni untuk dipakai di shader dan sejenisnya. Algoritma GLSL ada di sini, dan fungsi yang diinginkan adalah
vec3 mixbox_lerphttps://github.com/scrtwpns/mixbox/blob/master/shaders/mixbo...
Saya tidak sempat membuat demo, tetapi kelihatannya cukup teroptimasi dengan baik dan terlihat bagus di contoh. Kerja para pembuatnya luar biasa
Ada diskusi sebelumnya dari 3 tahun lalu
https://news.ycombinator.com/item?id=30116316 71 poin, 15 komentar
https://news.ycombinator.com/item?id=30033611 60 poin, 13 komentar
Saya penasaran apakah ada yang pernah mencoba Rebelle, aplikasi painting komersial yang memakai metode ini
Fiturnya lebih sedikit daripada Painter, tetapi itu justru kelebihannya
Yang masih kurang adalah rasa yang tepat untuk media kering seperti arang, serta integrasi mendalam dengan permukaan media. Saat ini umumnya lebih seperti depth map yang dangkal, dan tidak terasa sekasar permukaan seperti kayu, kertas kasar, atau bahkan awan
Untuk saat ini ini aplikasi yang paling saya sukai, dan pencampuran warnanya sudah sangat bagus selama beberapa waktu
Terlihat keren, tetapi karena All Rights Reserved + CC-BY-NC, mustahil memasukkannya sebagai implementasi bawaan di Krita, GIMP, atau Blender
Saya mengecat miniatur, dan setelah melewati tahap dasar lalu mulai memakai filter atau blending dengan glaze, software tidak begitu bagus untuk menguji rencana pengecatan. Ini terlihat sangat bagus
Ini benar-benar keren dan seharusnya menjadi opsi di semua program painting, tetapi di sisi lain saya bertanya-tanya apakah ini akan membuat proses belajar menggambar menjadi lebih rumit
Mencampur warna cat tidak intuitif, jadi itu adalah keterampilan yang harus dipelajari
Di hampir semua bidang lain dalam hidup, kita berharap mencampur A dan B menghasilkan perubahan linear. Kalau menambahkan garam ke air, rasanya menjadi lebih asin; kita tidak berharap pada suatu titik rasanya menjadi asam lalu kembali asin
Contoh pencampuran algoritma Mixbox di halaman web terlihat seperti nyata, sementara pencampuran di program lain justru terlihat tidak akurat
Namun Mixbox tampaknya tidak mempertimbangkan karakteristik pigmen fisik yang sebenarnya, dan karakteristik seperti itu bisa berdampak drastis pada pencampuran pigmen