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

مشكلة رسم شكل ثلاثي الأبعاد بإستخدام تقنية الشبكة المثلثية

بدأه mhdnour في 17 نوفمبر 2011 · 8 رد · 2,651 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

كما يوضح العنوان

لدي مشكلة برسم الشكل التالي الموجود بالصور ادناه

تكمن المشكلة بأن رسم هكذا اشكال معقدة تحتاج الى حسابات دقيقة وكثيرة (كما اعتقد)

كنت قد بدأت دراسة ال opengl منذ حوالي شهرين

والى الأن تمكنت من إنشاء اعمال كثيرة كرسم غرفة وإكسائها بالصور

ورسم اغراض داخلها وغيره من التحويلات الهندسية.

ولكن مشكلتي الأن هي الرسم لمجسم ثلاثي الابعاد (كما هو مبين في العنوان)

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

شكرا للمساعدة وجزاكم الله خيراً.

الصور:

Subdivision%2B-%2BMesh%2B-%2BOpenGL.pngmesh.png

mesh1.png

ملاحظة:

- العمل بإستخدام مكتبة ال glut و بيئة visual studio 2008.

- سأقوم بتحميل الرماز المصدري لرسم الكرة الذي قمت به ان كان في ذلك فائدة

1
#2

السلام عليكم ...

لست خبيرا بالــ OpenGL

اقتباس
تكمن المشكلة بأن رسم هكذا اشكال معقدة تحتاج الى حسابات دقيقة وكثيرة (كما اعتقد)

هناك طريقة أخرى لرسم الأشكال الثلاثية ... في الــ OpenGL .. هي أن ترسمها بشكل مرئي بالــ 3d Max و تقوم باستيراد هذا الشكل الثلاثي الأبعاد إلى OpenGL .. حيث أن الملف 3ds هو عبارة مجموعة من الــ Vertices والــ Faces .. (و الأشياء و الأخرى ربما Polygons ) ... رابط

و في المثال .. صف 3dsloader.cpp يقوم بالمهمة ...

يمكن تحميل المثال من هذا الرابط المباشر

أو من صفحة الأمثلة رابط المثال 3ds Loader

ملاحظة :

كي يعمل المثال ..شغل الملف التنفيذي في مجلد المشروع و ليس من مجلد الـ Debug

أو انسخ الملفين spaceship.3DS و spaceshiptexture.bmp من مجلد المشروع إلى مجلد الـ Debug ..

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3
اقتباس

هي أن ترسمها بشكل مرئي بالــ 3d Max

مشكور اخي على المساعدة :happy:

ولكني لا اريد في هذه المرحلة استيراد ملف 3ds انما اريد الرسم باستخدام امكانية ال opengl المذكورة

#4

49 مشاهدات

ولا يوجد غير رد وحيد ؟؟؟ :blink:

ألا يمكن لاصحاب الخبرة الكرام حتى افادتي باي كود للمساعدة (لو كان الشكل قريب لا يوجد مشكلة) أو مصدر (موقع) يمكن الاستفادة منه في طلبي؟

تم تعديل هذه المشاركة بواسطة mhdnour في 21 نوفمبر 2011 في 00:09

#5

السلام عليكم أخي ...

المواضيع الغير واضحة لا تلقى ردا ..و انت مازلت عضو جديد (5 مشاركات فقط) .. و ستواجه هذا كثيرا في المستقبل ..

اقتباس

49 مشاهدات

ولا يوجد غير رد وحيد ؟؟؟

لو بحثت ببعض مواضيعي لوجدت مئات المشاهدات للموضوع و برد وحيد . لا مشكلة ..(هذا حال الدنيا) ..

كما قلت .. موضوعك غير واضح .. ما المشكلة فيه .. إذا كنت قادرا على رسم الأشكال بالطريقة المذكورة ..و ربما البعض لم يسمع بهذه الطريقة (الشبكة المثلثية) علما ان الشكل المرسوم فيه اشكال أخرى غير المثلثات (هكذا يبدو) ..و حبذا لو ارفقت للأعضاء مثال كي يعرفوا هذه الطريقة و يجربوها .. و يجدون مساؤها و محاسنها (اعتقد أنك بحاجة لمئات الأسطر من الكود لرسم الشكل المذكور ..) (ماذا لو حزنت نقط المثلث في ملف - كل ثلاث نقط في سطر و عملت كود يفتح الملف و يقرؤه سطر سطر و يرسم المثلثات المطلوبة)

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#6
اقتباس
كما قلت .. موضوعك غير واضح .. ما المشكلة فيه .. إذا كنت قادرا على رسم الأشكال بالطريقة المذكورة ..و ربما البعض لم يسمع بهذه الطريقة (الشبكة المثلثية) علما ان الشكل المرسوم فيه اشكال أخرى غير المثلثات (هكذا يبدو) ..و حبذا لو ارفقت للأعضاء مثال كي يعرفوا هذه الطريقة و يجربوها .. و يجدون مساؤها و محاسنها (اعتقد أنك بحاجة لمئات الأسطر من الكود لرسم الشكل المذكور ..) (ماذا لو حزنت نقط المثلث في ملف - كل ثلاث نقط في سطر و عملت كود يفتح الملف و يقرؤه سطر سطر و يرسم المثلثات المطلوبة)

وعليكم السلام

اشكرك على اهتمامك :happy:

اولا السبب هو اني تبعا لقوانين المنتدى لم استطع الشرح كما يجب (استعمال كلمات اجنبية للتوضيح)

الطريقة المذكورة تسمى (mesh) وايضا ليس ضروريا باستخدام المثلثات ممكن ان نستعمل عدة انواع من السطوح بعد تحديد ال (Normals) الخاص بكل سطح

لا اخفيك سراً قد يكون المطلوب (سؤالا تعجيزيا) :wacko:

وخصوصا انني لست خبيرا بال OpenGL

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

شخصيا كنت سأرسم هذا الشكل بالطريقة التقليدية (3ds) واستخدمه ولكن يجب ان يكون الكود مكتوب بال (cpp) و مكتبة (glut)

واخيرا بالنسبة لفكرة ان اخزن النقط الخاصة بكل مثلث ومن ثم قرائتها بالبرنامج جربت طريقة مثلها ولكن لم يظهر اي شكل (ملاحظة: حجم الملف كبير جدا وسيأخذ وقتا للترجمة والتنفيذ :S )

سأقوم بإرفاق ملف لهذا الكود للاطاع عليه.

leoprad.rar

تم تعديل هذه المشاركة بواسطة mhdnour في 21 نوفمبر 2011 في 16:46

#7

السلام عليكم ..

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

اتذكر انني واجهت مشكلة مثل هذه منذ زمن ... و وجدت حلا لها (ليس بالجيد).. هي أنني قمت ببرمجة فورم على الفيجوال بيسك أو دلفي .. هذه النافذة فارغة .. و أقوم بالضغط على الفورم في أماكن محددة مع السحب .. أي كأنني أرسم شكلا .. و في الحدث Mouse_Move للفورم كنت أخزن حركة الماوس في النقط المطلوبة في ملف ... ثم أخذها للكود .. و ارسم بها الشكل .. هذه الطريقة تنفع في الأشكال ثنائية البعد ..

بالتوفيق ..

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#8

كما قال الزميل " حسام " ، لا مفر من استخدام برامج مثل Blender أو 3D Max لتنفيذ رسوميات معقدة ، هذا ما تفعله حتى الألعاب العالمية ، ولكن هناك حل " ملتوي " ، وهو أن تصمم المجسم في برنامج خارجي ، و تعمل export على شكل ملفات cpp و opengl ، سيتم توليد الكود اللازم لك لتستخدمه ، أظن أن برنامج Blender المجاني ، يمكنه توليد ملفات cpp/OpenGL لتستخدمه بشكل عادي ، شاهد هذه الصفحة للمزيد ؟

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

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

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#9
mhdnour كتب:

- سأقوم بتحميل الرماز المصدري لرسم الكرة الذي قمت به ان كان في ذلك فائدة

آسف أخي سأخرج عن مغزى موضوعك، ولكن لفتني التعريب السابق، وودت أسألك عن المصادر العربية التي تقرأ فيها ومن أي أرض الله أنت.

" إن الله كتب الإحسان على كل شيء"

::

الإرادة ... تحقق السيادة.

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…