Rasterization — ما هو، مراحله ومبدأ العمل

المؤلف: IT Sectr نُشر: 2026-06-11 وقت القراءة: 10 دق

Rasterization (التنقيط) هي عملية تحويل الوصف المتجه للبدائيات ثلاثية الأبعاد (مثلثات، خطوط، نقاط) إلى مجموعة من البكسلات (الأجزاء) لعرضها على الشاشة. وفقًا لـ Khronos Group, 2025، فإن التنقيط هو مرحلة تلقائية (غير قابلة للبرمجة) من خط أنابيب الرسومات، تقع بين Vertex Shader و Fragment Shader. يحدد Rasterization بكسلات الشاشة التي تنتمي إلى أي مثلث، ويحسب السمات المُدرجة (المُقحمة) لكل جزء.

الملخص

  • Rasterization — تحويل البدائيات المتجهة إلى صورة نقطية (بكسلات).
  • Scanline conversion — الخوارزمية الأساسية التي تحدد تغطية البكسلات بواسطة المثلث.
  • استيفاء السمات — حساب اللون وإحداثيات النسيج والعمودي لكل جزء.
  • MSAA — أخذ عينات متعددة، يعمل على تنعيم الحواف المتعرجة (aliasing) أثناء التنقيط.
  • الأداء يعتمد التنقيط على عدد المثلثات ودقة الشاشة.

ما هو التنقيط؟

Rasterization هو مرحلة من خط أنابيب الرسومات تقوم بتحويل البدائيات الهندسية (مثلثات، خطوط) إلى مجموعة من الأجزاء لمعالجتها لاحقًا بواسطة Fragment Shader. بيانات الإدخال هي رؤوس المثلث في إحداثيات الشاشة وسماتها (اللون، العموديات، UV). الناتج هو مجموعة من الأجزاء ذات السمات المُقحمة.

على عكس التظليلات القابلة للبرمجة (Vertex Shader و Fragment Shader)، فإن التنقيط هو مرحلة ثابتة (غير قابلة للبرمجة). لا يمكن للمطور تغيير خوارزمية التنقيط، ولكن يمكنه التحكم في معاييرها: وضع القص (culling)، عرض الخط، إزاحة العمق (polygon offset)، وأخذ العينات المتعددة.

دور التنقيط في الرسومات في الوقت الحقيقي

جميع الرسومات الحديثة في الوقت الحقيقي تقريبًا — الألعاب، واجهات المستخدم، AR/VR — تستخدم التنقيط. إنها أكثر طرق العرض أداءً، قادرة على معالجة ملايين المثلثات لكل إطار بمعدل 60 FPS. تم تحسين أجهزة التنقيط في GPU للمعالجة المتوازية لآلاف المثلثات في وقت واحد من خلال كتل ROP (وحدات إخراج العرض) المتخصصة.

كيف يعمل التنقيط؟

تنقيط المثلث يبدأ بعد أن يقوم Vertex Shader بتحويل الرؤوس إلى إحداثيات الشاشة. تأخذ GPU الرؤوس الثلاثة للمثلث وتحدد بكسلات الشاشة التي تقع داخل هذا المثلث.

مراحل تنقيط المثلث

تشمل العملية ثلاث خطوات متسلسلة: تحديد المربع المحيط (bounding box) للمثلث بالبكسلات — فحص كل بكسل داخل المربع المحيط للتحقق من انتمائه للمثلث (دالة الحافة) — حساب السمات المُقحمة (إحداثيات barycentric) لكل بكسل مُغطى. دالة الحافة (Edge function) هي معادلة خطية تحدد أي جانب من حافة المثلث تقع عليه النقطة.

المرحلةالوصفالنتيجة
القص (Clipping)قص المثلثات خارج حدود منفذ العرضالبدائيات المرئية
تحويل منفذ العرضالتحويل إلى إحداثيات الشاشةإحداثيات البكسلات
إعداد المثلثحساب دوال الحافة والمربع المحيطمعايير التنقيط
توليد الأجزاءاختبار التغطية والاستيفاءأجزاء + سمات

خوارزميات التنقيط

Rasterization يمكن تنفيذها بخوارزميات مختلفة، لكل منها مقايضاتها الخاصة بين الأداء والجودة. تستخدم GPU الحديثة مزيجًا من عدة طرق.

خوارزمية المسح الخطي (Scanline)

خوارزمية التنقيط الكلاسيكية المطورة لـ GPU المبكرة. تتم معالجة المثلث سطرًا بسطر (scanline): لكل سطر شاشة يتم تحديد نقاط الدخول والخروج للمثلث، ويتم ملء جميع البكسلات بينها. تحويل المسح الخطي فعال للمثلثات الكبيرة ولكنه يتطلب منطقًا معقدًا للمثلثات ذات الشكل العشوائي.

طريقة نصف المسافة (Half-Space / Edge Function)

تستخدم GPU الحديثة طريقة التنقيط بنصف المسافة: لكل جانب من المثلث يتم حساب دالة حافة — معادلة خطية موجبة من جانب وسالبة من الجانب الآخر. ينتمي البكسل إلى المثلث إذا كانت جميع دوال الحافة الثلاث موجبة. تنقيط نصف المسافة قابل للتوازي بسهولة ومناسب تمامًا لمعماريات SIMD في GPU.

التنقيط القائم على البلاطات (TBR)

تستخدم GPU المحمولة (Qualcomm Adreno, ARM Mali) العرض القائم على البلاطات (TBR). يتم تقسيم الشاشة إلى بلاطات صغيرة (16x16 أو 32x32 بكسل)، ويتم التنقيط لكل بلاطة على حدة. هذا يقلل من عمليات الوصول إلى الذاكرة عن طريق تخزين مخزن الإطارات في ذاكرة محلية سريعة (ذاكرة البلاطات). يقلل TBR من استهلاك الطاقة، وهو أمر بالغ الأهمية للأجهزة المحمولة.

التنقيط مقابل تتبع الأشعة (Ray Tracing)

Rasterization وتتبع الأشعة هما طريقتان مختلفتان جوهريًا لعرض الرسومات ثلاثية الأبعاد. يهيمن التنقيط في التطبيقات في الوقت الحقيقي، بينما يُستخدم تتبع الأشعة في العرض غير المتصل (offline) ويتسلل تدريجيًا إلى الوقت الحقيقي (على GPU المتوافقة مع RTX).

المعيارالتنقيطتتبع الأشعة
المبدأمثلث ← أجزاءشعاع ← تقاطع مع المشهد
السرعةسريع جدًا (ملايين المثلثات/إطار)بطيء (آلاف الأشعة/إطار)
الجودةتتطلب تقنيات إضافية (ظلال، انعكاسات)ظلال وانعكاسات صحيحة فيزيائيًا
GPU المحمولةالطريقة القياسيةدعم محدود (A17 Pro, Snapdragon Gen 3)
استهلاك الطاقةمنخفضمرتفع

MSAA وتنعيم الحواف في التنقيط

يقدم التنقيط مشكلة aliasing — حواف متعرجة (jaggies) عند حدود المثلثات. يحدث هذا لأن البكسل متقطع ولا يمكن تغطيته جزئيًا بواسطة مثلث. لمكافحة aliasing يُستخدم أخذ العينات المتعددة (MSAA).

كيف يعمل MSAA

MSAA (أخذ العينات المتعددة لمكافحة التعرج) يقوم بالتنقيط بمعدل أخذ عينات متزايد (2x، 4x، 8x). بدلاً من عينة واحدة لكل بكسل، يتم استخدام عدة عينات فرعية، كل منها يتم اختبارها لتغطية المثلث. MSAA 4x يعالج 4 عينات فرعية لكل بكسل، مما يوفر تنعيمًا ملحوظًا للحواف دون زيادة دقة العرض بالكامل.

FXAA وطرق ما بعد المعالجة الأخرى

على عكس MSAA، تعمل طرق تنعيم ما بعد المعالجة (FXAA, SMAA, TAA) بعد التنقيط من خلال تحليل الصورة النهائية. FXAA (التنعيم التقريبي السريع لمكافحة التعرج) يكتشف حواف الصورة ويطبق التمويه للتنعيم، ويعمل بشكل أسرع بكثير من MSAA ولكن بجودة أقل.

التنقيط على GPU والتحسين

Rasterization على GPU الحديثة يتم بواسطة كتل أجهزة متخصصة — ROP (وحدات إخراج العرض). يؤثر عدد ROP بشكل مباشر على معدل التعبئة (fill rate) — عدد البكسلات التي يمكن لـ GPU معالجتها في الثانية.

عوامل أداء التنقيط

  • عدد المثلثات — عدد المثلثات لكل إطار. كل مثلث يتطلب تكاليف إضافية للإعداد واختبار الحافة.
  • معدل التعبئة — عدد البكسلات التي تعالجها كتل ROP في الثانية. يعتمد على تردد ساعة GPU وعدد ROP.
  • Overdraw — إعادة تنقيط نفس البكسل بسبب تداخل المثلثات. يتم تحسينه بترتيب الكائنات حسب العمق.

تحسين التنقيط لـ GPU المحمولة

بالنسبة لـ GPU المحمولة (العرض القائم على البلاطات)، تشمل العوامل الحاسمة: تقليل overdraw عبر رفض Z المبكر (early-Z)، استخدام القص الخلفي (back-face culling) لإزالة المثلثات غير المرئية، وإخفاء القص (occlusion culling) لاستبعاد المثلثات المغطاة بالكامل بكائنات أخرى.

الأسئلة الشائعة

ما هو التنقيط بكلمات بسيطة؟

التنقيط هو عملية تحويل المثلثات إلى بكسلات على الشاشة. تأخذ GPU مثلثًا ثلاثي الأبعاد، وتحدد بكسلات الشاشة التي يغطيها، وتمررها إلى Fragment Shader لتلوينها.

كيف يختلف التنقيط عن تتبع الأشعة؟

يقوم التنقيط بإسقاط المثلثات على الشاشة وتحديد تغطية البكسلات (سريع جدًا). تتبع الأشعة يُطلق أشعة من الكاميرا ويتحقق من التقاطع مع الهندسة (أكثر دقة فيزيائيًا ولكنه أبطأ بشكل ملحوظ).

لماذا نحتاج إلى تنعيم الحواف (anti-aliasing) في التنقيط؟

أثناء التنقيط، إما أن ينتمي البكسل بالكامل إلى مثلث أو لا — ومن هنا تأتي الحواف المتعرجة (aliasing). يقوم MSAA بتنعيم الحواف باستخدام عينات فرعية متعددة لكل بكسل، بينما يطبق FXAA مرشحًا على الصورة النهائية.

هل يمكن برمجة مرحلة التنقيط؟

لا، التنقيط هو مرحلة ثابتة من خط أنابيب الرسومات. لا يمكن للمطور تغيير الخوارزمية، ولكن يمكنه التحكم في الإعدادات: القص (culling)، إزاحة المضلع (polygon offset)، وضع التنقيط (نقاط، خطوط، مثلثات)، ومعايير MSAA.

لماذا تستخدم GPU المحمولة العرض القائم على البلاطات؟

العرض القائم على البلاطات (TBR) يقسم الشاشة إلى بلاطات ويعالجها في ذاكرة محلية سريعة بدلاً من VRAM العالمية. هذا يقلل بشكل جذري من استهلاك الطاقة وعرض النطاق الترددي، وهو أمر بالغ الأهمية للأجهزة المحمولة التي تعمل بالبطارية.

الخلاصة

  • Rasterization — تحويل المثلثات المتجهة إلى أجزاء نقطية للعرض على الشاشة.
  • طريقة Half-space — خوارزمية التنقيط الرئيسية في GPU الحديثة.
  • العرض القائم على البلاطات — معمارية التنقيط المستخدمة في GPU المحمولة (Adreno, Mali).
  • Aliasing — مشكلة الحواف المتعرجة، يتم حلها عبر MSAA أو FXAA أو TAA.
  • معدل التعبئة — معيار أداء رئيسي للتنقيط يعتمد على عدد كتل ROP.
  • Overdraw — إعادة تنقيط البكسلات، يتم تحسينه عبر early-Z و occlusion culling.
  • تتبع الأشعة — طريقة بديلة توفر عرضًا صحيحًا فيزيائيًا على حساب الأداء.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا