سؤال

وأحتاج لعرض الصور 2D وفي OpenGL باستخدام القوام.
أبعاد الصورة ليست بالضرورة صلاحيات 2.
فكرت في خلق نسيج أكبر وتقييد العرض إلى الجزء الأول كان يستخدم ولكن بيانات الصورة سيتم تقاسمها مع مكتبة برمجية مفتوحة للرؤية الحاسوبية لذلك أنا لا أريد لنسخ البيانات بكسل في وقت في نسيج أكبر.

وتحرير - اتضح أنه حتى أبسط إنتل على متن الرسومات تحت ويندوز تدعم أي قوة من بين 2 القوام

.

وEDIT2 - وحتى لو لم يكن لديك حجم ARB الملمس، ثم جعل الصورة أصغر وإعادة قياس لحجم الإطار هو سريع جدا حتى على الأجهزة منخفضة نهاية

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

المحلول

وزوجان من ملحقات GL يتبادر إلى الذهن. إلقاء نظرة على GL_ARB_texture_rectangle (وإذا كنت لا تحتاج mipmapping) ، أو GL_ARB_texture_non_power_of_two (وإذا أردت ذلك).

نصائح أخرى

واحد شرك لتجنب أن لسبب بعض بطاقات الفيديو تتطلب GL_UNPACK_ALIGNMENT لتعيين 1 (glPixelStorei (GL_UNPACK_ALIGNMENT، 1)؛). لعدم القدرة لطفلين الملمس ليتم تحميلها بشكل صحيح

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

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

وتبدأ من خلال تحديد أقرب قوة اثنين من أكبر لكل من أبعاد الصورة (العرض والارتفاع) وخلق نسيج من هذا الحجم. ثم لديك خيارين. أول واحد هو القيام بتغيير البرنامج من البيانات بكسل لتتناسب مع الصورة، ومن ثم حجم رباعية الخاصة بك وفقا للحصص الجانب الأصلي عندما كنت في حاجة لعرضه. أو، يمكنك ملء مجرد جزء من النسيج مع بيانات الصور الخاصة بك ووضع بكسل شفافة في بقية.

إذا كنت تريد استخدام القوة من 2 القوام، خلق أصغر واحد التي يمكن أن تتخذ حتى صورتك، وحساب الملمس السليم إحداثيات لعرض فقط جزء من نسيج يحتوي على الصور الخاصة بك. مثلا إذا كانت الصورة 400x300، وكنت استخدام نسيج 512x512، نسخ صورتك هناك سطرا سطرا، والملمس الصحيح التنسيق سيكون 400.0 / 512.0، وانخفاض واحدة 300.0 / 512.0. سوف تبدو أفضل من التحجيم البرمجيات.

وأفعل تماما كما تصفون، نسخ إلى قوة من بين 2 الملمس وضبط بلدي الأشعة فوق البنفسجية وفقا لذلك. سيكون التمديد يكون لطيفا، ولكن كنت لا يضمن أنها معتمدة على جهاز كمبيوتر التعسفي.

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