برنامج openGL القوام التي لا 2^x في القاس
سؤال
أنا أحاول لعرض الصورة في برنامج openGL البيئة.الصورة origninal أبعاد 3648x2432 و أريد أن عرض ذلك مع 256x384 الصورة.المشكلة هي 384 ليست قوة 2, و عند محاولة عرض هذا ، يبدو امتدت.كيف يمكنني إصلاح ذلك ؟
المحلول
هناك ثلاثة طرق للقيام بذلك أن أعرف -
- واحد اقترح ألبرت (حجمه حتى تناسبها).
- تقسيم نسيج في 2**n-الحجم مستطيلات ، وقطعة معا في بعض الطريق.
- انظر إذا كان يمكنك استخدام
GL_ARB_texture_non_power_of_two
.ربما من الأفضل تجنب ذلك على الرغم من أنه يبدو وكأنه انها Xorg محددة التمديد.
نصائح أخرى
ويمكنك تغيير حجم الملمس الخاص بك لذلك هو م> قوة من اثنين (تحرف الملمس بحيث عندما يتم تعيينه على وجوه يبدو الصحيح).
وARB_texture_rectangle
ربما هو ما كنت أبحث عنه. فإنه يتيح لك ربط GL_TEXTURE_RECTANGLE_ARB
بدلا من GL_TEXTURE_2D
، ويمكنك تحميل صورة ذات أبعاد وعدم القدرة لل-2. كن على علم بأن الإحداثيات الملمس الخاص بك وسوف تتراوح بين [0..w] س [0..h] بدلا من [0..1] س [0..1].
إذا GL_EXT_texture_rectangle هو صحيح ثم استخدام GL_TEXTURE_RECTANGLE_EXT لالمعلمة الأولى في glEnable () وGLBindTexture () يدعو.