سؤال

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

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

المحلول

من المتصور أنه يمكنك تقديم المشهد بأكمله باستخدام gl_lines

نصائح أخرى

لسوء الحظ ، قد تضطر إلى الواقع تمامًا قم بتحويل الهندسة الخاصة بك إلى خطوط الخطوط الأولية وجعلها تستخدم GL_LINES. ومع ذلك ، فإنه بالطبع لم يتم القيام به ببساطة GL_TRIANGLES (أو أيا كان) مع GL_LINES في مكالمات السحب الخاصة بك ، سيتعين عليك إعادة ترتيب رؤوسك بالكامل لإقامة الوضع البدائي الجديد. هذا يتطلب منك على الأقل استخدام صفائف فهرس مختلفة في glDrawElements... المكالمات أو ، لتقديم الفهرس (glDrawArrays...) ، صفائف قمة مختلفة تمامًا (على الرغم من ذلك ، في حالة اختيار فعل ذلك حقًا ، قد تكون هذه هي اللحظة المناسبة للتبديل إلى الرسم المفهرس بدلاً من ذلك).

إذا كان لديك ، ومع ذلك ، لديك تظليل الهندسة متاح (على الرغم من أنه يبدو أن WebGL لا يدعمهم ، يجب على OpenGL ES منذ 3.2 ، وكذلك Desptop GL glPolygonMode على أي حال) ولا تستخدمها بالفعل لشيء آخر ، تصبح الأمور أسهل. في هذه الحالة ، يمكنك فقط تثبيت بسيطة إلى حد ما تظليل الهندسة بين قمة الرأس ومعالجة الشظايا التي تأخذ المثلثات والمخرجات 3 خطوط لكل منهم:

layout(triangles) in;
layout(line_strip, max_vertices=4) out;

void main()
{
    for(int i=0; i<4; ++i)
    {
        // and whatever other attributes of course
        gl_Position = gl_in[i%3].gl_Position;
        EmitVertex();
    }
}

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

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