• 0
  • مالي خلق
  • أتهاوش
  • متضايق
  • مريض
  • مستانس
  • مستغرب
  • مشتط
  • أسولف
  • مغرم
  • معصب
  • منحرج
  • آكل
  • ابكي
  • ارقص
  • اصلي
  • استهبل
  • اضحك
  • اضحك  2
  • تعجبني
  • بضبطلك
  • رايق
  • زعلان
  • عبقري
  • نايم
  • طبيعي
  • كشخة
  • النتائج 1 إلى 7 من 7

    الموضوع: [درس] ظلال الأجسام بطريقة "real-time" ببرنامج الدارك بيسك

    1. #1
      التسجيل
      07-11-2005
      المشاركات
      445
      المواضيع
      22
      شكر / اعجاب مشاركة
      بطاقات الألعاب

      Gamertag: Towfieee

      [درس] ظلال الأجسام بطريقة "real-time" ببرنامج الدارك بيسك

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

      تصدير ظلال
      DarkBASIC Pro
      موضوع الظلال موضوع شائك لأنه يتطلب حسابات معقدة للزوايا والأبعاد. طبعاً أهم شيء في تصميم اللعبة هو التأكد من أن معظم الأجهزة ستتمكن من تشغيلها بحوالي "60=fps" حتى لا تتمكن العين المجردة من رؤية ما يحدث بين كل فريم والآخر.

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

      كود:
      MAKE OBJECT PLAIN OBJECT NUMBER,HEIGHT,WIDTH
       
      LOAD IMAGE FILE NAME,IMAGE NUMBER
       
      TEXTURE OBJECT OBJECT NUMBER,IMAGE NUMBER
      وبما أنك الآن أصبحت مؤهل ، سأبدأ بشرح الطريقة بالكلام ، ثم لاحقاً سأرفق قطعة الكود كاملة ....
      الظل ... كفكرة هو فقط رسمة على سطح معين كالأرضية أو الجدار باللون الرمادي ولكنك لازلت تستطيع أن ترى من خلالها هذه الأرضية أو ذلك الحائط.

      فإن نظرت الآن إلى لوحة المفاتيح من بين أناملك فأنت ترى رسمه تشبه أصابعك على اللوحة ولكنك لازلت ترى المفاتيح حتى ولو كان الظل فوقها.

      ما سنقوم به اليوم هو وضع رسمه شفافة فوق الأرضية ستكون بمثابة الظل المتشكل من مجسم كرة بعلو الأرض بقليل.

      الخطوات التالية هي كل ما نحتاجه :

      1- تشكيل أرضية بأبعاد متساية 500x500
      2- صنع مجسم كرة ووضعه على ارتفاق بسيط من الأرض
      3- وضع مجسم مسطح شفاف وتلبيسه صورة شفافة مرسوم عليها الظل
      4- سنجعل الظل يلاحق الكرة أينما ذهبت "زي ظلها "

      ملاحظة : صورة الظل صنعتها بالـ"G.I.M.P" ، وهي تحتوي على طبقة "Alpha"

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


    2. #2
      التسجيل
      24-01-2006
      الدولة
      QATAR
      المشاركات
      4,098
      المواضيع
      246
      شكر / اعجاب مشاركة

      رد: [درس] ظلال الأجسام بطريقة "real-time" ببرنامج الدارك بيسك

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

      على العموم ^^
      شكرا جزيلا ومنتظرين دروسك في برنامج دارك بسك ^^


    3. #3
      التسجيل
      07-11-2005
      المشاركات
      445
      المواضيع
      22
      شكر / اعجاب مشاركة
      بطاقات الألعاب

      Gamertag: Towfieee

      رد: [درس] ظلال الأجسام بطريقة "real-time" ببرنامج الدارك بيسك

      لنقل أن اسم المجسم "mojassam"ـ واسم الظل "zell" فسيكون أمر تمركز الظل كالتالي :
      POSITION OBJECT zell,object position x(mojassam), 1,position object z(mojassam

      فستلاحظ أن ارتفاع الظل سيبقى "1" بغض النظر عن ارتفاع المجسم، فاللحاق سيكون فقط بالإحداثيات "x و z"

    4. #4
      التسجيل
      19-10-2007
      الدولة
      في الجانب المظلم من الـــــــDark basic
      المشاركات
      985
      المواضيع
      42
      شكر / اعجاب مشاركة

      رد: [درس] ظلال الأجسام بطريقة "real-time" ببرنامج الدارك بيسك

      ممممممم......حلوه فكرة عمل plane وإكسائه
      هناك طريقه أخرى لكن لم أجربها.....أعتقد من إنك تفكر تجربها أو إنها لم تنجح معاك
      وهي إنه يمكن عملها بالضوء position light وتضع فيه إحداثيات الأوبجكت الرئيسي
      وقبل كل شيء يجب تعديل الضوءبحيث يصبح أسفل المجسّم.......هي ممكنه تقريباً ولست متأكد منها

    5. #5
      التسجيل
      07-11-2005
      المشاركات
      445
      المواضيع
      22
      شكر / اعجاب مشاركة
      بطاقات الألعاب

      Gamertag: Towfieee

      رد: [درس] ظلال الأجسام بطريقة "real-time" ببرنامج الدارك بيسك

      يمكن مثل ما قلت وضع ضوء أسود أو غامق ، وسيقوم بإعطاء ثأثير الظل. وعلى فكرة هذه هي الطريقة الموجودة في ملف المساعدة المرفق بالبرنامج. وهي ليست بالطريقة السيئة على الإطلاق.

      المميز في طريقتي هو إمكانية عمل سبرايت متحرك للظل وتحريكه مع تحريك الشخصية.
      ولا تنسى طريقة الهاردوير والتي يدعمها الدارك بيسك لعمل التأثير ، يفترض أن تكون دقيقة وأن يقوم كرت الشاشة بعمل الحسابات اللازمة ولكن المشكلة هو أنها تبطىء اللعبة. بالإضافة إلى أنها تؤثر سلبا على الرندر وشكله النهائي. والأمر الخاص بها هو :
      كود:
      set shadow shading on
      قمت بعمل ملف تنفيذي بالمثال المتعلق بالظل بطريقة الهاردوير
      التعديل الأخير تم بواسطة towfieee ; 02-07-2008 الساعة 07:22 PM سبب آخر: تصحيح

    6. #6
      التسجيل
      23-06-2007
      الدولة
      .:[ فِيـْ مَكَانـٍ مَاْ ]:.
      المشاركات
      661
      المواضيع
      29
      شكر / اعجاب مشاركة

      رد: [درس] ظلال الأجسام بطريقة "real-time" ببرنامج الدارك بيسك

      لا بس بصراحه انت طلعت أستاذ

      بالنسبة للمثال الأول , لا مشكلة فيه

      أما المثال الثاني فهو بطيء بشكل ملحوظ للغاية , هذا مع مجسمات ذات تفاصيل بسيطه , فما بالك بالأوبجيكتس المعقده

      بصراحه مشكلة بطء الدارك هذه معيقه في عملية صناعة الألعاب

    7. #7
      التسجيل
      07-11-2005
      المشاركات
      445
      المواضيع
      22
      شكر / اعجاب مشاركة
      بطاقات الألعاب

      Gamertag: Towfieee

      رد: [درس] ظلال الأجسام بطريقة "real-time" ببرنامج الدارك بيسك

      طبعاً المثال الثاني سيكون أبطأ لإنه تصدير ظل حقيقي ، والدارك بيسك ليس المسؤول عنه ، فمعظم إن لم يكن كل الألعاب المشهورة بجمال صورتها لا تستخدم المثال الثاني لأنه إرهاق للجهاز ويسبب بطء ، وهذا هو السبب الرئيسي وراء محاولتي إيجاد طريقة ملتوية للظل. فلربما تجد لعبة "call of duty 4" تعطي ظلال تتحرك مع تحرك اللاعب وتتعدد بتعدد الأضواء ولكنهم يستعملون المثال الأول ولكن بشكل موسع ومعقد. فهم يكسون المسطح بسبرايت متحرك ويغيرون حجم المسطح "scale object" لإعطاء مؤثرات شبه حقيقية . ولكنهم في الحقيقة يصنعون كل شيء "تحت الطاولة "

    ضوابط المشاركة

    • لا تستطيع إضافة مواضيع جديدة
    • لا تستطيع الرد على المواضيع
    • لا تستطيع إرفاق ملفات
    • لا تستطيع تعديل مشاركاتك
    •