डिजिटल पेंटिंग के लिए पिगमेंट मिक्सिंग तकनीक
(scrtwpns.com)- डिजिटल पेंटिंग में RGB interpolation वास्तविक पेंट के मिश्रण से अलग दिख सकता है; Mixbox इसे pigment-based mixing के जरिए बेहतर बनाने वाली library है
- डेवलपर मौजूदा
lerpकी तरह सिर्फ दो रंग और mixing ratio पास कर सकते हैं, और Mixbox RGB input·RGB output के रूप में परिणाम रंग लौटाता है - Mixbox 2.0 C++, Python, Javascript, GLSL, HLSL, C#, Java, Rust में काम करता है और Unity, Android Studio, P5js, WebGL, Godot environments को support करता है
- smudge, texture brush layering, और dark colors पर आधारित gradients में muddy mixing को घटाकर ज्यादा rich intermediate colors और color variations बनाना इसका लक्ष्य है
- यह कोई ऐसा plugin नहीं है जिसे user खुद install करे; यह blending mode के लिए code है, इसलिए असली painting tools में इस्तेमाल के लिए संबंधित software developers द्वारा integration जरूरी है
डिजिटल रंगों की समस्या जो वास्तविक पेंट की तरह नहीं मिलते
- आम painting software में color mixing वास्तविक pigments की तरह काम नहीं करती
- Mixbox डिजिटल पेंटिंग में वास्तविक पेंट के करीब color mixing लागू करने के लिए एक library है
- अंदरूनी तौर पर यह colors को Kubelka & Munk आधारित pigments की तरह handle करता है, लेकिन API सरल RGB input और RGB output के रूप में दिया जाता है
- संबंधित सामग्री:
पेंट जैसा color effect
-
color variation वाले rich gradients
- natural और vivid mixed colors बनाए जा सकते हैं
- brush strokes में ज्यादा rich falloff की उम्मीद की जा सकती है
- smudge brush का उपयोग muddy mixing के बजाय natural gradients बनाने में किया जाता है
- texture brush strokes को layer करने पर भी colors desaturate नहीं होते, और rich व vivid falloff बनाया जा सकता है
- केवल pen pressure से dark colors से शुरू होने वाले deep gradients बनाए जा सकते हैं
उपयोग के उदाहरण और demo
- Mixbox, Rebelle का core element है; Rebelle digital oil और watercolor features देने वाला painting tool है
- Blender के Flip Fluids add-on में liquids की realistic color representation के लिए Mixbox इस्तेमाल होता है
- सीधे आजमाने के लिए demo painter उपलब्ध है
- browser में चलने वाले coding examples के जरिए graphics या code के साथ सीधे प्रयोग किया जा सकता है
डेवलपर इसे कैसे इस्तेमाल करते हैं
- Mixbox एक classical
lerpinterface प्रदान करता है - डेवलपर दो RGB colors और mixing ratio
tपास करते हैं, और mixed RGB result पाते हैं - example code C/C++, GLSL, Javascript, Python, Java/Android, Rust, Unity/C# formats में उपलब्ध है
- documentation के examples blue
rgb(0, 33, 133)और yellowrgb(252, 211, 0)कोt = 0.5से मिलाने की structure को बार-बार दिखाते हैं - समर्थित languages और environments:
- languages: C++, Python, Javascript, GLSL, HLSL, C#, Java, Rust
- engines·frameworks: Unity, Android Studio, P5js, WebGL, Godot
Integration method और license
- Mixbox ऐसा plugin नहीं है जिसे user सीधे install करे
- painting software में शामिल होने के लिए संबंधित software developer को इसे नए blending mode के code के रूप में integrate करना होगा
- अगर आप अपने पसंदीदा painting tool में Mixbox चाहते हैं, तो user forum या support channel में request छोड़ सकते हैं
- 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 license के तहत distribute किया जाता है, इसलिए free evaluation संभव है
- commercial product release की तैयारी के चरण में commercial license set up करना जरूरी है
pigment mixing का सिद्धांत
- वास्तविक pigment mixing को सिर्फ simple additive mixing या subtractive mixing से नहीं समझाया जा सकता; दोनों complex तरीके से साथ काम करते हैं
- tube से निकले paint को मिलाने पर light material के अंदर प्रवेश करती है, बार-बार scatter होती है और absorb होती है, जिससे final color बनता है
- इस प्रक्रिया को subsurface scattering से समझाया जाता है
- अतिरिक्त explanatory material:
Mixbox में शामिल pigment names
- Mixbox जिन pigment names को handle करता है, वे इस प्रकार हैं
- 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...
संक्षेप में, शुरुआत में उन्होंने यथार्थवादी pigment mixing व्यवहार लागू किया था, लेकिन user testing में जिन लोगों ने कभी पेंटिंग नहीं की थी वे mixing से मनचाहा रंग ठीक से नहीं बना पाए, और आम तौर पर नतीजा भूरा हो जाता था। इसलिए उन्हें एक अयथार्थवादी mixing algorithm बनाना पड़ा जो ज़्यादा सहज महसूस हो
oil paint mixing एक सीखने वाली skill है और सहज तरीके से काम नहीं करती, इसलिए संभव है कि यह केवल उन लोगों के लिए उपयोगी हो जो पहले से वास्तविक माध्यम में पेंटिंग करते हैं या उसे सीखना चाहते हैं
साथ ही ArtRage को 10 साल से अधिक समय तक सबसे यथार्थवादी painting software माना जा सकता है, और इसमें real color mixing mode है, जो शायद default नहीं है। यह sample page के नतीजों से कहीं ज़्यादा करीब परिणाम देता है: https://i.ibb.co/T0GwbDV/artrage-mixing.jpg दाईं ओर real color mixing चालू है
webpage देखते समय पहले मुझे पता नहीं था कि painting software साधारण interpolation से आगे जाकर रंग मिलाने की कोशिश नहीं करते, और मुझे लगा कि light से जुड़ी physics काफी जटिल है तथा RGB में बहुत सारी जानकारी खो जाती है, इसलिए उसे बहाल करना मुश्किल होगा
थोड़ा नीचे जाने पर library के रूप में इस्तेमाल होने वाला code snippet दिखा, लेकिन यह देखकर हैरानी हुई कि वह RGB में operations करता है। paper link खोलने पर समझ आया कि मुख्य बात एक latent color space बनाना है, जो RGB रंगों को basic pigments के mixture और additive residual के रूप में व्यक्त करता है, और फिर उन latent values को linear operations से manipulate करके अपेक्षित और plausible results देता है
यह बहुत चतुर तरीका है, और लोकप्रिय language model क्षेत्र से बाहर modern machine learning techniques के अच्छे उपयोग का उदाहरण लगता है। अंदरूनी तौर पर perceptual color space और physics-based prior knowledge भी इस्तेमाल हो रही है, इसलिए यह तकनीकी रूप से प्रभावशाली और सुंदर काम है
यह उस विचार से भी जुड़ा है जो मेरे मन में पहले से था। अगर generative image models या image encoder models में RGB की जगह wavelength data, या कम-से-कम perceptually uniform color space दिया जाए, तो शायद वे बेहतर काम करें। यह हमारी cone cells जिन wavelengths पर संयोग से प्रतिक्रिया करती हैं उन्हें मोटे तौर पर इस्तेमाल करने से ज़्यादा सच के करीब लगता है
इन और अन्य कारणों से stimulus और perception के बीच अक्सर बड़ा अंतर होता है, इसलिए perceptually uniform color space जैसी कोई चीज़ मौजूद नहीं है
paint में यह predictable mathematical properties होती हैं कि मिलाने पर कौन-सा रंग निकलेगा। बस वह nonlinear तरीके से mix होता है, इसलिए जिन लोगों ने paint mixing का ज्यादा अभ्यास नहीं किया है उनके लिए यह intuitively समझ में नहीं आता
Photoshop और page पर दिखाए गए दूसरे comparison programs वह linear mixing दिखाते हैं जिसकी अधिकांश लोग intuitively उम्मीद करते हैं
अगर आप digital additive color और physical media के subtractive color दोनों में रुचि रखते हैं, तो यह काफी मजेदार सामग्री है
यह कुछ सालों से मौजूद है, लेकिन non-commercial और restrictive license की वजह से इसकी सीमाएं बड़ी हैं
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 नाम का सॉफ्टवेयर याद है। इसमें पेस्टल, ऑयल पेंट, वॉटरकलर, गॉश जैसे माध्यमों की सटीक नकल करने वाले कई इंजन थे, और यह मिक्सिंग, ब्रश स्ट्रोक, प्रेशर वगैरह को simulate करता था।
जब 800x600x24-bit स्क्रीन भी लग्ज़री मानी जाती थी, तब यह अविश्वसनीय रूप से realistic दिखता था, और i486 कंप्यूटर पर बहुत धीमा चलता था। अभी खोजकर देखा तो अब यह Corel Painter बन चुका है।
जिज्ञासा है कि क्या यह अब भी अच्छा है, और पुराने/मौजूदा algorithms की तुलना इस नई library से कैसे होती है। अफसोस, लेखकों ने Corel Painter से तुलना नहीं की।
90s से digital art के लिए Painter इस्तेमाल करने की वजह यही रही है कि इसमें color mixing अच्छी है और यह वास्तविक art tools से अच्छी तरह मेल खाता है। सिर्फ paint ही नहीं, pastel, pencil, pen वगैरह के विकल्प भी बहुत हैं।
हालांकि यह उन features को अपनी app में जोड़ने के लिए library के रूप में उपलब्ध नहीं कराता था, और वह सचमुच नया और अच्छा लगता है। लेकिन यह संकेत देना कि ऐसा पहले कभी नहीं हुआ, काफी गलत है।
समझ नहीं आता कि AI video boom शुरू होने से 2–3 साल पहले Secret Weapons को $100 million की venture funding क्यों नहीं मिली।
वे सबसे पहले EbSynth के साथ सामने आए थे, जो व्यापक रूप से इस्तेमाल हुआ पहला AI-based video-to-video style transfer और keyframe interpolation system था: https://ebsynth.com/
EbSynth ने Joel Haver जैसे comedians और मिलते-जुलते कई creators पैदा किए: https://www.youtube.com/watch?v=SY3y6zNTiLs&list=PLKtIcOP0Wv...
Kaiber.ai जैसी कई कंपनियों ने भी EbSynth के आधार पर technology बनाई और बड़ी seed funding ली: https://kaiber.ai/
बड़े musicians ने भी सीधे या ऐसी कंपनियों के जरिए music videos में EbSynth का इस्तेमाल किया। Linkin Park: https://www.youtube.com/watch?v=7NK_JOkuSVY, Magdalena Bay: https://www.youtube.com/watch?v=dXLCHvRsgRQ
Secret Weapons AI video और AI creative tools पर कब्ज़ा करने की बहुत अच्छी स्थिति में था, लेकिन ऊपर से देखने पर लगता है कि उसने वह मौका गंवा दिया।
EbSynth masking और tracking के लिए Final Cut Pro plugin जैसा ज्यादा लगता है। संभावित customer base समान हो सकता है, लेकिन engineering team के लिए जरूरी skills और resources काफी अलग हैं।
यह कहना कि Secret Weapons AI video और creative tools पर हावी होने के लिए तैयार था, थोड़ा अतिशयोक्तिपूर्ण लगता है।
मुझे पता नहीं था कि 3 साल पहले भी यह इतना आगे पहुंच चुका था।
library में खुद मेरी खास रुचि नहीं है; मुझे shader वगैरह में इस्तेमाल के लिए सिर्फ pure math implementation चाहिए। GLSL algorithm यहां है, और जिस function की जरूरत है वह
vec3 mixbox_lerpहै।https://github.com/scrtwpns/mixbox/blob/master/shaders/mixbo...
demo बनाने का समय नहीं है, लेकिन यह काफी अच्छी तरह optimized दिखता है और examples में भी अच्छा लगता है। बनाने वालों का काम शानदार है।
3 साल पहले की पिछली चर्चाएं मौजूद हैं।
https://news.ycombinator.com/item?id=30116316 71 points, 15 comments
https://news.ycombinator.com/item?id=30033611 60 points, 13 comments
जानना चाहूंगा कि क्या किसी ने इस तरीके का इस्तेमाल करने वाली commercial painting app Rebelle आजमाई है।
Painter से features कम हैं, लेकिन यही इसकी खूबी है।
अभी जो कमी है, वह charcoal जैसे dry media का सही एहसास और support surface के साथ गहरा integration है। अभी यह ज्यादातर shallow depth map जैसा है, और लकड़ी या खुरदरे कागज, यहां तक कि बादल जैसी सतहों जितना rough महसूस नहीं होता।
फिलहाल यह मेरी पसंदीदा app है, और color mixing तो पहले से ही काफी समय से बहुत अच्छी रही है।
देखने में शानदार है, लेकिन All Rights Reserved + CC-BY-NC होने की वजह से इसे Krita, GIMP, Blender में default implementation के तौर पर शामिल करना असंभव है।
मैं miniatures paint करता हूं, और basic stage से आगे बढ़कर जब glaze के साथ filters या blending इस्तेमाल करना शुरू करते हैं, तो software में painting plan test करना अच्छा नहीं रहता। यह बहुत अच्छा लगता है।
यह वाकई शानदार है और हर painting program में option के तौर पर होना चाहिए, लेकिन दूसरी तरफ लगता है कि कहीं यह painting सीखने की प्रक्रिया को और जटिल न बना दे।
paint colors को मिलाना intuitive नहीं होता, इसलिए यह सीखी जाने वाली skill है।
जीवन के लगभग हर दूसरे क्षेत्र में हम उम्मीद करते हैं कि A और B को मिलाने पर linear बदलाव होगा। पानी में नमक डालने पर नमकीनपन बढ़ता है; हम यह उम्मीद नहीं करते कि किसी बिंदु पर वह खट्टा लगेगा और फिर दोबारा नमकीन हो जाएगा।
webpage पर Mixbox algorithm के mixing examples वास्तविक जैसे दिखते हैं, और दूसरे programs की mixing उलटी inaccurate लगती है।
हालांकि Mixbox वास्तविक physical pigment properties को ध्यान में रखता हुआ नहीं लगता, और ऐसी properties pigment mixing पर अचानक बड़ा असर डाल सकती हैं।