الشبكة العربية لمطوري الألعاب

مبتدئ  Mariam Asfour مشاركة 1

السلام عليكم

عندى مشكلة فى مشروع شغالة فيه
المشروع عبارة عن 3D content for Documenting heritage 

بستخدم Unity3D 
و بعرض على 9 شاشات (موضوعين فى شكل قوس أقل من 180 درجة)  باستخدام 3  projectors
و بسبب وضع الشاشات و الprojectors يوجد  distortion فى الناتج النهائى

أحد الحلول إنى أعمل distortion معاكس
بعد الrender to texture مثلا

المشكلة التانية إنى لسة جديدة فى الOpenGl & shaders

و أنا مش عايزة مجرد مساعدة فى المشكلة عايزة أتعلم بإذن الله


شكرا مقدما

مريم عصفور
مهندسة حاسبات
مبرمجة ألعاب

خبير مدير وسام البهنسي مشاركة 2

السلام عليكم ورحمة الله،
 
حل المسألة غير ممكن بعد رسم المشهد كاملاً.
 
كل شاشة يجب أن يتم رسم المشهد عليها من خلال كاميرا خاصة تأخذ بعين الاعتبار ميول الشاشة التي يتم الإسقاط عليها. لأن لكل شاشة ستستعمل إعدادات كاميرا مختلفة قليلاً عن مجاوراتها، فإن هذه الاختلافات ستـُـظهر أجزاء جديدة من المجسمات في المشهد. مثلاً، لو كانت كاميرا المشهد الأساسية تنظر مباشرة إلى مكعب بحيث لا تظهر جوانبه (مواجه تماماً لعين الناظر) فإن أية إزاحة طفيفة لعين الناظر في كاميرات الشاشات المجاورة ستتسبب بظهور جوانب من المكعب. لذلك لا يمكن حل المسألة بطريقة إعادة الإسقاط بعد رسم المشهد بشكل كامل من كاميرا واحدة.
 
الحل ليس سهلاً، وقد يكون مكلفاً بالنسبة للأداء، لكني سأغفل هذا الأمر قليلاً الآن ونستطيع التحدث عنه لاحقاً.
 
* يجب أولاً تقسيم سطح الرسم الكامل إلى مستطيلات متجاورة، حيث يغطي كل مستطيل واحدة من شاشات العرض.
* يتم رسم المشهد على كل واحد من هذه المستطيلات على حدة باستخدام كاميرا مختلفة وإعدادات منفذ عرض (Viewport) خاصة.
* وأخيراً يتم إظهار كامل سطح الرسم على الشاشات.
 
لا أدري إن كان محرك يونيتي 3D قادراً على إنجاز العمليات السابقة، فأنا لم أستخدمه مسبقاً. لكننا نحتاج إلى خاصية الرسم إلى أجزاء من سطح الرسم وليس كامل سطح الرسم. إما هذا أو مثلاً القدرة على فتح عدة نوافذ متجاورة يتم الرسم إلى كل منها على حدة، وإن كنت أستكره هذا الأمر.
 
الأمر الآخر هو معرفة الحسابات اللازمة لتجهيز الكاميرات لكل شاشة. وبالطبع هذه الحسابات تستلزم قياس أبعاد وزوايا ميلان كل شاشة.
 
هل وصلت الفكرة؟ ☺

وسام البهنسي
مبرمج في يونيتي وإنفريمز

مبتدئ  Mariam Asfour مشاركة 3

أيوة كلامك صح و أنا عديت المرحلة دى بس نسيت أقول

أنا فعلا عملت 9 كاميرات داخل ال Unity و بقسم الشاشة ل9 مرات زى ما حضرتك بتقول بالضبط

و دا فعلا حل مشاكل كانت موجودة لما جربت كاميرا واحدة  

بس الوقتى المشكلة اللى عندى ناتجة عن
1) أماكن الprojectors  زى مشكلة ال Keystone correction 
2) الشاشات مقوسة

النتيجة النهائية لأحد الprojectors تشبه الصورة المرفقة


and this is my hardware
http://www.nvidia.com/object/product_quadroplex_2200_d2_us.html

مريم عصفور
مهندسة حاسبات
مبرمجة ألعاب

مبتدئ  Mariam Asfour مشاركة 4

دى صور من الواقع  بس خلينى أقول إنى مش مضبطة الكاميرات على الشاشات بشكل نهائى

مريم عصفور
مهندسة حاسبات
مبرمجة ألعاب

خبير مدير وسام البهنسي مشاركة 5

في 30/ربيع الأول/1434 08:30 ص، عقد Mariam Asfour حاجبيه بتفكير وقال:

دى صور من الواقع  بس خلينى أقول إنى مش مضبطة الكاميرات على الشاشات بشكل نهائى
 
لا أرى المرفقات في المشاركة رقم 4. هل نسيتي إرفاقها؟

وسام البهنسي
مبرمج في يونيتي وإنفريمز

مبتدئ  Mariam Asfour مشاركة 6

أعتقد فى مشكلة فى المرفقات
https://www.dropbox.com/s/xf4kch4zj8q32nj/photos.rar

الstrips دى عبارة عن plane
و الchecker  is a skybox

التسع شاشات عندى شكلهم مضلع مش قوس تماما

مريم عصفور
مهندسة حاسبات
مبرمجة ألعاب

خبير مدير وسام البهنسي مشاركة 7

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

وسام البهنسي
مبرمج في يونيتي وإنفريمز

مبتدئ  Mariam Asfour مشاركة 8

لأ ... لقد كنت مخطأة

اكتشفت إن لدى مشكلتين فى الواقع

أولا إن الcameras' setup  ينتج عنها  distortion 
ثانيا مكان الprojector المعلق فى السقف بيعمل distortion ما

المشكلة الثانية تقريبا بدأت أحلها بإنى أغير فى الfrustum بتاع الكاميرا  أخليه Asymmetric Viewing Frustum 


الوقتى أنا عايزة أبدأ  بحل المشكلة الأولى☺

زى ما حضرتك شايف فى النتيجة اللى على الLCD  فى الصور المرفقة

محتاجة أعمل distortion ما  عشان أحل المشكلة


شكرا جزيلا ☺

مريم عصفور
مهندسة حاسبات
مبرمجة ألعاب

مبتدئ  Mariam Asfour مشاركة 9

the correct photo for the camera setup
sry of that

مريم عصفور
مهندسة حاسبات
مبرمجة ألعاب