سؤال

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

بادئ ذي بدء على المسار الصحيح؟

لدي مصفوفة عرض النموذج ، ولكن بحاجة إلى مصفوفة الإسقاط. هل هناك ما يعادل Glortho () في ES 2.0؟

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

المحلول

mat4 projectionMatrix = mat4( 2.0/768.0, 0.0, 0.0, -1.0,
                              0.0, 2.0/1024.0, 0.0, -1.0,
                              0.0, 0.0, -1.0, 0.0,
                              0.0, 0.0, 0.0, 1.0);                        

gl_Position = position;
gl_Position *= rotationMatrix;
gl_Position.x -= translateX;
gl_Position.y -= translateY;
gl_Position *= projectionMatrix;

للحصول على دقة ثابتة (1024 × 768 في حالتي لجهاز iPad) ، استخدمت هذه المصفوفة وكل شيء يعمل مثل السحر :) هنا الوصف الكامل ما هي القيم التي تحتاج إلى وضعها في المصفوفة الخاصة بك: Glortho.html

نصائح أخرى

ال الصفحة اليدوية إلى عن على glOrtho() يصف العمليات المكافئة ، طالما أن لديك المصفوفة في متناول اليد يجب أن تكون قادرة على إعادة تنفيذها.

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