1 poin oleh GN⁺ 2024-12-30 | 1 komentar | Bagikan ke WhatsApp
  • 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 lerp yang 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 lerp klasik
  • 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 kuning rgb(252, 211, 0) dengan t = 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
  • 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

 
GN⁺ 2024-12-30
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

    • Artikel itu benar-benar bagus. Namun, meski karya ini mengesankan, ada dua hal yang perlu diperhatikan
      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

    • Perlu diingat bahwa tepat setelah sel kerucut pun, sel-sel lain menghitung dan mengagregasi sinyal kerucut. Jangan lupa bahwa warna adalah konstruksi otak
      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
    • Kecerdasan buatan atau machine learning sama sekali tidak diperlukan. Cukup ukur secara empiris beberapa konstanta yang menjelaskan dan membatasi non-linearitas berbagai pigmen nyata, lalu masukkan ke persamaan pencampuran cat yang relatif sederhana
      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
    • Ada video dari SIGGRAPH Asia 2021 yang memperkenalkan pendekatan ini secara rinci selama 17 menit: https://www.youtube.com/watch?v=_qa5iWdfNKg
      Jika Anda tertarik pada warna aditif digital maupun warna subtraktif media fisik, isinya cukup menarik
    • Sejauh yang saya tahu, sebagian besar aplikasi melukis mencampur warna bukan di ruang RGB linear, melainkan di ruang sRGB. Jadi hasilnya bisa lebih buruk daripada interpolasi sederhana sekalipun
  • 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...

  • 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

    • Benar. Meski beberapa kali berganti pemilik, Painter masih ada dan diperbarui setiap tahun, serta mampu melakukan semua fitur yang terlihat di artikel
      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 punya versi 2015, dan di PC modern masih berjalan lebih baik daripada dulu
  • 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

    • Saya hanya melihat sekilas, tetapi model difusi video dan EbSynth terlihat seperti kategori yang berbeda
      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
    • Video ini dari 3 tahun lalu: https://www.youtube.com/watch?v=6FN7fKlJcPE
      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_lerp
    https://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

    • Namun harus berhati-hati soal lisensinya
  • 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

    • Rebelle sangat bagus. Cepat dan berjalan baik bahkan pada resolusi tinggi
      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

    • Bagi orang yang berpindah dari media nyata ke digital, atau dari digital ke media nyata, ini sepertinya akan menyederhanakan transisi
      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