موضوع: هل من الممكن ادخال v-ray الى برمجة الألعاب ولماذا؟

ردود: 19 | زيارات: 1346
  1. #1
    عضو متميز
    صور رمزية omarzonex
    تاريخ التسجيل
    Jan 2009
    المنطقة
    نبض قلبي- فلسطين
    ردود
    6,681

    Post هل من الممكن ادخال v-ray الى برمجة الألعاب ولماذا؟

    السلام عليكم يا أخواني :

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

    هل ممكن ذلك ان يسرع عملية الرندر في عمل لعبة معينة 2d او 3d في الوقت الحقيقي ?

    وماهي الوظائف المطلوب اجراءتها من ذلك ؟

    هل عند ادخال v-ray يحل محل ترجمة المظلل opengl - hlsl - glsl shader

    مع انه هذه اللغة ترجمة المظلل الذي يقوم بعمل تأثيرات على النماذج ومعالجة الرؤوس والنقاط الموجودة في المشهد مثلاً

    ارجو لمن لديه الخبرة في ذلك (v-ray / shader )

    القدرة في اعطاء المزيد من الأحتمالات في ادخال v-ray مع shader

    او الأستغناء عن أحدهما ليحل محله وبالتالي يسرع عملية الرندر ؟؟؟؟


  2. #2
    مشرف منبر 3D Games Design
    صور رمزية oms
    تاريخ التسجيل
    Oct 2004
    المنطقة
    Turkey
    ردود
    6,683
    وعليكم السلام ...

    نعم يمكن للفيراي أن يدخل في عملية تصنيع الألعاب ، رغم أننا نعلم أن الفريم الواحد قد يحتاج ساعة واخدة لعمله ، ونعلم أيضاً أنك في اللعبة يطلب منك إخراج 25 فريم على الأقل لكي تحافظ على التباين .
    الموضوع قديم ويتم إستخدامه بكثرة ... من خلال طريقة ( Render To Texture )
    بإمكانك مشاهدة هذا الموضوع القديم :
    http://www.maxforums.net/showthread.php?t=91637

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

    Lightbulb تجربة الرندر

    شكراً أخي على هذه الملاحظة

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

    عملت مشروع في XNA اضفت بحر و تمثال بناء وبيئة طبيعية وغيوم

    ولكن حاولت ان اعمل شفافية الغيوم Billboard حول البناء قمت بأستعمال Blend


    كود:
    Game.GraphicsDevice.RenderState.AlphaBlendEnable = true;
    
                    Game.GraphicsDevice.RenderState.SourceBlend = Blend.SourceAlpha;
                   Game.GraphicsDevice.RenderState.DestinationBlend = Blend.InverseDestinationAlpha   ;
                   Game.GraphicsDevice.RenderState.AlphaDestinationBlend = Blend.DestinationColor    ;
    
    
                    Game.GraphicsDevice.RenderState.DepthBufferWriteEnable = true   ;
    ارجو المساعدة في جعل الغيوم شفافة


  4. #4
    مشرف منبر 3D Games Design
    صور رمزية oms
    تاريخ التسجيل
    Oct 2004
    المنطقة
    Turkey
    ردود
    6,683
    أوووبس ... إنت هيك غيرت الموضوع ^^"

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

    Lightbulb توجد مشكلة

    انا آسف ولكن خطأ مني سهواً

    ولكن اكمل موضوع v-ray في البرمجة فقط وليس في 3dmax او برامج تصميم 3D

    هل ممكن عمل غيوم تكون 3D في 3DSTUDIOMAX

    واظهار ملامحها كاملة في المجسم

  6. #6
    مشرف منبر 3D Games Design
    صور رمزية oms
    تاريخ التسجيل
    Oct 2004
    المنطقة
    Turkey
    ردود
    6,683
    نعم يمكن ذلك ... من خلال الشيدر أو حتى البارتكل ..

    بس على الغالب بيستخدموا مجموعة صور على شكل Billboard

  7. #7
    مشرف منبر Games Design
    صور رمزية general1
    تاريخ التسجيل
    Jun 2007
    ردود
    1,066
    بالنسبة لموضوع الV-Ray فأنا كما قلت رأيى قبلا انه شادر و يمكنك كتابته و يمكنك استعمال كما قال الاخ اسامة Render to texture و هو احد الاساليب المستعملة و القوية و قولت انه هذا ليس من السهل بسبب عدد الFrames المطلوب و لكن الاخ اسامة وضح طريقة قد توفر الجهد

    و بالنسبة للغيوم فلماذا لا تستعمل

    كود:
                spriteBatch.Begin(SpriteBlendMode.AlphaBlend);
    Egypt


    I Love Direct-X

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

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

    يوجد سبب غامض

    شكراً مرة أخرى على المعلومة أسامة والأخ GENERAL1

    ولكني فيما سبق استعملت
    كود:
     spriteBatch.Begin(SpriteBlendMode.AlphaBlend);
    دون جدوى هل من الممكن ان يكون خارج نطاق الشيدر
    او لأن الكاميرا ترى المشهد بعيد عن الشيدر BillBoard للغيوم لأن يوجد به تأثير Phong للشيدر البناء

    وانعكاس الغيوم في البحر له تأثير أخر للشيدر ولكنه غير موجود في المشهد المتحرك

  9. #9
    مشرف منبر Games Design
    صور رمزية general1
    تاريخ التسجيل
    Jun 2007
    ردود
    1,066
    طب ينفع اخ عمر تحط الكود و احاول اعرف الخطأ بالظبط او يا ريت علي الاقل تحط صورة الغيوم عشان اعملهالك و ارفعهالك
    Egypt


    I Love Direct-X

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

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

    تجربة أخرى

    هذه صورة الغيوم ولكن المشكلة ليست في الصورة لأنها png شفافة
    توجد مشكلة في هيئة الصورة عن طريق blend


    لأنني جربتها خارج المشروع بمشروع منفصل عنها لوحدها طلعت تمام مع الشمس

    انظر هذه الصورة من مشروع آخر الغيوم مع الشمس فقط

  11. #11
    مشرف منبر Games Design
    صور رمزية general1
    تاريخ التسجيل
    Jun 2007
    ردود
    1,066
    طب يعني الان من خلال كلامك فأن المشكلة ليست بالصورة المشكلة بالكود فيا ريت لو تعرفني الكود مكتوب فيه ايه و احاول اساعدك
    Egypt


    I Love Direct-X

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

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

    كود رسم الغيوم

    هذا مقطع من كود رسم الغيوم DrawClouds

    كود:
     public override void Draw(GameTime gameTime)
            {
                if (Visible)
                {
                    if (DrawBoundingBox)
                        for (int c = 0; c < CloudList.Count; c++)
                            CloudList[c].DrawBounds(myPosition);
    
                    // Set blend mode
                    bool AlphaBlendEnable = Game.GraphicsDevice.RenderState.AlphaBlendEnable;
                    Blend DestinationBlend = Game.GraphicsDevice.RenderState.DestinationBlend;
                    Blend SourceBlend = Game.GraphicsDevice.RenderState.SourceBlend;
    
                    Game.GraphicsDevice.RenderState.AlphaBlendEnable = true;
    
                    Game.GraphicsDevice.RenderState.SourceBlend = Blend.SourceAlpha;
                    Game.GraphicsDevice.RenderState.DestinationBlend = Blend.InverseSourceAlpha;
                    
                    Game.GraphicsDevice.RenderState.DepthBufferWriteEnable = false;
    
                    // Draw Point Sprite Clouds
                    if (m_sprites != null && m_sprites.Length > 0)
                        DrawPSClouds(gameTime);
    
                    // Draw Billboard Clouds
                    if (m_billboards != null && m_billboards.Length > 0)
                        DrawBBClouds(gameTime);
    
                    // Set the states back.
                    Game.GraphicsDevice.RenderState.DepthBufferWriteEnable = true;
    
                    Game.GraphicsDevice.RenderState.AlphaBlendEnable = AlphaBlendEnable;
    
                    Game.GraphicsDevice.RenderState.DestinationBlend = DestinationBlend;
                    Game.GraphicsDevice.RenderState.SourceBlend = SourceBlend;
                }
                base.Draw(gameTime);
            }
    هل هذا يكفي او اكتب الكود كامل لأنه كود طويل جداً

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

    انا بأنتظارك يا صديقي .....

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

    Lightbulb وجدت الحل ولكن يوجد تناقض

    أخي الكريم السلام عليكم :
    لقد أضفت Terrain ووضعته فوق سطح البحر النتيجة ظهور الغيوم على شكل شفاف ولكن

    على سطح الجبل او Terrain ظهور الغيوم من تحت الجبل

    ولكن على سطح البحر لا يوجد لها أثر ولا يوجد ظل الغيوم على سطح الماء او البناء المطفو على سطح البحر






  14. #14
    مشرف منبر Games Design
    صور رمزية general1
    تاريخ التسجيل
    Jun 2007
    ردود
    1,066
    شوف واضح انك قمت برسم البحر و المبني بعد رسم السحاب فيرسم فوقه و لذلك عليك بوضح كود رسم السحاب في اول دالة Draw جرب و قولي
    Egypt


    I Love Direct-X

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

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

    ادراج الغيوم

    هل له تأثير مطلق على الشيدر ؟؟؟

    دون جدوى رسمت الغيوم أولاً

    يوجد متغيرين لـ spritebatch
    والأخر بأسم mSpriteBatch

    هل السبب منه !!!!

  16. #16
    مشرف منبر Games Design
    صور رمزية general1
    تاريخ التسجيل
    Jun 2007
    ردود
    1,066
    بالنسبة لوجود متغيرين للSpritebatch فلن يكون هناك ضرر و لكن استدعاء جملة Begin يبطىء من اللعبة فيستحسن استخدام متغير واحد و لكن لن يفرق في الرندر

    بس انا مش قادر احل المشكلة لأني مش شايف الكود كاملا و مش قادر احكم... بس لو تقدر تبعتلي المشروع علي الخاص اعملهولك

    لكن جرب :

    GraphicsDevice.RenderState.DepthBufferEnable = false;

    قبل رسم السحاب و ردلي خبر
    Egypt


    I Love Direct-X

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

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

    Talking الخيال المقنع

    السلام عليكم يا أخواني

    لقد وجدت طريقة ذكية جداً ومختصرة لأنشاء Shaders , Lights , Models , Effects
    في كود واحد فقط ويمكن أستدعائها في 5 أسطر حسب مكونات اللعبة الذي برمجتها انت
    مثلاً :
    كود:
     Mesh mesh = new Mesh(this);
                    mesh.MeshAsset = "Models/model";
                    mesh.EffectAsset = "Shaders/effect";
                    mesh.TextureAsset = "Textures/texture";
                    mesh.TextureScale = 2.0f;
                    mesh.Lights = lights;
                    mesh.Scale = 1.0f;
                    mesh.Position = new Vector3(8.0f * i, 0.0f, -15.0f * i);
                    mesh.Initialize();
    
                    mModels.Add(mesh);
    طبعاً لا تنسى في كتابة المتغيرات في البداية

    واستطعت بالتوفيق من الله سبحانه وتعالى في اضافة غيوم او سحب مع التحكم في الجو غائم او ممطر او رعدية او سحب سوداء مع بياض اللون ناتجة عن انعكاس ضوء الشمس على الغيوم يعطيك مظهراً رائع الجمال واندماج برمجة Physical Component مع حركة الشمس و تحريك الهواء مع الغيوم
    واعداد تحكم تدرج الليل مع النجوم وطلوع الشمس من الشرق الى الغرب بوجود غيوم الصباح يظهر المنظر راقي جداً كأنه واقع وذلك بتأثيرات Effects وضعتها ليظهر المنظر طبيعي .....








    ارجو ان تعجبكم برمجتي المتواضعة

    وانشاء الله سوف أعمل دروس لكيفية صنع الغيوم على انواع والشمس والمطر وحركتها مع الفيزك

  18. #18
    مشرف منبر Games Design
    صور رمزية general1
    تاريخ التسجيل
    Jun 2007
    ردود
    1,066
    عمل جيد جدا و النتيجة قوية و ارجو عرض الطريقة بس يا ريت ما تكون مجهدة للجهاز.
    Egypt


    I Love Direct-X

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

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

    Talking طريقة رسم الغيوم مع تحركاتها

    لقد ارسلت لكم تجربة المشروع ولكن بشكل منفصل عن بعضهم

    الأول كود الغيوم الرئيسي وهو البداية
    http://www.2shared.com/file/7065165/...udsSunALL.html

    الثاني كود الفيزك والمتغيرات او المكونات لـ Sky , Terrain , Rain
    http://www.2shared.com/file/7065205/...ineClouds.html

    الثالث تجربة المشروع كاملاً بنوع ccgame
    http://www.2shared.com/file/7065213/...ALL_Debug.html

    ملاحظة :
    F1-F12 تكاثف الغيوم
    1 غيوم خفيفة
    2 غيوم مع مطر
    3 غيوم الليل
    4 غيوم تكيفة
    O زيادة الغيوم
    P تقليل الغيوم
    0 حركة الغيوم للوراء مع تحرك الليل والنهار
    9 حركة الغيوم للأمام مع تحرك النهار والليل
    + الماوس


    ارجو ان تفيدنا من اي ملاحظات او افكار جديدة قد تحسن من مستوى المنظر بتقريب نسبي يكون مقبولاً نوعاً ما

Bookmarks

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

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