Compositing (کمپوزیٹنگ) متعدد بصری تہوں (layers) کو ایک حتمی تصویر میں یکجا کرنے کا عمل ہے۔ Apple Core Animation دستاویزات، 2025 کے مطابق، موبائل ڈویلپمنٹ میں compositing UI تہوں کو اوورلے کرنے، 3D رینڈر کو انٹرفیس کے ساتھ ملانے اور اینیمیشن بنانے کے لیے استعمال ہوتا ہے۔ Compositing ڈرائنگ آرڈر، شفافیت اور تہوں کے درمیان رنگ مکسنگ کو کنٹرول کرتا ہے۔
اہم نکات
Compositing گرافکس پائپ لائن کا آخری مرحلہ ہے جہاں تمام علیحدہ طور پر رینڈر کی گئی تہیں (3D مناظر، UI عناصر، ویڈیو، سسٹم انٹرفیس) اسکرین پر ڈسپلے کے لیے ایک تصویر میں یکجا کی جاتی ہیں۔ ہر تہہ کا اپنا رنگ، شفافیت (alpha)، مقام اور اسٹیکنگ آرڈر ہو سکتا ہے۔
موبائل ڈویلپمنٹ کے سیاق و سباق میں، compositing یوزر انٹرفیس کے لیے اہم ہے: ونڈوز، بٹن، متن، آئیکن — یہ تمام عناصر ایک منظر میں کمپوز کیے جاتے ہیں۔ Compositing سسٹم ڈرائنگ آرڈر (z-order)، نیم شفاف عناصر کی درست اوورلیپنگ اور UI حالتوں کے درمیان ٹرانزیشن اینیمیشن کا انتظام کرتا ہے۔
گرافکس پائپ لائن میں، compositing تمام شیڈر پاسز اور راسٹرائزیشن مکمل ہونے کے بعد ہوتا ہے۔ GPU فریم بفرز سے تیار تہیں لیتا ہے، blending آپریشنز لگاتا ہے اور نتیجہ کو ڈسپلے پر بھیجنے کے لیے مرکزی فریم بفر (front buffer) میں لکھتا ہے۔
Compositing مختلف تہوں سے رنگوں کا پکسل بہ پکسل مکسنگ (blending) استعمال کرتا ہے۔ آؤٹ پٹ تصویر کا ہر پکسل اوورلے کی گئی تہوں کے پکسل رنگوں کی بنیاد پر شفافیت (alpha چینل) اور منتخب مکسنگ موڈ کو مدنظر رکھتے ہوئے شمار کیا جاتا ہے۔
ہر تہہ میں ایک alpha چینل (RGBA رنگ کا چوتھا جزو) ہوتا ہے جو اس کی دھندلاپن کا تعین کرتا ہے۔ Alpha = 1.0 — مکمل طور پر دھندلا، alpha = 0.0 — مکمل طور پر شفاف۔ Alpha blending پکسل کے رنگ کو آگے (source) اور پیچھے (destination) تہوں کے رنگوں کے وزنی مجموعہ کے طور پر شمار کرتا ہے: نتیجہ = source * alpha + dest * (1 - alpha)۔
Compositing سب سے دور کی تہہ سے قریب ترین (back-to-front) تک انجام دیا جاتا ہے۔ پہلے پس منظر کی تہہ رینڈر کی جاتی ہے، پھر ہر اگلی تہہ اپنی شفافیت کو مدنظر رکھتے ہوئے پچھلے کے اوپر اوورلے کی جاتی ہے۔ Z-order تعین کرتا ہے کہ کون سی تہہ اوپر ہے اور نیچے والیوں کو ڈھانپے گی۔
Compositing مختلف مکسنگ موڈز (blend modes) کو سپورٹ کرتا ہے جو تعین کرتے ہیں کہ تہوں کے رنگ کیسے ملتے ہیں۔ ہر موڈ مختلف بصری اثر دیتا ہے اور اس کی اپنی حسابی لاگت ہوتی ہے۔
| موڈ | فارمولا | استعمال |
|---|---|---|
| Normal (Alpha) | src * a + dst * (1 - a) | شفافیت کے ساتھ معیاری اوورلے |
| Additive | src + dst | چمک کے اثرات، ذرات |
| Multiply | src * dst | شیڈنگ، سائے |
| Screen | 1 - (1 - src) * (1 - dst) | روشنی، ہائی لائٹس |
| Premultiplied Alpha | (src.rgb * a) + dst * (1 - a) | کارکردگی (رن ٹائم ضرب کے بغیر) |
Premultiplied alpha موڈ میں، رنگین چینلز alpha چینل (RGB × A) سے پہلے ہی ضرب دے کر محفوظ کیے جاتے ہیں۔ یہ ہر blending آپریشن میں ضرب کی ضرورت کو ختم کرتا ہے، compositing کو تیز کرتا ہے۔ Premultiplied alpha iOS Core Animation اور Android HWUI میں GPU compositing کے لیے معیاری فارمیٹ ہے۔
ہر موبائل آپریٹنگ سسٹم کا اپنا compositing سسٹم ہے جو اپنے ہارڈویئر پلیٹ فارمز کے لیے بہتر بنایا گیا ہے۔ موبائل OS میں Compositing پورے یوزر انٹرفیس کو رینڈر کرنے کے لیے ذمہ دار ہے۔
iOS میں، compositing Core Animation کے ذریعے منظم کیا جاتا ہے — ایک اعلیٰ سطحی نظام جو Metal یا OpenGL ES پر کام کرتا ہے۔ Core Animation ایک layer tree (تہوں کا درخت) بناتا ہے جو پھر حتمی تصویر میں کمپوز کیا جاتا ہے۔ Core Animation خود بخود تعین کرتا ہے کہ کون سی تہیں تبدیل ہوئی ہیں اور صرف انہیں دوبارہ رینڈر کرتا ہے (اضافاتی compositing)، جس سے GPU پر بوجھ کم ہوتا ہے۔
Android میں، compositing SurfaceFlinger کے ذریعے انجام دیا جاتا ہے — ایک سسٹم سروس جو مختلف ایپلیکیشنز اور سسٹم UI سے سطحوں (surfaces) کو یکجا کرتی ہے۔ SurfaceFlinger HWC (Hardware Composer) استعمال کرتا ہے تاکہ compositing کا کچھ کام ڈسپلے کنٹرولر کے مخصوص ہارڈویئر کو منتقل کیا جا سکے۔
Compositing کارکردگی موبائل ایپلیکیشنز میں ایک عام رکاوٹ ہے، خاص طور پر پیچیدہ اینیمیشنز اور متعدد نیم شفاف تہوں کے اوورلے کے ساتھ۔ ہر اضافی تہہ کو میموری میں پکسلز پڑھنے، ملانے اور لکھنے کی ضرورت ہوتی ہے۔
جدید موبائل ڈیوائسز خصوصی blending یونٹس کے ذریعے GPU پر compositing کرتی ہیں۔ GPU compositing تیز پکسل مکسنگ کے لیے متوازی ROP یونٹس اور ٹیکسچر فلٹرز استعمال کرتا ہے۔ CPU compositing صرف نایاب صورتوں میں (پرانی ڈیوائسز، ٹیسٹنگ) استعمال ہوتا ہے۔
Compositing بهتری موبائل انٹرفیس ڈویلپمنٹ میں اہم کاموں میں سے ایک ہے۔ UI کی ہمواری (60 FPS) براہ راست تہوں کے یکجا ہونے کی کارکردگی پر منحصر ہے۔
Compositing کارکردگی کے تجزیہ کے لیے استعمال کریں: Core Animation Profiler (Xcode Instruments) — تہوں کی تعداد اور compositing فریکوئنسی دکھاتا ہے؛ GPU Debugger (Android Studio) — GPU لوڈ اور overdraw دکھاتا ہے؛ Overdraw Visualization — ایک ڈیبگنگ ٹول جو پکسلز کے بار بار دوبارہ رینڈر ہونے والے علاقے دکھاتا ہے۔
اکثر پوچھے گئے سوالات
Compositing کئی شفاف شیٹس پر بنی تصویروں کو ایک تصویر میں چپکانے جیسا ہے۔ ہر شیٹ ایک تہہ ہے (بٹن، پس منظر، متن)، اور شفافیت تعین کرتی ہے کہ تہیں ایک دوسرے کے ذریعے کیسے دکھائی دیتی ہیں۔
رینڈرنگ — ہر تہہ کا مواد بنانا (بٹن بنانا، 3D ماڈل کو ٹیکسچر کرنا)۔ Compositing — شفافیت اور اسٹیکنگ آرڈر کو مدنظر رکھتے ہوئے تیار تہوں کو حتمی تصویر میں یکجا کرنا۔
Core Animation Metal کے ذریعے GPU پر تہوں کو کمپوز کرتا ہے۔ بڑی تعداد میں نیم شفاف تہوں (overdraw) یا CPU compositing (آف اسکرین رینڈرنگ) کے ساتھ مسائل شروع ہوتے ہیں۔ تشخیص کے لیے Core Animation Profiler استعمال کریں۔
Hardware Composer (HWC) ڈسپلے کنٹرولر کا ایک ہارڈویئر ماڈیول ہے جو GPU کو لوڈ کیے بغیر compositing کرتا ہے۔ HWC ہارڈویئر میں 4-8 تہوں تک یکجا کر سکتا ہے، جس سے بجلی کی کھپت کم ہوتی ہے اور GPU دوسرے کاموں کے لیے آزاد ہوتا ہے۔
جامد تہوں کو یکجا کریں (layer flattening)، جہاں ممکن ہو دھندلے رنگ استعمال کریں، آف اسکرین بفر سائز کم کریں اور غیر ضروری اینیمیشنز سے بچیں جو پورے منظر کی دوبارہ کمپوزیشن کا سبب بنتی ہیں۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں