ما هو برنامج OpenGL® الانتقاء؟

انتقاء OpenGL® في برمجة الكمبيوتر هو عملية تحديد الكائن داخل مشهد ثلاثي الأبعاد يقع في نقطة معينة على الشاشة بمجرد عرض المشهد. يمكن أن يشير أيضًا إلى تحديد موقع كائنات متعددة في نقطة أو داخل مربع. في أغلب الأحيان ، يتم استخدام انتقاء OpenGL® لتحديد أي كائن ثلاثي الأبعاد على الشاشة يحاول المستخدم تحديده باستخدام مؤشر الماوس. في حين أن هذه العملية قد تبدو بسيطة ، إلا أن هناك العديد من التفاصيل الدقيقة حول كيفية عرض OpenGL® للمشهد الذي يمكن أن يجعله معقدًا إلى حد ما. بالإضافة إلى ذلك ، هناك مواطن الخلل الجوهرية في بعض بطاقات الرسومات وبرامج التشغيل التي يمكن أن تتسبب في فشل وظيفة انتقاء OpenGL® وإرجاع نتائج خاطئة.

عندما ينظر المستخدم إلى مشهد ثلاثي الأبعاد على شاشة الكمبيوتر ، تُعرف الصورة الناتجة باسم عرض المشهد. يتم تخزين المشهد في الواقع في الذاكرة كمجموعة من الأشكال أو المضلعات البدائية ، والتي هي في حد ذاتها مجرد مجموعات من النقاط ثلاثية الأبعاد داخل مساحة المشهد. يستخدم الكمبيوتر إحداثيات العالم ، والتي تسمى أحيانًا إحداثيات مطلقة ، لأداء معظم الوظائف الأساسية التي تتعامل مع الكائنات في المشهد. في معظم التطبيقات ، يكون المستخدم قادرًا على المناورة في عرض المشهد إلى زوايا مختلفة بحيث يمكن رؤية الأشياء من منظورات مختلفة. يُطلق على الموقع الافتراضي للمستخدم داخل المشهد زاوية الكاميرا أو موضع الكاميرا.

يأتي تعقيد التقاط برنامج OpenGL® من تحديد موقع الماوس على الشاشة ثنائية الأبعاد (2D) من موضع وزاوية اعتباطية محتملة داخل المشهد ، أي موضع الكاميرا. بالإضافة إلى ذلك ، نظرًا لأن العرض من منظور العارض البشري ثنائي الأبعاد حقًا ، فلا توجد طريقة للمستخدم لتوفير عمق نقرة الماوس داخل المشهد. وظيفة الانتقاء OpenGL® تحل هذه المشكلة المعقدة بطريقتين.

الأول هو أنه بدلاً من إجراء سلسلة من العمليات الحسابية المنفصلة لترجمة مكان وجود العارض بشكل تجريدي ثم العثور على كائن في نافذة العرض ، فإن الوظيفة تعرض المشهد بالفعل كما هو الحال عند العمل بشكل طبيعي ، باستثناء أن العرض المستخدم لا يتم عرض التحديد ، يتم استخدامه فقط لحساب المواضع الصحيحة للكائنات. الفرق هو أنه بدلاً من عرض المنطقة بأكملها التي ستكون مرئية للمستخدم ، فإنه يعرض فقط المنطقة التي يوجد بها الماوس. هذا يعني أن أي كائنات يتم عرضها تكون تقنيًا عند النقطة التي يوجد بها مؤشر الماوس.

يتم حل المشكلة الثانية ، وهي عدم وجود طريقة للإشارة إلى عمق المنطقة المحددة ، عن طريق إرجاع جميع الكائنات الموجودة أسفل إحداثيات الماوس في المشهد. تقوم وظيفة الانتقاء OpenGL® بإرجاع جميع الكائنات في مصفوفة بالإضافة إلى بُعدها عن موقع العارض. يتيح ذلك للبرنامج العثور بسرعة على أقرب كائن إذا رغب في ذلك.

تتمثل إحدى طرق تصور انتقاء OpenGL® في تخيل خط ، يشار إليه أحيانًا باسم شعاع في البرمجة ثلاثية الأبعاد ، يتحرك من موقع مؤشر الماوس إلى المشهد وبعيدًا عن موقع العارض. تتم إضافة كل كائن يلمسه هذا الشعاع إلى مجموعة من الكائنات ، جنبًا إلى جنب مع بعده عن العارض. هذا شرح بسيط جدًا لكيفية عمل أحد أشكال الانتقاء OpenGL®.
هناك طريقة أخرى لاختيار الكائن في OpenGL® تتضمن تحديد موقع الكائن حسب اللون ، ويمكن أن يكون أسرع بشكل ملحوظ. تعمل هذه الطريقة على عرض المشهد ، ولكن بدلاً من تطبيق الإضاءة والملمس على الكائنات ، يتم تجسيدها بلون واحد بسيط. كل كائن أو مجموعة من الكائنات لها لونها المميز. يتم عرض المشهد في الذاكرة فقط ولا يتم عرضه ، لذلك لا يؤثر ذلك على ما يراه المستخدم. بدلاً من البحث عن تصادمات ثلاثية الأبعاد بين الكائنات ، يتم إرجاع اللون الموجود في موضع مؤشر الماوس بدلاً من ذلك ، وسيرتبط هذا اللون بكائن معين.