سؤال

عند استخدام الدالة: D3DXSAVETEXTURETOFILE ومرر D3DXIFF_BMP لإنشاء BMP لاحظت أن القيم يبدو أنها مقدرة بدلاً من تقديمها على وجه التحديد.

صححني إذا كنت مخطئًا ، لكن نسيج النقطة العائمة يمكنه تخزين أي تعويم في أي Texel معين من شأنه أن يضعه خارج نطاق BMP عالق بين RGB (255،255،255،255) ، لذا فإن ما يبدو أن الوظيفة هي ببساطة أخذ الجزء العلوي الأكثر وأقل من أقصى قيمة الملمس وتطبيعه بين هذا النطاق.

لذا فإن سؤالي هو: هل من الممكن الحصول على القيم تمامًا كما هي في الذاكرة؟ بما في ذلك عندما تكون الألوان خارج طيف شاشة الكمبيوتر؟

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

المحلول

لا تستخدم BMP. استخدم تنسيقًا يدعم نوع البيانات الذي تريده. للحصول على قوام DX ، يبدو D3DXIFF_PFM التنسيق هو ما تحتاجه. يوصف مثل ذلك:

تنسيق خريطة تعويم محمول. تنسيق صورة النقطة العائمة الخام ، دون أي ضغط. يحدد رأس الملف عرض الصورة ، والطول ، والأحادي اللون أو اللون ، وترتيب كلمة الجهاز. يتم تخزين بيانات البكسل كقيم عائمة 32 بت ، مع 3 قيم لكل بكسل للون ، وقيمة واحدة لكل بكسل لأحادي اللون.

لاحظ أن الصور ستكون كبيرة ، رغم ذلك. يجب أن يزن نسيج 256x256 في هذا التنسيق حوالي 768 كيلو بايت.

التحديثات: يجب أن تكون قادرًا على الاستخدام صورة ماجيكأمر عرض لعرض الصور في هذا التنسيق. ايضا Hdrview يدعم تنسيق PFM. قد يكون الخيار الثالث FV.

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