سؤال

لنفترض أن الكود هو:

    glLoadIdentity();
    glTranslatef(-1.5f,0.0f,-6.0f);
glBegin(GL_TRIANGLES);
        glVertex3f( 0.0f, 1.0f, 0.0f);
        glVertex3f(-1.0f,-1.0f, 0.0f);
        glVertex3f( 1.0f,-1.0f, 0.0f);
glEnd();

    glLoadIdentity();
    //Drawing another object...

كيف يمكنني تغيير الرمز لمسح الكائن؟أعلم أن التعليق على glTranslatef() سيؤدي إلى مسح المثلث، لكن هل هذه هي الطريقة الرسمية للقيام بذلك؟

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

المحلول

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

أيضا، GLTRANSLATEF () لن يؤدي إلى إزالة مثلثك، GLTRANSLATEF () هو مجرد وظيفة لنقل المصفوفة الحالية (في حالتك، يتم نقل مصفوفة المصفوفة باستخدام مثلثك إلى عرض الكاميرا)

glclear ()

http://www.khronos.org/opengles/documentation/opengles1_0 / html / glclear.html

نصائح أخرى

إذا كنت تسأل عن كيفية جعل مثلث يذهب بعيدا في إطارات لاحقة، فلا حاجة.كل وقت للإطار هو المسؤول عن إعادة رسم كل شيء.OpenGL لن تتذكر مثلثك.

وضع if حول glBegin...glVertex...glEnd ستكون الطريقة الأكثر مباشرة.

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