سؤال

في OpenGL ، لديّ كائن أقوم بتقليده بمقدار -1 على طول محور ... وهذا يؤدي إلى عدم تقديم الكائن بشكل صحيح لأن جميع الوجوه الأمامية أصبحت الآن الوجوه الخلفية. أقل من تعطيل الإعدام ، كيف يمكنني الحصول على هذا الكائن لجعل الصحيح؟ هل هناك طريقة للقيام بذلك دون تعديل القمم العادية المحكم التي تشكل النموذج الخاص بي؟

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

المحلول

يمكنك ببساطة تبديل وضع الإعدام. يمكنك استخدام glCullFace(mode) لتحديد المثلثات التي ينبغي إعدامها. توفير معلمة GL_BACK يعني أنه يتم تقديم المضلعات الأمامية فقط ، في حين أن معلمة من GL_FRONT تعني أنه يتم تقديم المضلعات الخلفية فقط. لذا ، إذا كان تحولك يعني أن المضلعات "المظهر الخلفي" تكون في الواقع في الأمام ، والاتصال glCullFace(GL_FRONT) يجب أن تفعل الخدعة.

كبديل ، يمكنك أيضًا التحكم في المضلعات التي تعتبر مقدمة/خلفية باستخدام glFrontFace(dir), ، مع معلمة من GL_CW (في اتجاه عقارب الساعة) أو GL_CCW (عكس اتجاه عقارب الساعة) (الافتراضي هو عكس اتجاه عقارب الساعة ، لذا إذا قمت بتعيينه على مضلعات الساعات العكسية ، فسيتم اعتبار الأمامي).

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