سؤال

ما هو الفرق بين استخدام الوجه الخلفي لإعدام وعمق العمق في OpenGL؟

هل كانت مفيدة؟

المحلول

إن إعدام Backface هو عندما يحدد OpenGL الذي تواجه الوجوه بعيدًا عن المشاهد وبالتالي فهو غير مرئي. فكر في مكعب. بغض النظر عن كيفية تدوير المكعب ، فإن 3 وجوه ستكون دائمًا غير مرئية. اكتشف ما هي التي تواجه هذه هي ، قم بإزالتها من قائمة المضلعات المراد رسمها ، وقمت بنصف قائمة الرسم إلى النصف.

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

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

يمكن أن يقلل الإعدام من المضلعات المقدمة ، لكنه ليس خوارزمية فرز. هذا ما هو التخزين المؤقت Z.

نصائح أخرى

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top