موضوع: مساعده في xna

ردود: 10 | زيارات: 967
  1. #1
    عضو نشيط
    صور رمزية kimoz
    تاريخ التسجيل
    Jan 2010
    المنطقة
    syria
    ردود
    604

    مساعده في xna

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

    قررت البدأ بلبرمجه الثلاثية الأبعاد بمحرك XNA (طبعاً بعد ان اصبحت عندي خبره جيده في البرمجه ثنائية الأبعاد)
    ولكن بدأت المشاكل تظهر لقد قمت بتصميم شخصيه على برنامج 3D MAX وحولت الصيغه إلى FBX
    ولكن عند التشغيل تبداً الأشياء الغريبه
    و يظهر بشكل متداخل وغير مفهوم وتظهر مشاكل اخرى احياناً
    لقد رأيت الدرس الرابع من دروس الأخ جينرال-جزاه الله كل خير- والذي لفت نظري أن ملف
    الطائره الموجود في الدرس عندما تستورده في XNA وتضغط على اليمين ثم view code
    يظهر كود كبير ولكن في ملفاتي يظهر خطأ مع العلم انني استطيع الإستيراد من blender من
    دون مشاكل ولكن ايضاً في ملف bledner يظهر كود على عكس ملفاتي
    السؤال هو كيف يتم استخراج ملف 3d من 3d max يمكن نقله إلى xna بدون مشاكل مع الأكساء
    آسف للإطاله وشكراً


  2. #2
    وعليكم السلام ورحمة الله وبركاته ^^
    هل يمكنك أن ترينا الكود؟ ^^
    لم أطلع على درس أخي جينيرال حقيقة ..
    لكن إن كان للموديل أكثر من mesh ، ففي ظني الأول أن الكود الذي كتبته يمر عليها ليضع الـTransformations الخاصة بها في نقطة واحدة بدلاً من نقل الـTransformations الخاصة بها من الملف ، فيتسبب ذلك في وضعها في مكان واحد فتظهر متداخلة ؟ ^^
    أو هذا ما فهمته من كلامك xS
    إن لم يكن كذلك فربما هناك مشكلة في تصديرك ،
    تأكد أن الموديل حين التصدير في الاحداثي (0،0،0) ثم قم بعمل Reset للـXForm ^_^ غير ذلك فقد تحصل مشاكل في التصدير..
    على أيٍ ، سأحب أن أرى كود الرسم الذي كتبته ^^ .. أو ندع الإجابة للأستاذ جينيرال بإذن الله كاتب الدرس حيث أنه سيعلم ما المشكلة بالضبط ^_~

  3. #3
    مشرف منبر Games Design
    صور رمزية general1
    تاريخ التسجيل
    Jun 2007
    ردود
    1,066
    http://osamadeep.com/files/Ali/Learn_XNA.rar

    إقرأ الدرس الرابع إن شاء الله يفيدك و يمكنك اكمال الدروس إن اردت

    و اعتقد ان المشكلة مثل ما قال الأخ mody-san و لكن الحل في الXNA مختلف قليلا عما قال
    Egypt


    I Love Direct-X

    سبحان الله و بحمده سبحان الله العظيم
    اللهم صلي وسلم و بارك علي سيدنا محمد

  4. #4
    عضو نشيط
    صور رمزية kimoz
    تاريخ التسجيل
    Jan 2010
    المنطقة
    syria
    ردود
    604
    اولاً شكراً لكم على الرد
    اخ mody-san لا اظن أن الخطأ برمجي لأن الكود هو نفسه الكود المستخدم في الدرس الرابع من دروس الأخ جينرال
    ولكن كما ذكرت الخطأ أن الأشكال التي اصممها في 3d max تختلف عن الشكل الموجود في درس الأخ جينرال
    وقد وضعت وجه الأختلاف في الموضوع ويمكنكون رؤية الأختلاف من الصور

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

    كما تلاحظون يظهر كود كبير وهذا وجه الأختلاف لفت نظري كلمة
    Creator: "FBX SDK/FBX Plugins build
    فبحثت على الأنترنت ووجدت اضافة FBX SDK/FBX وحملتها ولكن لم استفد شيئ
    ومازالت المشكله وأنا مستغرب فعلاً لأنني اشعر ان المشاكل يجب أن تظهر في المستوى المتقدم
    وليس عند البدايه !!!
    شكراً وارجو المساعده

  5. #5
    لا أعلم إن كان للأمر علاقة ^^ .. لكن على اعتقادي أن المشكلة هنا هي أنه لا يتعرف على صيغة .FBX إن كانت Uppercase ؟ .. حاول تغيير الصيغة إلى .fbx بدلاً من .FBX

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

    سأعود لاحقاً لأكمل ردي ><" حالياً منشغل جداً

  6. #6
    حسناً عودة ^_^
    اطلعت أخيراً على الدرس الرابع وغالباً ظني صحيح .. إن كان المجسم يحتوي على أكثر من mesh فإن الكود سيضعهم في مكان واحد مما سيسبب تداخلهم ^^ ..
    وهو بالمناسبة ليس خطأً في كود الأستاذ جينيرال كما ذكرت ^^ ، فهو كان يشرح على موديل يتكون من mesh واحدة فقط
    جرب الكود التالي :
    كود:
    Matrix[] transforms = new Matrix[myModel.Bones.Count];
       myModel.CopyAbsoluteBoneTransformsTo(transforms);    
         foreach (ModelMesh mesh in myModel.Meshes)
        {
            foreach (BasicEffect effect in mesh.Effects)
            {
                effect.EnableDefaultLighting();
                effect.World = transforms[mesh.ParentBone.Index];
                effect.View = camera.View;
                effect.Projection = camera.Projection;
            }
    
            mesh.Draw();
        }
    جرب الكود بالأعلى ^^ .. سيرسم الموديل الذي يسمى بـmyModel تبع الـBone Transformation أولاً ^^

  7. #7
    عضو متميز
    صور رمزية omarzonex
    تاريخ التسجيل
    Jan 2009
    المنطقة
    نبض قلبي- فلسطين
    ردود
    6,681
    نوعية فرجن الموديل fbx 6.0.0
    قديم ولا يقبل عرض الكود بتاع الموديل

    ارجو ان تحفظ انوعية الموديل لفرجن احدث مثل fbx 2009
    هذه النوعية يقبل عرض الكود فيه بكل سهولة وبأمكانك ان تعدل فيه اذا اردت ذلك


  8. #8
    مشرف منبر Games Design
    صور رمزية general1
    تاريخ التسجيل
    Jun 2007
    ردود
    1,066
    مثل ما قال الأخ mody-san هذه هي الجملة التي ستحل مشكلتك :

    Matrix[] transforms = new Matrix[myModel.Bones.Count];
    myModel.CopyAbsoluteBoneTransformsTo(transforms);

    effect.World = transforms[mesh.ParentBone.Index];
    Egypt


    I Love Direct-X

    سبحان الله و بحمده سبحان الله العظيم
    اللهم صلي وسلم و بارك علي سيدنا محمد

  9. #9

  10. #10
    عضو نشيط
    صور رمزية kimoz
    تاريخ التسجيل
    Jan 2010
    المنطقة
    syria
    ردود
    604
    أولاً وطبعاً شكراً على ردودكم ...
    اخ mody-san اعتقد ان المشكله كما تقول فعندما ارسم مربع واحد يظهر من دون مشاكل ولكن عند رسم
    4 مربعات تظهر متداخله ولكن قد تمكنت من حل المشكله بدون استخدام الكود الذي وضعته وذلك
    برسم كل مربع على حدا(لكل mesh ملف fbx) وسوف استخدم هذا الحل مؤقتاً خصوصاً ان الأشكال التي ارسمها بسيطه
    ويمكنني رسم كل mesh على حدا ووضع ModelPosition لكل واحد ثم تركيبها بتغير ال ModelPosition لكل واحد
    شكراً لك وللأخ جينرال على المساعده وشكراً...

Bookmarks

قوانين الموضوعات

  • لا يمكنك اضافة موضوع جديد
  • لا يمكنك اضافة ردود
  • لا يمكنك اضافة مرفقات
  • لا يمكنك تعديل مشاركاتك
  •  
  • كود BB مفعّل
  • رموز الحالة مفعّل
  • كود [IMG] مفعّل
  • [VIDEO] code is مفعّل
  • كود HTML معطل