Rasterization (راسٹرائزیشن) تین جہتی ابتدائی اشکال (مثلث، لکیریں، پوائنٹس) کی ویکٹر تفصیل کو اسکرین پر ڈسپلے کرنے کے لیے پکسلز (ٹکڑوں) کے سیٹ میں تبدیل کرنے کا عمل ہے۔ Khronos Group, 2025 کے مطابق، راسٹرائزیشن گرافکس پائپ لائن کا ایک خودکار (غیر پروگرام قابل) مرحلہ ہے، جو Vertex Shader اور Fragment Shader کے درمیان واقع ہے۔ Rasterization اسکرین کے کون سے پکسلز کس مثلث سے تعلق رکھتے ہیں اس کا تعین کرتا ہے اور ہر ٹکڑے کے لیے درج کردہ (انٹرپولیٹڈ) خصوصیات کا حساب لگاتا ہے۔
اہم نکات
Rasterization گرافکس پائپ لائن کا ایک مرحلہ ہے جو ہندسی ابتدائی اشکال (مثلث، لکیریں) کو Fragment Shader کے ذریعے مزید پروسیسنگ کے لیے ٹکڑوں کے سیٹ میں تبدیل کرتا ہے۔ ان پٹ ڈیٹا اسکرین کوآرڈینیٹ میں مثلث کے کونے اور ان کی خصوصیات (رنگ، نارملز، UV) ہیں۔ آؤٹ پٹ انٹرپولیٹڈ خصوصیات کے ساتھ ٹکڑوں کا ایک سیٹ ہے۔
پروگرام قابل شیڈرز (Vertex Shader اور Fragment Shader) کے برعکس، راسٹرائزیشن ایک مقررہ (غیر پروگرام قابل) مرحلہ ہے۔ ڈویلپر راسٹرائزیشن الگورتھم کو تبدیل نہیں کر سکتا، لیکن اس کے پیرامیٹرز کو کنٹرول کر سکتا ہے: کلنگ موڈ، لائن کی چوڑائی، ڈیپتھ آفسیٹ (polygon offset) اور ملٹی سیمپلنگ۔
تقریباً تمام جدید ریئل ٹائم گرافکس — گیمز، UI، AR/VR — راسٹرائزیشن استعمال کرتے ہیں۔ یہ سب سے زیادہ کارآمد رینڈرنگ طریقہ ہے، جو 60 FPS پر فی فریم لاکھوں مثلث پراسیس کرنے کی صلاحیت رکھتا ہے۔ GPU راسٹرائزر خصوصی ROP (رینڈر آؤٹ پٹ یونٹ) بلاکس کے ذریعے ایک ساتھ ہزاروں مثلث کی متوازی پروسیسنگ کے لیے بہتر بنائے گئے ہیں۔
مثلث راسٹرائزیشن Vertex Shader کے کونوں کو اسکرین کوآرڈینیٹ میں تبدیل کرنے کے بعد شروع ہوتی ہے۔ GPU ایک مثلث کے تین کونے لیتا ہے اور اسکرین کے ان پکسلز کا تعین کرتا ہے جو اس مثلث کے اندر ہیں۔
اس عمل میں تین ترتیب وار مراحل شامل ہیں: مثلث کا پکسلز میں باؤنڈنگ باکس کا تعین — باؤنڈنگ باکس کے اندر ہر پکسل کی مثلث سے وابستگی کی جانچ (ایج فنکشن) — ہر احاطہ شدہ پکسل کے لیے انٹرپولیٹڈ خصوصیات (بیری سینٹرک کوآرڈینیٹ) کا حساب۔ ایج فنکشن ایک لکیری مساوات ہے جو تعین کرتی ہے کہ ایک نقطہ مثلث کے کنارے کے کس طرف واقع ہے۔
| مرحلہ | وضاحت | نتیجہ |
|---|---|---|
| کلپنگ | ویوپورٹ حدود سے باہر مثلث کاٹنا | مرئی ابتدائی اشکال |
| ویوپورٹ ٹرانسفارم | اسکرین کوآرڈینیٹ میں تبدیلی | پکسل کوآرڈینیٹ |
| مثلث سیٹ اپ | ایج فنکشنز اور باؤنڈنگ باکس کا حساب | راسٹرائزیشن پیرامیٹرز |
| ٹکڑوں کی تخلیق | کوریج ٹیسٹ اور انٹرپولیشن | ٹکڑے + خصوصیات |
Rasterization کو مختلف الگورتھم کے ذریعے لاگو کیا جا سکتا ہے، ہر ایک کی کارکردگی اور معیار کے درمیان اپنی تجارت ہوتی ہے۔ جدید GPU کئی طریقوں کا مجموعہ استعمال کرتے ہیں۔
ابتدائی GPU کے لیے تیار کردہ کلاسک راسٹرائزیشن الگورتھم۔ مثلث کو لائن بہ لائن (اسکین لائن) پراسیس کیا جاتا ہے: اسکرین کی ہر لائن کے لیے مثلث کے داخلے اور خارج ہونے کے پوائنٹس کا تعین کیا جاتا ہے اور ان کے درمیان کے تمام پکسلز بھرے جاتے ہیں۔ Scanline conversion بڑے مثلث کے لیے موثر ہے لیکن صوابدیدی شکل کے مثلث کے لیے پیچیدہ منطق کی ضرورت ہوتی ہے۔
جدید GPU ہاف اسپیس راسٹرائزیشن طریقہ استعمال کرتے ہیں: مثلث کے ہر طرف کے لیے ایک ایج فنکشن کا حساب لگایا جاتا ہے — ایک لکیری مساوات جو ایک طرف مثبت اور دوسری طرف منفی ہے۔ ایک پکسل مثلث سے تعلق رکھتا ہے اگر تینوں ایج فنکشنز مثبت ہوں۔ Half-space rasterization آسانی سے متوازی کیا جا سکتا ہے اور SIMD GPU فن تعمیر کے لیے موزوں ہے۔
موبائل GPU (Qualcomm Adreno, ARM Mali) ٹائل پر مبنی رینڈرنگ (TBR) استعمال کرتے ہیں۔ اسکرین کو چھوٹے ٹائلز (16x16 یا 32x32 پکسل) میں تقسیم کیا جاتا ہے اور راسٹرائزیشن ہر ٹائل کے لیے الگ سے کی جاتی ہے۔ یہ فریم بفر کو تیز مقامی میموری (ٹائل میموری) میں ذخیرہ کرکے میموری تک رسائی کو کم سے کم کرتا ہے۔ TBR بجلی کی کھپت کو کم کرتا ہے، جو موبائل آلات کے لیے اہم ہے۔
Rasterization اور رے ٹریسنگ 3D گرافکس رینڈرنگ کے دو بنیادی طور پر مختلف طریقے ہیں۔ راسٹرائزیشن ریئل ٹائم ایپلی کیشنز میں غالب ہے، جبکہ رے ٹریسنگ آف لائن رینڈرنگ میں استعمال ہوتی ہے اور آہستہ آہستہ ریئل ٹائم میں داخل ہو رہی ہے (RTX کے مطابق GPU پر)۔
| پیرامیٹر | Rasterization | Ray Tracing |
|---|---|---|
| اصول | مثلث → ٹکڑے | شعاع → منظر کا تقاطع |
| رفتار | بہت تیز (لاکھوں مثلث/فریم) | سست (ہزاروں شعاعیں/فریم) |
| معیار | اضافی تکنیکوں کی ضرورت (سائے، عکاسی) | طبعی طور پر درست سائے اور عکاسی |
| موبائل GPU | معیاری طریقہ | محدود سپورٹ (A17 Pro, Snapdragon Gen 3) |
| بجلی کی کھپت | کم | زیادہ |
راسٹرائزیشن aliasing کا مسئلہ پیدا کرتی ہے — مثلث کی حدود میں دانت دار کنارے (jaggies)۔ یہ اس لیے ہوتا ہے کیونکہ پکسل مجرد ہوتا ہے اور مثلث کے ذریعے جزوی طور پر احاطہ نہیں کیا جا سکتا۔ aliasing سے نمٹنے کے لیے ملٹی سیمپلنگ (MSAA) استعمال کی جاتی ہے۔
MSAA (ملٹی سیمپل اینٹی ایلیئسنگ) بڑھی ہوئی سیمپلنگ ریٹ (2x, 4x, 8x) پر راسٹرائزیشن انجام دیتا ہے۔ فی پکسل ایک سیمپل کے بجائے، متعدد ذیلی سیمپل استعمال کیے جاتے ہیں، ہر ایک کو مثلث کوریج کے لیے جانچا جاتا ہے۔ MSAA 4x فی پکسل 4 ذیلی سیمپل پراسیس کرتا ہے، جس سے رینڈرنگ ریزولوشن کو مکمل طور پر بڑھائے بغیر نمایاں کنارے ہموار ہوتے ہیں۔
MSAA کے برعکس، پوسٹ پروسیس اینٹی ایلیئسنگ طریقے (FXAA, SMAA, TAA) حتمی تصویر کا تجزیہ کرکے راسٹرائزیشن کے بعد کام کرتے ہیں۔ FXAA (فاسٹ اپروکسیمیٹ اینٹی ایلیئسنگ) تصویر کے کناروں کا پتہ لگاتا ہے اور ہموار کرنے کے لیے دھندلاپن لاگو کرتا ہے، MSAA سے نمایاں طور پر تیز کام کرتا ہے لیکن کم معیار کے ساتھ۔
Rasterization جدید GPU پر خصوصی ہارڈویئر بلاکس — ROP (رینڈر آؤٹ پٹ یونٹ) کے ذریعے انجام دی جاتی ہے۔ ROP کی تعداد براہ راست فل ریٹ کو متاثر کرتی ہے — پکسلز کی تعداد جو GPU فی سیکنڈ پراسیس کر سکتا ہے۔
موبائل GPU (ٹائل پر مبنی رینڈرنگ) کے لیے اہم عوامل میں شامل ہیں: ابتدائی-Z ریجیکشن کے ذریعے اوور ڈرا کو کم سے کم کرنا، پوشیدہ مثلث کو ہٹانے کے لیے بیک فیس کلنگ کا استعمال، اور دیگر اشیاء سے مکمل طور پر ڈھکے ہوئے مثلث کو مسترد کرنے کے لیے occlusion culling کا استعمال۔
اکثر پوچھے گئے سوالات
راسٹرائزیشن مثلث کو اسکرین پر پکسلز میں تبدیل کرنے کا عمل ہے۔ GPU تین جہتی مثلث لیتا ہے، تعین کرتا ہے کہ اسکرین کے کون سے پکسلز اسے ڈھانپتے ہیں، اور رنگنے کے لیے انہیں Fragment Shader کو بھیجتا ہے۔
راسٹرائزیشن مثلث کو اسکرین پر پروجیکٹ کرتی ہے اور پکسل کوریج کا تعین کرتی ہے (بہت تیز)۔ رے ٹریسنگ کیمرے سے شعاعیں چھوڑتی ہے اور جیومیٹری کے ساتھ تقاطع کی جانچ کرتی ہے (طبعی طور پر زیادہ درست لیکن نمایاں طور پر سست)۔
راسٹرائزیشن کے دوران، ایک پکسل یا تو مکمل طور پر مثلث سے تعلق رکھتا ہے یا نہیں — اس لیے دانت دار کنارے (aliasing) پیدا ہوتے ہیں۔ MSAA فی پکسل متعدد ذیلی سیمپل استعمال کرکے کناروں کو ہموار کرتا ہے، جبکہ FXAA حتمی تصویر پر فلٹر لگاتا ہے۔
نہیں، راسٹرائزیشن گرافکس پائپ لائن کا ایک مقررہ مرحلہ ہے۔ ڈویلپر الگورتھم کو تبدیل نہیں کر سکتا لیکن ترتیبات کو کنٹرول کر سکتا ہے: کلنگ، پولیگون آفسیٹ، راسٹرائزیشن موڈ (پوائنٹس، لکیریں، مثلث) اور MSAA پیرامیٹرز۔
ٹائل پر مبنی رینڈرنگ (TBR) اسکرین کو ٹائلز میں تقسیم کرتی ہے اور انہیں عالمی VRAM کے بجائے تیز مقامی میموری میں پراسیس کرتی ہے۔ یہ بجلی کی کھپت اور بینڈوتھ کو یکسر کم کرتی ہے، جو بیٹری سے چلنے والے موبائل آلات کے لیے اہم ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں