عندى مشكلة فى مشروع شغالة فيه المشروع عبارة عن 3D content for Documenting heritage
بستخدم Unity3D و بعرض على 9 شاشات (موضوعين فى شكل قوس أقل من 180 درجة) باستخدام 3 projectors و بسبب وضع الشاشات و الprojectors يوجد distortion فى الناتج النهائى
أحد الحلول إنى أعمل distortion معاكس بعد الrender to texture مثلا
المشكلة التانية إنى لسة جديدة فى الOpenGl & shaders
و أنا مش عايزة مجرد مساعدة فى المشكلة عايزة أتعلم بإذن الله
كل شاشة يجب أن يتم رسم المشهد عليها من خلال كاميرا خاصة تأخذ بعين الاعتبار ميول الشاشة التي يتم الإسقاط عليها. لأن لكل شاشة ستستعمل إعدادات كاميرا مختلفة قليلاً عن مجاوراتها، فإن هذه الاختلافات ستـُـظهر أجزاء جديدة من المجسمات في المشهد. مثلاً، لو كانت كاميرا المشهد الأساسية تنظر مباشرة إلى مكعب بحيث لا تظهر جوانبه (مواجه تماماً لعين الناظر) فإن أية إزاحة طفيفة لعين الناظر في كاميرات الشاشات المجاورة ستتسبب بظهور جوانب من المكعب. لذلك لا يمكن حل المسألة بطريقة إعادة الإسقاط بعد رسم المشهد بشكل كامل من كاميرا واحدة.
الحل ليس سهلاً، وقد يكون مكلفاً بالنسبة للأداء، لكني سأغفل هذا الأمر قليلاً الآن ونستطيع التحدث عنه لاحقاً.
* يجب أولاً تقسيم سطح الرسم الكامل إلى مستطيلات متجاورة، حيث يغطي كل مستطيل واحدة من شاشات العرض. * يتم رسم المشهد على كل واحد من هذه المستطيلات على حدة باستخدام كاميرا مختلفة وإعدادات منفذ عرض (Viewport) خاصة. * وأخيراً يتم إظهار كامل سطح الرسم على الشاشات.
لا أدري إن كان محرك يونيتي 3D قادراً على إنجاز العمليات السابقة، فأنا لم أستخدمه مسبقاً. لكننا نحتاج إلى خاصية الرسم إلى أجزاء من سطح الرسم وليس كامل سطح الرسم. إما هذا أو مثلاً القدرة على فتح عدة نوافذ متجاورة يتم الرسم إلى كل منها على حدة، وإن كنت أستكره هذا الأمر.
الأمر الآخر هو معرفة الحسابات اللازمة لتجهيز الكاميرات لكل شاشة. وبالطبع هذه الحسابات تستلزم قياس أبعاد وزوايا ميلان كل شاشة.
صححيني إن كنت مخطئاً، المسألة لدينا هي إسقاط تسعة أجزاء من مشهد (باستخدام أجهزة إسقاط) على سطح واحد منحني على شكل قوس مقعر. صحيح؟ الصور يتم تجهيزها وعرضها بشكل مسطح لكنها تسقط على سطح منحني، فينتج لدينا التشويه الملحوظ في الصور. صحيح؟