سؤال

أحاول تحويل openGL [تحرير:"البطاقة التي رسمتها"(؟ :) thx unwind]تحتوي على الكثير من الأنسجة (لا شيء يتحرك) في ملف PNG واحد يمكنني استخدامه في جزء آخر من إطار العمل الذي أعمل معه.هل هناك مكتبة C++ تفعل ذلك؟

شكرًا!

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

المحلول

إذا كنت تقصد ببساطة "التقاط مشهد تم عرضه بواسطة OpenGL وحفظه كصورة"، فهذا أمر واضح ومباشر إلى حد ما.تحتاج إلى قراءة المشهد باستخدام glReadPixels()، ثم تحويل تلك البيانات إلى تنسيق صورة مثل PNG (http://www.opengl.org/resources/faq/technical/miscellaneous.htm).

هناك أيضًا طرق أكثر فعالية لتحقيق ذلك، مثل الاستخدام مكتب العمليات الفيدراليةس.بدلاً من عرض المشهد مباشرة في مخزن الإطارات المؤقت، يمكنك تحويله إلى نسيج عبر FBO، ثم عرض هذا النسيج على شكل رباعي ملء الشاشة.يمكنك بعد ذلك أخذ هذا الملمس وحفظه في ملف (باستخدام glGetTexImage, ، على سبيل المثال).

نصائح أخرى

ما هو "ملف برنامج OpenGL"؟ برنامج OpenGL هو API الرسومات، فإنه لا يحدد أي تنسيقات الملفات. هل يعني ملف DDS، أو شيء من هذا؟

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

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