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

تعرف على أمثلة ل Direct3D

مغلق
بدأه HGB في 30 أغسطس 2004 · 3 رد · 2,680 مشاهدة · في DirectX
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

برمجة Direct3D تحتاج لمعرفةفقط بكيفية تطبيق التأثيرات ,, والتقنيات المستخمدة ف كل نوع فقط ليس الا ,, وكل فكرة لديها تكنيك معين عليك اتخاذه لتطبيق النموذج النهائي ,,

........................................................

أمثلة نريد أن نصل لمستواها :

1) في الصورة التالية :

dolphen.jpg

من أمثلة DirectX SDK الجاهزة نموذج لدولفين يتحرك حركة طبيعية مثيرة للأعصاب حقا ,, مع أرضية شبه طبيعية والضوء ينعكس على الأرضية بشكل طبيعي ويتحرك مع حركة المياه في السطح ,, طبعا مع انعكاس الضوء على الدولفين ,,

لاحظ في أعلى الصورة عدد ال FPS الاطر في الثانية وصل الى 109 FPS ,, مع أني أملك كرت شاشة GeForce4 MX440 ,, وهو ليس بهذا المستوى الرائع جدا لتصير نموذج كهذا ,,

لكن في الأمر خدعة وهو أن الأضاءة مع حركتها وحركة الدولفين كلها لاتعمل بالصورة الطبيعية الحقيقية " ملاحظة : تطبيق اضاءه حقيقية 100% لل Real Time Rendering يحتاج لكروت شاشة ومعالجات متفوقة جدا ,, "

تطبيق الاضاءه على السطح تتم عن طريق ال Texturing وليست اضاءة DirectX الطبيعية ,, حيث أن ال Texturing يعطي أداء أفضل من أداء الاضاءة الخاص بال Direct3D ,, مع أداء أفضل ,, لكن يحتاج لتخطيط مسبق جيد ,,

توجد أنواع اضاءة أخرة كال Volume Light لاضاءة الفراغ "وهي تقنية تستخدم مايسمى بال Vertex Shader وال Pixel Shading ,,

المهم يتم تطبيق ال Texture المضيء مع تفعيل عامل المزج AlphaBlending بين المصدر والهدف ,,

وتطبيق ال Texture وبنفس طريقة الحركة المدعومة من قبل ال Vertex Shader وهو ملف .VSH يتحكم في طريقة حركة البكسلات الخاصة بال Texture وال Vertices وغيرها ,, وهو موضوع متقدم قليلا ,, ولاأقول ذلك لأني أحفظه عن ظهر قلب لكني لم أتعامل مع ال Vertex Shading مطلقا ,, فقط قرأت بعض أكواد له لاغير ,,

المثال الثاني :

Blinding.jpg

بنفس فكرة المثال الأول ,, بعد تحميل ملف ال .x الذي يحتوي على مواضع السموت الخاصة بال Object المكتوب ك Microsoft ,,

مع تفعيل مصدر اضاءة خفيف بزاوية ,, ومع تحرك ال Object وهو Microsoft حركة موجية عشوائية باستخدام ال Vertex Shading أيضا وبنفس المبدأ ,, لتعيين مواضع جديدة كل مرة بمعادلة رياضية لمواضع سموت ال Object الذي تم تحميله ك Mesh ,, وكل مرة نرسم السموت الجديدة في الدالة Render ,, بس !!

المثال الثالث :

Lighting_2982004157440.7371027.jpg

وأيضا :

Lighting2_2982004158220.3671686.jpg

المثال يستعرض قدرات اضاءة Direct3D فقط ليس الا ,,

اضاءة Direct3D ممتازة في حال تشكيل سموت كثيفة للمشهد ,, لأن الاضاءة الخاصة ب Direct3D فقط تغير لون السموت التي تصل اليها باستخدام عامل مزج بين لون السمت ومعدن السمت Material وال Specular مدى اللمعان وقوة الاضاءة وبعدها عن السمت ولون الاضاءة ,,

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

فلانجاز مشهد كهذا ليصبح بمنظر لائق باستخدام اضاءة Diect3D نستخدم توزيع سموت كثيف نسبيا بحيث لايضر بالاداء وفي نفس الوقت نحصل على اضاءة أفضل من هذا ,,

يمكن لحوالي 30 سموت أن تشكل اضاءة متميزة للمربع ,,

في حال كان لديك عالم ثلاثي الابعاد مليء بالتفاصيل فابتعد عن اضاءة DirectX للاضاءة المركزة واكتفي بالاضاءة المحيطية لتعطي المشهد منظر أفضل ورؤية أوضح فقط ,,

واستخدم اضاءة ال Texturing بعد تحميل خريطة ضوء أو أكثر لتطبقها على الجدران والارضيات والأبواب وبالطريقة التي تعجبك ,, لكن من مساويء اضاءة ال Texturing أنها لاتتأثر بزاوية الرؤية الخاصة بالكاميرا ,, يعني لو تحرك المشهد فمهما كان ستحس وكأن الاضاءة لاتتفاعل مع حركتك وانعكاسها على الكاميرا حسب موضعك من مسقط الاضاءه على الجدار مثلا ,,

المهم في مثالنا استخدمنا جدران في كل جدار 31*31*2 سمت !!

لاحظ عدد ال FPS ممتازة جدا ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#2

المثال الرابع :

TeaPOT.jpg

البراد عبارة عن ملف X File مستورد من 3dMax في الغالب ,, وأعطيناه لون فضي مع تمكين خصائص الاضاءة وال specular "اللمعان" ,,

لكن لاحظ انعكاس البيئة الخارجية على البراد ,, كيف تم ذلك ؟

هي خدعة بسيطة فقط نقوم بتطبيق اكساء Texture على البراد بحيث يكون الاكساء هو أحد الجدران الخاصة بالخلفية ,,

ورص الجدران بهذه الطريقة تستخدم تقنية اسمها ال Sphear Map أو ال Cube Map ,, خرائط البيئة المكعبة والكروية ,, والأولى تعطي مظهر أفضل من الثانية غالبا ,,

وتدل على كيفية رص الجدران اما لتصبح أوجه مكعب أو يتم دمجها دالخل كرة لتتغلفها من الخارج ,,

المثال الخامس :

Water.jpg

وهو من أكثر الأمثلة التي أعجبتني ,, وهو معقد بما فيه الكفاية ويستخدم تقنية ال Effects ,,

كل مافي الأمر أنك عندما تضغط على حرف ال d تسقط قطرة ماء عشوائية على الماء وتقوم بعمل العمايل على سطح الماء ,,

نعرف ان قطرة المساء عندما تسقط على سطح مائي تعطي حلقات دائرية من دفعات مياه خارجة منها وفي كل الاتجاهات ,,

هذه الحركة تسمى بال Ripple ,, وتستخدم فيها الة Sin مع Cos غالبا لتمثيل المشهد ,,

لم أبحت في المثال أكثر ,, فيوجد ملف fx ,, وهو ملف Effect لم أستطع فهمه حتى الآن ,, لكن سنرى فيه لاحقا ,,

المثال السادس :

Body.jpg

لشخية متحركة ,, تم تصميمها بالكامل من مصمم 3d كال MAX مثلا أو المايا أو ال charchter Studio أو غيره ,, ثم ضمنت داخل ال Direct3D ,,

المهم يمكنك استيراد مقطوعة حركات في ملفات X Files مختلفة ثم عمل DrawSubet كل مرة للمجسم المطلوب لتكوين الحركة في النهاية ,,

بعد تصميم المجسم كاملا في ال MAX مثلا بالملابس وكل شيء ,, فعند التحويل بالأمر conv3ds يمكن تحويل ال Mesh للشخصية الكاملة ولكل الأجزاء المقسمة ,, "حيث يكون الجسم مكون من أجزاء منفصلة ,, يتم دمجها في النهاية في ملف واحد ,, ويتم عرضها جميعا أو جزء منها حسب الرغبة من كود ال Direct3D ,,

الكلام مختصر جدا ,, لأني فقط أردت التعريف بعض لتقنيات "التي أعرفها حتى الآن " التي ستساعدنا في الفهم الصحيح بشكل أفضل ,,

شدو حيلكم ,, نريد أن ندخل في تصميم الالعاب بشكل أسرع :) ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

#3

موضوع ممتاز صراحة

أرى الكفة في هذا المنتدى لصالح دايركت اكس

ستنقلب الكفة بإذن الله لصالح OpenGL في يوم ما :)

ربما يحتاج من يريد تعلم OpenGL موضوع على قرار هذا الموضوع

فهل تسمح لي استاذي باخذ الفكرة ليكون موضوعي القادم

تعرف على امثلة ل OpenGL

:)

مجهودك خرافي في هذا المنتدى

اعانك الله وسدد خطاك في المتابعة والافادة

لك تحياتي وتقديري

:)

برمجة الجرافيكس والألعاب والوسائط المتعددة

=====================================

لقد توفي اخيكم على الدعيج ثالث ايام عيد الفطر 1425 ... ادعو له بالرحمه والمغفره ... إدارة المنتدى .

=====================================

#4

السلام عليكم ,,

اقتباس
فهل تسمح لي استاذي باخذ الفكرة ليكون موضوعي القادم

طبعا ولنتقدم ونرى امكانيات كل منهما :P ولنر أيهما أفضل بالتجربة والخطأ :P

أخيرا أنا طرحت الموضوع لأني أريد أن نحول نوعية الأسئلة من كيف أشغل كود دايركت أكس ومن أيهما أفضل ,, الى مثلا : لماذا لايظهر سوى وجه واحد من المجسم أو ال Mesh الفلاني ,,

وكيف يمكن تطبيق التأثير الفلاني ,,

وماذا أفعل لأزيد عدد ال FPS في المشهد الفلاني ,, وغيرها من الأسئلة التي ستعكس مستوى القسم ككل ,,

تم تعديل هذه المشاركة بواسطة HGB في 30 أغسطس 2004 في 18:32

banner_60_468.gif

NOTHING IS IMPOSSIBLE

هذا الموضوع مغلق.

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

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

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

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

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