تظليل

في مجال رسومات الحاسوب ، يُعدّ المُظلِّل عملية قابلة للبرمجة تُطبَّق على البيانات أثناء مرورها عبر مسار العرض . [ 1 ] [ 2 ] تعمل المُظلِّلات على بيانات مثل الرؤوس والأشكال الأولية، وتُنشئ أو تُحوِّل الأشكال الهندسية والأجزاء ، وتحسب الألوان في الصورة المعروضة. [ 2 ]
تستطيع الشيدرز تنفيذ مجموعة واسعة من العمليات. في رسومات الحاسوب الحديثة التي تعمل في الوقت الحقيقي ، تُشغَّل الشيدرز على وحدات معالجة الرسومات (GPUs) - وهي أجهزة مخصصة توفر تنفيذًا متوازيًا للبرامج. ولأن عرض الصور يُعدّ مشكلة متوازية للغاية (حيث يبلغ مؤشر أمدال واحدًا)، تستفيد الشيدرز بشكل كبير من الحوسبة المتوازية ، مثل أجهزة SIMD . وقد أدى السعي نحو عرض أسرع إلى إنتاج معالجات متوازية للغاية، مثل وحدات معالجة الرسومات، والتي تُستخدم الآن للحوسبة العامة . [ 3 ] [ 4 ] تُسمى الشيدرز المستخدمة للأغراض العامة عادةً بالشيدرز الحسابية .
تاريخ
تم تقديم مصطلح "shader" للجمهور لأول مرة من قبل شركة Pixar مع الإصدار 3.0 من مواصفات واجهة RenderMan الخاصة بهم ، والتي نُشرت في الأصل في مايو 1988. [ 5 ]
مع تطور وحدات معالجة الرسومات ، بدأت مكتبات برامج الرسومات الرئيسية مثل OpenGL و Direct3D بدعم التظليل. كانت وحدات معالجة الرسومات الأولى القادرة على التظليل تدعم تظليل البكسل فقط ، ولكن سرعان ما تم تقديم تظليل الرؤوس بمجرد أن أدرك المطورون قوة التظليل. كانت أول بطاقة فيديو مزودة بتظليل بكسل قابل للبرمجة هي Nvidia GeForce 3 (NV20)، التي صدرت عام 2001. [ 6 ] تم تقديم تظليل الهندسة مع Direct3D 10 وOpenGL 3.2. تطورت أجهزة الرسومات نحو نموذج تظليل موحد ، مما جعل جميع أنواع التظليل متساوية.
تظليل الرسومات
يُستخدم التظليل تقليديًا لمعالجة البيانات في مسار معالجة الرسومات للتحكم في عرض الصورة. ويتم تصنيف تظليل الرسومات وفقًا لموقعه في مسار المعالجة، والبيانات التي يتم معالجتها، وواجهة برمجة تطبيقات الرسومات المستخدمة.
تظليل الرؤوس
تُشغَّل مُظلِّلات الرؤوس مرة واحدة لكل رأس ثلاثي الأبعاد مُعطى لمعالج الرسومات. والغرض منها هو تحويل موضع كل رأس ثلاثي الأبعاد في الفضاء الافتراضي إلى الإحداثيات ثنائية الأبعاد التي يظهر بها على الشاشة (بالإضافة إلى قيمة العمق لمخزن Z). [ 7 ] تستطيع مُظلِّلات الرؤوس معالجة خصائص مثل الموضع واللون وإحداثيات النسيج، ولكنها لا تستطيع إنشاء رؤوس جديدة. ينتقل مُخرَج مُظلِّل الرؤوس إلى المرحلة التالية في مسار المعالجة، وهي إما مُظلِّل الهندسة (إن وُجد)، أو مُرَسِّم الصور النقطية . تُتيح مُظلِّلات الرؤوس تحكمًا دقيقًا في تفاصيل الموضع والحركة والإضاءة واللون في أي مشهد يتضمن نماذج ثلاثية الأبعاد .
تظليلات هندسية
تم تقديم مُظلِّلات الهندسة في Direct3D 10 وOpenGL 3.2؛ وكانت متاحة سابقًا في OpenGL 2.0 والإصدارات الأحدث باستخدام الإضافات. [ 8 ] يمكن لهذا النوع من المُظلِّلات توليد عناصر رسومية أولية جديدة ، مثل النقاط والخطوط والمثلثات، من تلك العناصر الأولية التي أُرسلت إلى بداية مسار معالجة الرسومات. [ 9 ]
تُنفَّذ برامج تظليل الهندسة بعد برامج تظليل الرؤوس. وتستقبل هذه البرامج شكلاً هندسياً كاملاً كمدخل، مع إمكانية تضمين معلومات التجاور. على سبيل المثال، عند معالجة المثلثات، تُعتبر الرؤوس الثلاثة مدخلاً لبرنامج تظليل الهندسة. بعد ذلك، يُمكن لبرنامج التظليل إخراج صفر أو أكثر من الأشكال الهندسية، والتي تُحوَّل إلى صور نقطية، ثم تُمرَّر أجزاؤها في النهاية إلى برنامج تظليل البكسل .
تشمل الاستخدامات الشائعة لمُظلِّل الهندسة توليد صور نقطية، وتجزئة الأشكال الهندسية ، وبثق حجم الظل ، والرسم أحادي المرور على خريطة مكعبة . ومن الأمثلة العملية الشائعة لفوائد مُظلِّلات الهندسة التعديل التلقائي لتعقيد الشبكة. حيث تُمرَّر سلسلة من شرائط الخطوط التي تُمثِّل نقاط التحكم لمنحنى إلى مُظلِّل الهندسة، وبناءً على التعقيد المطلوب، يُمكن للمُظلِّل توليد خطوط إضافية تلقائيًا، يُوفِّر كلٌّ منها تقريبًا أفضل للمنحنى.
تظليل الأجزاء
تقوم مُظلِّلات الأجزاء، والمعروفة أيضًا باسم مُظلِّلات البكسل ، بحساب اللون وخصائص أخرى لكل "جزء": وهي وحدة عمل عرض تؤثر على بكسل إخراج واحد على الأكثر . تُخرج أبسط أنواع مُظلِّلات البكسل بكسلًا واحدًا من الشاشة كقيمة لونية؛ كما توجد مُظلِّلات أكثر تعقيدًا ذات مُدخلات/مُخرجات متعددة. [ 10 ] تتراوح مُظلِّلات البكسل من إخراج نفس اللون دائمًا، إلى تطبيق قيمة إضاءة ، إلى رسم خرائط النتوءات ، والظلال ، واللمعان ، والشفافية ، وغيرها من الظواهر. يُمكنها تغيير عمق الجزء ( لتخزين العمق )، أو إخراج أكثر من لون واحد إذا كانت هناك أهداف عرض متعددة نشطة. في الرسومات ثلاثية الأبعاد، لا يُمكن لمُظلِّل البكسل وحده إنتاج بعض أنواع التأثيرات المُعقدة لأنه يعمل فقط على جزء واحد، دون معرفة هندسة المشهد (أي بيانات الرؤوس). ومع ذلك، فإن مُظلِّلات البكسل لديها معرفة بإحداثيات الشاشة التي يتم رسمها، ويمكنها أخذ عينات من الشاشة والبكسلات المُجاورة إذا تم تمرير محتويات الشاشة بأكملها كنسيج إلى المُظلِّل. تُمكّن هذه التقنية من تطبيق مجموعة واسعة من تأثيرات المعالجة اللاحقة ثنائية الأبعاد ، مثل التمويه أو اكتشاف/تحسين الحواف في الرسوم المتحركة . كما يُمكن تطبيق مُظلِّلات البكسل في المراحل الوسيطة على أي صور ثنائية الأبعاد - سواء كانت صورًا متحركة أو نسيجًا - ضمن مسار المعالجة ، بينما تتطلب مُظلِّلات الرؤوس دائمًا مشهدًا ثلاثي الأبعاد. على سبيل المثال، يُعد مُظلِّل البكسل النوع الوحيد من المُظلِّلات الذي يُمكنه العمل كمعالج لاحق أو مُرشِّح لتدفق الفيديو بعد تحويله إلى صورة نقطية .
تظليلات التبليط
قدّمت OpenGL 4.0 وDirect3D 11 فئة تظليل جديدة تُسمى مُظلل التجزئة. أضافت هذه الفئة مرحلتين جديدتين للتظليل إلى النموذج التقليدي: مُظللات التحكم في التجزئة (المعروفة أيضًا باسم مُظللات الهيكل) ومُظللات تقييم التجزئة (المعروفة أيضًا باسم مُظللات النطاق )، والتي تسمح معًا بتقسيم الشبكات الأبسط إلى شبكات أدق أثناء التشغيل وفقًا لدالة رياضية. يمكن ربط هذه الدالة بمجموعة متنوعة من المتغيرات، أبرزها المسافة من كاميرا العرض للسماح بتغيير مستوى التفاصيل بشكل فعّال . يتيح ذلك للأجسام القريبة من الكاميرا الحصول على تفاصيل دقيقة، بينما يمكن للأجسام الأبعد أن تحتوي على شبكات أكثر خشونة، مع الحفاظ على جودة مماثلة. كما يُمكن لهذه التقنية تقليل عرض النطاق الترددي المطلوب للشبكة بشكل كبير من خلال السماح بتحسين الشبكات داخل وحدات التظليل بدلاً من تقليل دقة الشبكات المعقدة جدًا من الذاكرة. يمكن لبعض الخوارزميات زيادة دقة أي شبكة عشوائية، بينما تسمح خوارزميات أخرى بـ "التلميح" في الشبكات لتحديد الرؤوس والحواف الأكثر تميزًا.
تظليلات الأشكال الأولية والشبكية
في عام 2017 تقريبًا، أضافت بنية AMD Vega الدقيقة دعمًا لمرحلة تظليل جديدة - تظليلات بدائية - تشبه إلى حد ما تظليلات الحوسبة مع إمكانية الوصول إلى البيانات اللازمة لمعالجة الهندسة. [ 11 ] [ 12 ]
قدمت شركة إنفيديا تقنيات تظليل الشبكة وتظليل المهام مع معمارية تورينج الدقيقة في عام 2018، وهي مصممة على غرار تظليل الحوسبة. [ 13 ] [ 14 ] تُعد معمارية تورينج من إنفيديا أول معمارية دقيقة لوحدة معالجة الرسومات في العالم تدعم تظليل الشبكة من خلال واجهة برمجة التطبيقات DirectX 12 Ultimate، وذلك قبل عدة أشهر من إطلاق سلسلة Ampere RTX 30. [ 15 ]
في عام 2020، أطلقت شركتا AMD وNvidia معماريتي RDNA 2 و Ampere الدقيقتين، واللتان تدعمان تظليل الشبكة عبر DirectX 12 Ultimate . [ 16 ] تُمكّن هذه المُظللات الشبكية وحدة معالجة الرسومات من التعامل مع خوارزميات أكثر تعقيدًا، مما يُخفف العبء عن وحدة المعالجة المركزية ويُقلل من حجم العمل المُلقى على وحدة معالجة الرسومات، وفي عمليات العرض المكثفة للخوارزميات، تُزيد من معدل الإطارات أو عدد المثلثات في المشهد بمقدار عشرة أضعاف. [ 17 ] أعلنت Intel أن وحدات معالجة الرسومات Intel Arc Alchemist، التي ستُطرح في الربع الأول من عام 2022، ستدعم تظليل الشبكة. [ 18 ]
تظليل تتبع الأشعة
تدعم مايكروسوفت تقنية تتبع الأشعة عبر DirectX Raytracing ، وتدعمها مجموعة كرونوس عبر Vulkan و GLSL و SPIR-V ، [ 19 ] وتدعمها آبل عبر Metal . أطلقت شركتا إنفيديا وإيه إم دي على أجزاء الأجهزة المسؤولة عن تنفيذ هذه التقنية اسم "نوى تتبع الأشعة". [ 20 ]
حساب النوى
نوى الحوسبة هي إجراءات مُجمّعة لمُسرّعات عالية الإنتاجية (مثل وحدات معالجة الرسومات (GPUs) ومعالجات الإشارات الرقمية (DSPs) ومصفوفات البوابات المنطقية القابلة للبرمجة الميدانية (FPGAs))، وهي منفصلة عن البرنامج الرئيسي (الذي يعمل عادةً على وحدة المعالجة المركزية ) ولكنها تُستخدم بواسطته. يمكن تحديدها بلغة برمجة منفصلة مثل " OpenCL C "، أو كـ"مُظلّلات حسابية" مكتوبة بلغة تظليل ، أو مُضمّنة مباشرةً في كود التطبيق المكتوب بلغة عالية المستوى . [ 21 ] [ 22 ] تُشابه نوى الحوسبة تقريبًا الحلقات الداخلية عند تنفيذ الخوارزميات في اللغات التقليدية (باستثناء عدم وجود عملية تسلسلية ضمنية)، أو الكود المُمرّر إلى المُكرّرات الداخلية . تدعم مايكروسوفت هذا كـ DirectCompute .
يتوافق نموذج البرمجة هذا ، الذي يعتمد على برنامج واحد وبيانات متعددة، بشكل جيد مع معالجات المتجهات : إذ يُفترض أن كل استدعاء لنواة ضمن دفعة بيانات مستقل، مما يسمح بتنفيذ البيانات بالتوازي . مع ذلك، قد تُستخدم العمليات الذرية أحيانًا للمزامنة بين العناصر (للعمليات المترابطة) في بعض الحالات. تُعطى الاستدعاءات الفردية مؤشرات (في بُعد واحد أو أكثر) يمكن من خلالها الوصول إلى بيانات المخزن المؤقت بشكل عشوائي (بما في ذلك عمليات التوزيع والتجميع )، طالما يُراعى افتراض عدم التداخل.
توفر واجهة برمجة تطبيقات Vulkan تمثيل SPIR-V الوسيط لوصف كلٍ من مُظلِّلات الرسومات ونوى الحوسبة بطريقة مستقلة عن اللغة والجهاز . والهدف من ذلك هو تسهيل تطور اللغات وتوفير قدرة أكثر سلاسة على الاستفادة من إمكانيات الحوسبة لوحدة معالجة الرسومات، بما يتماشى مع تطورات الأجهزة مثل بنية الذاكرة الموحدة وبنية النظام غير المتجانس . وهذا يسمح بتعاون أوثق بين وحدة المعالجة المركزية ووحدة معالجة الرسومات.
أُنجزت جهودٌ كبيرة في مجال توليد النواة باستخدام نماذج التعلم المحدود (LLMs) كوسيلة لتحسين الشيفرة. يوفر برنامج KernelBench [ 23 ] ، الذي أنشأه مختبر ذكاء التوسع في جامعة ستانفورد ، إطار عمل لتقييم قدرة نماذج التعلم المحدود على توليد نواة فعّالة لوحدات معالجة الرسومات (GPU). وقد طورت شركة Cognition برنامج Kevin 32-B لإنشاء نواة CUDA فعّالة، والذي كان، حتى مايو 2025، النموذج الأعلى أداءً على برنامج KernelBench. [ 24 ]
معالجات التظليل الحاسوبية
تشير مُظلِّلات الحوسبة إلى نوى حسابية مكتوبة بلغة تظليل . تتشارك هذه المُظلِّلات وحدات التنفيذ مع مُظلِّلات الرؤوس ومُظلِّلات البكسل على وحدات معالجة الرسومات، وهو مثال على تشغيل GPGPU . يمكن استخدامها في مسارات معالجة الرسومات لأغراض مثل إضافة مراحل في الرسوم المتحركة أو خوارزميات الإضاءة (مثل العرض الأمامي المُجزَّأ )، أو لأغراض أخرى غير متعلقة بالرسومات. تسمح بعض واجهات برمجة تطبيقات العرض لمُظلِّلات الحوسبة بمشاركة موارد البيانات بسهولة مع مسار معالجة الرسومات، مما يُسهِّل دمج الرسومات والحوسبة.
تظليلات الموتر
تُعدّ مُظلِّلات الموترات برامج مُسرِّعة تُعنى بعمليات المصفوفات على المصفوفات الكبيرة ، وهو نوع من العمليات شائع الاستخدام في الذكاء الاصطناعي القائم على الشبكات العصبية . يُمكن تشغيلها على وحدات المعالجة العصبية (NPUs) أو وحدات معالجة الرسومات (GPUs) . تدعم مايكروسوفت مُظلِّلات الموترات عبر DirectML ، ومجموعة كرونوس عبر OpenVX ، وآبل عبر Core ML ، وجوجل عبر TensorFlow ، ومؤسسة لينكس عبر ONNX . [ 25 ] أطلقت شركتا إنفيديا وإيه إم دي على أجزاء الأجهزة المسؤولة عن تنفيذ هذه المُظلِّلات اسم "نوى الموترات". [ 26 ]
برمجة
توجد عدة لغات برمجة مخصصة لكتابة برامج التظليل، ويعتمد اختيار اللغة على بيئة التشغيل المستهدفة. لغة التظليل المستخدمة في OpenGL هي GLSL ، بينما يستخدم Direct3D لغة HLSL . أما إطار عمل Metal ، المستخدم في أجهزة Apple، فيحتوي على لغة تظليل خاصة به تُسمى لغة تظليل Metal .
في واجهات برمجة التطبيقات الرسومية الحديثة، تُترجم المُظللات بشكل متزايد إلى لغة SPIR-V الوسيطة قبل توزيعها على المستخدم النهائي. يتيح هذا المعيار خيارات أكثر مرونة للغة التظليل، بغض النظر عن المنصة المستهدفة. [ 27 ] وقد دعمت Vulkan وOpenGL لغة SPIR-V في البداية، وهي تُعتمد الآن أيضًا في Direct3D. [ 28 ]
محررات تظليل واجهة المستخدم الرسومية
تتضمن منصات تطوير ألعاب الفيديو الحديثة ، مثل Unity و Unreal Engine و Godot، بشكل متزايد محررات قائمة على العقد ، تُتيح إنشاء تظليلات دون الحاجة إلى كتابة أي كود برمجي. بدلاً من ذلك، يُعرض على المستخدم رسم بياني موجه من العقد المتصلة، يسمح له بتوجيه مختلف الخامات والخرائط والوظائف الرياضية إلى قيم إخراجية مثل لون الانتشار، ولون الانعكاس وشدته، والخشونة/المعدنية، والارتفاع، والعمودي، وما إلى ذلك. ثم يُجمّع الرسم البياني في مُظلل.
في سياقات تطوير الويب، ظهرت أيضًا أدوات التظليل المرئية والقائمة على المكونات. توفر منصات مثل shaders.com تركيبًا قائمًا على المكونات للتظليل من أجل دمجه في أطر عمل الواجهة الأمامية بما في ذلك Vue و React و Svelte ، بينما تركز أدوات مثل Shadertoy وFragCoord.xyz على تأليف التظليل منخفض المستوى وتصحيح الأخطاء.
انظر أيضاً
مراجع
- ↑ "Vulkan® 1.4.323 - مواصفات" . مجموعة كرونوس . تم الاطلاع عليه في 28 يوليو 2025 .
- 1 2 "نظام رسومات OpenGL®: المواصفات" (ملف PDF) . مجموعة كرونوس. ص 87. تم الاطلاع عليه في 28 يوليو 2025 .
- ↑ "موسوعة بريتانيكا: وحدة معالجة الرسومات" . موسوعة بريتانيكا . تم الاطلاع عليه بتاريخ 28 يوليو 2025 .
- ↑ بوغان، شاكيا؛ بريسل، دانيال (2007). وحدات معالجة الرسومات: منصة ناشئة للحوسبة للأغراض العامة (ملف PDF) . مختبر أبحاث الجيش .
- ↑ "مواصفات واجهة RenderMan" . مؤرشفة من الأصل في 25 يونيو 2018.
- ↑ ليلي، بول (19 مايو 2009). "من فودو إلى جي فورس: التاريخ الرائع للرسومات ثلاثية الأبعاد" . بي سي غيمر - عبر www.pcgamer.com.
- ↑ "درس تعليمي حول GLSL - تظليل الرؤوس" . 9 يونيو 2011.
- ↑ مُظلل الهندسة - OpenGL . تم الاطلاع عليه بتاريخ 21 ديسمبر 2011.
- ↑ "مراحل خط الأنابيب (Direct3D 10) (Windows)" . msdn.microsoft.com . 6 يناير 2021.
- ↑ "درس تعليمي حول GLSL - تظليل الأجزاء" . 9 يونيو 2011.
- ↑ "الكشف عن بطاقة Radeon RX Vega: تعد AMD بأداء ألعاب بدقة 4K مقابل 499 دولارًا - Trusted Reviews" . TrustedReviews . 31 يوليو 2017.
- ↑ "الستار يُسدل على معمارية فيغا من AMD" . 5 يناير 2017.
- ↑ "نظرة معمقة على بنية تورينج من إنفيديا" . 14 سبتمبر 2018.
- ↑ "مقدمة إلى تظليل شبكة تورينج" . 17 سبتمبر 2018.
- ↑ "تم إصدار برنامج تشغيل DirectX 12 Ultimate Game Ready؛ ويتضمن أيضًا دعمًا لـ 9 شاشات ألعاب جديدة متوافقة مع G-SYNC" .
- ↑ "الإعلان عن DirectX 12 Ultimate" . مدونة مطوري DirectX . 19 مارس 2020. تم الاطلاع عليه في 25 مايو 2021 .
- ↑ "إضاءة واقعية في لعبة Justice باستخدام تقنية التظليل الشبكي" . مدونة مطوري Nvidia . 21 مايو 2021. تم الاطلاع عليه بتاريخ 25 مايو 2021 .
- ↑ سميث، رايان. "يوم هندسة إنتل 2021: لمحة سريعة عن هندسة معالج الرسوميات Xe-HPG" . أناند تك . مؤرشف من الأصل في 19 أغسطس 2021.
- ↑ "إصدار المواصفات النهائية لتقنية تتبع الأشعة في فولكان" . مدونة. مجموعة كرونوس . 23 نوفمبر 2020. تاريخ الاطلاع: 22 فبراير 2021 .
- ↑ "RTSL: لغة تظليل تتبع الأشعة" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 12 أكتوبر 2011.
- ↑ مقدمة في برمجة الحوسبة في ميتال ، 14 أكتوبر 2014
- ↑ برنامج تعليمي حول CUDA - النواة ، 11 يوليو 2009
- ↑ https://scalingintelligence.stanford.edu/blogs/kernelbench/ KernelBench
- ↑ بارونيو، كارلو؛ مارسيلا، بيترو؛ بان، بن؛ ألبرتي، سيلاس (6 مايو 2025). "كيفن-32ب: التعلم المعزز متعدد الأدوار لكتابة نواة CUDA | الإدراك" . cognition.com .
- ↑ "دليل ترحيل NNAPI" . مطورو أندرويد . تم الاطلاع عليه في 1 أغسطس 2024 .
- ↑ "مراجعة حول بنية وحدة معالجة الرسومات" (ملف PDF) . مؤرشف من الأصل (ملف PDF) في 6 سبتمبر 2024.
- ^ كيسينيتش ، جون (2015). “مقدمة إلى SPIR-V” (PDF) . مجموعة خرونوس .
- ↑ ناقش، ألكسندر ك (20 سبتمبر 2024). "مايكروسوفت دايركت إكس 12 تتحول إلى SPIR-V كتنسيق تبادل افتراضي" . TechPowerUp . تم الاسترجاع في 8 سبتمبر 2025 .
للمزيد من القراءة
- أبستيل، ستيف (1990). دليل ريندرمان: دليل المبرمج للرسومات الحاسوبية الواقعية . أديسون-ويسلي. ISBN 0-201-50868-0.
- إيبرت، ديفيد س .؛ موسغريف، ف. كينتون ؛ بيتشي، داروين ؛ بيرلين، كين ؛ وورلي، ستيفن (1994). التكسية والنمذجة: منهج إجرائي . AP Professional. ISBN 0-12-228730-4.
- فرناندو، رانديما ؛ كيلغارد، مارك (2003). دليل Cg التعليمي: الدليل الشامل للرسومات القابلة للبرمجة في الوقت الحقيقي . أديسون-ويسلي بروفيشنال. ISBN 0-321-19496-9.
- روست، راندي جيه (2004). لغة تظليل OpenGL . أديسون-ويسلي بروفيشنال. ISBN 0-321-19789-5.
روابط خارجية
- امتداد تظليل الهندسة في OpenGL
- برنامج ريمر التعليمي لـ DirectX وHLSL : برنامج تعليمي لـ HLSL باستخدام DirectX مع العديد من نماذج التعليمات البرمجية
- مراحل خط الأنابيب (Direct3D 10)
- تظليل
