الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية التعامل مع Glperspective

بدأه hbate_allah في 24 يناير 2010 · 7 رد · 1,283 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي سؤال لا اعرف هل من المفروض ان اجد له الاجابة ام لا ؟

انا اعمل على loader اي عندما ادخل له ملف يقوم برسم المجسم الموجود فيه

لكني اجد صعوبة في اظهار المجسم بحيث كلما ابدل الملف و الذي يجب ان ادخل الى الكود و ابدل اسم الملف يجب ايضا ان ادخل الى الكود و ابقى اجرب حتى اجد glperspective مناسبة لكل مجسم

لذا لدي سؤالين

هل استطيع بالنظر الى الملف فقط و كيفية تموضع نقاط المجسم ان اعرف glperspective المناسبة

او هل توجد سطر اكتبه في opengl بحيث يصبح يظهر لي كل المجسمات

مع ان هذا في نظري مستحيل تقربا

#2

يمكن دلك طبعا بمعرفة نقاط المجسم بأن تبحث عن اقصى احداثي ناحية x وأقصى احداثي ناحية –x ثم اقصى احداثي ناحية y وأقصى احداثي ناحية –y ثم اقصى احداثي ناحية z واقصى احداثي ناحية –z وبدلك تكون قد حددت المكعب الدي يحتوي المجسم وبدلك تكون قادرا على

اما ان تحدد Perspective الخاص به

او تعمل "تكبير" او "تصغير" للمجسم بحيث يملأ الشاشة

ملحوظة

هده فكرة فقط لم اقم بتطبيقها عمليا ولكنها الان قيد التطبيق، حيث اني ايضا اعمل مشروعا يقرا المجسمات من الملفات وبعد دلك يقوم بعرض المجسم ، ولكن بعض المجسمات تكون صغيرة وبعضها كبير قد يظهر جزء منه فقط وكانت فكرتي هده قد عرضتها على مشرفي ووافق عليها، سأطبقها وسأوفيك بأي تعديل في الفكرة- ان شاء الله- ان وجد

#3

السلام عليكم

هذه الفكرة جيدة

اظن انها تصلح

انا اكملت العمل على هذا loader بحيث عملت له الاكساء و الاضاءة و ازالة الاوجه التي لا تظهر

ان اردت استطيع مساعدتك في عملك

بقيت لي هذه النقطة فقط

#4

أظن أنه لايجب أن تعدل شيء في glPerspective ، فيجب ان تكتبها كما تحب ،

ولكن عند تصميم المجسم من خلال برنامج التصميم المستخدم ( 3D Max مثلاً ) ، يجب أن يكون المجسم بموقع صحيح - خذ في الاعتبار أن مركز الكتلة أو مركز الثقل للجسم يجب أن يكون في نقطة تقاطع المحاور - .

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

اذا جاءك مجسم ليس بوضعية جيدة ، فالأفضل أن يكون التعديل على Model Matrix - مصفوفة المجسمات - ، أي أن تستخدم translate واخواتها مع مصفوفة Model Matrix حتى يتموضع الجسم في مكانه ، أما مصفوفة الاسقاط فلا أرى أن التعديل عليها هنا خيار جيد .

والله أعلم .

تم تعديل هذه المشاركة بواسطة الشمري في 26 يناير 2010 في 02:23

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#5
اقتباس

ولكن عند تصميم المجسم من خلال برنامج التصميم المستخدم ( 3D Max مثلاً ) ، يجب أن يكون المجسم بموقع صحيح - خذ في الاعتبار أن مركز الكتلة أو مركز الثقل للجسم يجب أن يكون في نقطة تقاطع المحاور - .

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

المجسمات التي أحملها الى برنامجي لم اقم بتصميمها شخصيا ، وانما قد صممها شخص اخر او قمت بتحميلها من شبكة الانترنت

#6

بسم الله الرحمن الرحيم

مرحبا يا شباب , عموما الفكرة واضحة

لو قمت بتصميم الملف المصدي للمجسمات ببرنامج برمجته أنت فهنا ليست المشكلة لأنه من الضروري أن تضيف قيم المنظور المسقط في الملف أما إن كنت ستصمم على ملف مصدري كملفات منشأة ببرنامج 3ds max فهذا يستوجب عليك معرفة مسبقة بقيم المنظور.

و الله أعلم.

تخيل, هل سيكون مستقبل الأوبن جي أل مع البشرية هكذا

future.jpg
#7
اقتباس
لو قمت بتصميم الملف المصدي للمجسمات ببرنامج برمجته أنت فهنا ليست المشكلة لأنه من الضروري أن تضيف قيم المنظور المسقط في الملف أما إن كنت ستصمم على ملف مصدري كملفات منشأة ببرنامج 3ds max فهذا يستوجب عليك معرفة مسبقة بقيم المنظور.

ماذا تقصد " بقيم المنظور " ،

ما أعرفه أن قيم الرؤوس - Vertices - المكتوبة في الملف ، مجردة من تأثير Projection Matrix ، أو هذا المفروض على الأقل ،

بالتالي لو أنشأت مجسم في " الثري دي ماكس مثلاً " ، فسيكتب قيم كل vertex ( بعد أن يتم تطبيق مصفوفة Model أو ما تسمّى بالـ World Matrix ) ، ومهما غيرت في قيم المصفوفات الاخرى ، فليس لها تأثير ؟

هل أنا مخطئ ؟

لأني لم أجرب ذلك من مدة طويلة :-) .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#8

بسم الله الرحمن الرحيم

اقتباس

ماذا تقصد " بقيم المنظور " ،

ما أعرفه أن قيم الرؤوس - Vertices - المكتوبة في الملف ، مجردة من تأثير Projection Matrix ، أو هذا المفروض على الأقل ،

أخي الشمري هذا ما أقصده تماما فالناتج قد يكون مجرد تماما من قيم الإسقاط و هي قيم نقدمها إلى شيفرة برمجية لكي تعطي لنا منظور مناسب حسب الحاجة , فأنا أضن أن ملف الماكس الناتج قد يحتوي على تلك القيم و الدليل على ذلك أنه بإمكانك تغيير المنظور الذي تعمل عليه في برنامج الماكس في حين أنك تود أن تجرب ملف الماكس الناتج في برنامج *كراي سيسل* مثلا.

و ثانيا أنت لست مخطأ على حسب ما أضن و الله أعلم.

تخيل, هل سيكون مستقبل الأوبن جي أل مع البشرية هكذا

future.jpg

مواضيع مشابهة