قابل توجه کاربران گرامی: تاپیک معرفی اعضاء برای آشنایی بیشتر با یکدیگر (حتما شرکت کنید) لینک
صفحه 2 از 2 نخستنخست 12
نمایش نتایج: از 11 به 15 از 15
Like Tree32Likes

موضوع: Physics در بازی های رایانه ایی چیست ؟

  1. #1
    Retired assistant
    The Joker آواتار ها
    تاریخ عضویت
    Aug 2012
    محل سکونت
    مشهد
    نام واقعی
    محمد جواد
    نوشته ها
    775
    تشکر شده 7,070 بار در 737 پست
    The Joker آنلاین نیست.

    Physics در بازی های رایانه ایی چیست ؟

    با نام و یاد خدا



    موتور فیزیک یک برنامه ی کامپیوتری است که یک شبیه سازی تقریبی از سیستم های فیزیکی خاص مثل Rigid Body Dynamics و Soft Body Dynamics و Fluid Dynamics و ... در حوزه ی بازی های کامپیوتری و فیلم ها را فراهم می کند .

    به صورت کلی دو نوع موتور فیزیک پایه وجود دارد که تمامی موتور های فیزیک جزو این دو دسته قرار می گیرند :

    1 . موتور های Real Time
    2 . موتور هایی با دقت بالا یا High Precision

    موتور های High Precision به قدرت پردازشی بسیار بالایی برای محاسبه ی بسیار دقیق فیزیک نیاز دارند و معمولآ توسط دانشمندان و جلوه های ویژه در فیلم ها و ... مورد استفاده قرار می گیرند .

    موتور های Real Time که بیشتر در بازی های کامپیوتری مورد استفاده قرار می گیرند به نسبت موتور های High Precision به قدرت پردازشی کمتری نیاز دارند و محاسبات را ساده تر انجام می دهند و از دقت کمتری برخوردارند ، اما ذکر این نکته ضروری است که استفاده از این نوع موتور برای بوجود آوردن یک حالت تعادلی بین بازی و فیزیک و روانی گیم پلی و فریم ریت در بازی ضروری است و اگر قرار بود که در بازی ها از موتور های High Precision استفاده می شد ، قدرتمند ترین کارت های گرافیک حال حاظر هم از پردازش فیزیک بازی عاجز بودند .

    Scientific engines

    یکی از اولین کامپیوتر های چند منظوره ی ساخته شده به دست بشر به نام ENIAC برای اولین بار به عنوان یک موتور برای پردازش های فیزیک مورد استفاده قرار گرفت .
    از این موتور فیزیک برای اولین بار توسط ارتش ایالات متحده برای پردازش های فیزیکی قبل از پرتاب گلوله های توپ خونه ها و همچنین میزان تخریب گلوله ها و موشک ها در محل اصابت و همچنین میزان باروت مورد استفاده در گلوله ها و میزان انحراف گلوله ها توسط باد و ... مورد استفاده قرار می گرفت .

    از سال 1980 به بعد موتور های فیزیک به عنوان یکی از اساسی ترین قسمت ها در ابر کامپیوتر ها برای مدل سازی های دینامیک و سیالات محاسباتی مورد استفاده قرار می گرفت .
    از آنجایی که پردازش های فیزیک به سرعت و قدرت بسیار بالایی نیاز دارند ، پردازنده های ویژه ایی به نام Vector برای کامپیوتر ها ساخته شد تا این پردازش ها را انجام دهند .
    تکنیک های فیزیکی که این پردازنده ها قادر به پردازش آنها بودند عبارتند از پردازش الگو های آب و هوا در هوا شناسی ها ، الگو های باد و آب برای ساخت هواپیماها و قایق ها و همچنین خنک کننده های حرارتی برای بهبود هیت سینک ها بود.

    Physics Processing Unit یا به اختصار PPU یک ریزپردازنده (Microprocessor) است که به صورت اختصاصی فقط برای رسیدگی و پردازش محاسبات فیزیک به خصوص در موتور های فیزیک برای بازی ها ساخته شده است .
    به عنوان مثال شبیه سازی های فیزیکی که یک PPU قادر به انجام آنهای می باشد عبارتند از: rigid body dynamics ، soft body dynamics ، collision detection ، fluid dynamics و شبیه سازی های مو و لباس و شکستن و تخریب اجسام و ...
    هدف اصلی از ساخت PPU این بود که بار پردازشی شبیه سازی های فیزیکی از روی دوش CPU برداشته شود و به PPU واگذار شود .

    اولین پردازنده ایی که به عنوان یک PPU ساخته شد ، توسط شرکتی به نام AGEIA ساخته شد و Physx Chip نام گرفت .
    در سال 2008 انویدیا شرکت AGEIA را خریداری کرد و طی مرور زمان قابلیت پردازش فیزیک توسط PPU و GPU ها خوده انویدیا را در سیستم هایی که GPU های AMD/ATI به عنوان GPU اصلی در حال کار بودند را برداشت .
    با انجام این کار به نظر می رسید که تکنولوجی Physx به صورت 100% در انحصار انویدیا در آمده است اما بعدآ انویدیا اعلام کرد که تکنولوجی Physx را به صورت یک استاندارد باز برای استفاده همگان در خواهد آورد .

    با گذشت زمان و پیشرفت فوق العاده GPU ها و به لطف استفاده از فناوری General-Purpose Computing on Graphic Processing Units یا به اختصار GPGPU باعث شد یک GPU بسیار مناسب تر از یک PPU برای پردازش های فیزیکی به نظر آید .

    GPGPU به واحد های پردازش گرافیکی این امکان را می دهد که بعضی از کارهایی را که فقط واحد های پردازشی مرکزی قادر به انجام آنها بودند را در اختیار بگیرند ، GPU ها به نسبت CPU ها در پردازش های گرافیکی بسیار بسیار سریع تر هستند .



    اکنون که با تاریخ پردازش های فیزیک در برنامه های کامپیوتری و انواع موتور های فیزیک آشنا شدیم ، می پردازیم به مبحث فیزیک در بازی های کامپیوتری که مبحث اصلی تاپیک نیز همین موضوع است .

    Game Engines

    در بسیاری از بازی های کامپیوتری ، سرعت شبیه سازی و گیم پلی به نسبت دقت شبیه سازی های فیزیکی از اهمیت بیشتری برخوردار است .
    این موضوع باعث شد که موتور های طراحی بشوند که شبیه سازی ها را به صورت Real Time انجام دهند و تنها شبیه سازی فیزیکی برخی از موارد خاص و ساده همانند دنیای واقعی انجام شود .
    برخی از موتور های بازی همانند Source از فیزیک بیشتر در شبیه سازی های پازل و یا موقیت های جنگی استفاده می شود .

    در بازی های کامپیوتری از تکنیک های مختلفی برای شبیه سازی قوانین فیزیکی حاکم بر دنیا واقعی استفاده می شود که در زیر به بررسی این تکنیک ها می پردازیم .

    به صورت کلی تمام شبیه سازی هایی فیزیکی که در حوزه ی بازی های رایانه ایی و فیلم ها و ... استفاده می شود جزء دو دسته ی اصلی شبیه سازی های Rigid Body و Soft Body است .
    در شبیه سازی های Rigid Body ممکن است که چندین شیء زیر مجموعه ی یک شیء اصلی شوند و حرکاتی که شیء اصلی انجام می دهد بر اساس زیر مجموعه های آن شیء تعیین شود ، اما در شبیه سازی Soft Body ممکن است که بر روی قسمت های مختلف یک جسم شبیه سازی ها گوناگونی انجام شود که هر قسمت آن جسم حرکات مربوط به خود را داشته باشد .

    Rigid-Body Dynamics

    تمرکز اصلی تکنیک فیزیکی Rigid Body در بازی های رایانه ایی بر روی حرکات قسمت های به هم پیوسته بدن و یا یک شیء تحت تاثیر نیرو های وارده است .
    وقتی که می گویند یک چیز Rigid است ، بدان معنی است که آن چیز تحت عمل نیروی های وارده بر آن تغییر شکل نمی دهد و از حالت اصلی خود خارج نمی شود ، به عنوان مثال تکنیک Ragdoll بر اساس این تکنیک می باشد که بعدآ به آن اشاره می شود .



    اسکلت داخلی کاراکتر به عنوان یک جسم Rigid در نظر گرفته می شود

    Soft-Body Dynamics

    تکنیک فیزیکی Soft Body همانطور که از اسمش پیداست شبیه سازی بسیار واقع گرایانه از حرکات نرم اجسام و اشیاء مختلف در حوزه ی بازی های رایانه ایی و فیلم ها است .
    بر خلاف تکنیک Rigid Body شکل اجسامی و چیز هایی که تکنیک Soft Body در آنها استفاده می شود قابل تغییر است ، این بدان معنی است که فاصله نسبی بین دو نقطه بر روی یک جسم ثابت نیست .
    دامنه یتکنیک Soft Body به نسبت تکنیک قبلی بسیار گسترده تر است که این دامنه شامل شبیه سازی قسمت های نرم از عضوی از بدن مثل ماهیچه ها و عضلات بدن ، چربی ، مو و گیاهان و ... و همچنین شبیه سازی های بعضی از اجسام دگریس پذیر مثل لباس و پارچه و ... است .
    این شبیه سازی ها چون به صورت Real Time انجام می شوند ، سعی می شود تا حدودی زیادی واقع گرایانه باشند ، بر خلاف موتور های High Precise که این شبیه سازی ها توسط آنها بسیار بسیار زیبا و کاملا واقعی انجام می شوند .

    در تصاویر زیر شبیه سازی پارچه را مشاهده می کنید ، همانطور که در تصاویر مشاهده می کنید ، پارچه یک شیء دگریس پذیر است که تحت تاثیر نیرو هایی که به آن وارد شده است حالت اولیه خود را از دست داده است ، علاوه بر آن پارچه با جسم Rigid ( منظور ماشین و یا حروف ) که بر روی آن قرار دارد نیز تعامل بر قرار کرده است که این تعاملی که بین پارچه و ماشین برقرار شده است نیز تکنیک Collision Detection است که بعدآ به آن اشاره می شود .





    Fluid Dynamics

    به صورت خلاصه از این تکنیک به صورت گسترده برای شبیه سازی سیالات ( مایعات و گازها ) استفاده می شود .

    Collision detection

    در داخل محیط بازی اشیاء مختلف با یکدیگر ، با محیط و بازیکن و ... تعامل برقرار می کنند ، اگر Collision Detection داخل یک محیط وجود نداشته باشد اگر به عنوان مثال جسمی به سمت دیواری پرتاب شود ، چون Collision وجود ندارد ، آن جسم از داخل دیوار رد می شود و یا اگر دو جسم به سمت یکدیگر پرتاب شوند به جای برخورد با یکدیگر ، از داخل یکدیگر رد می شوند .
    موتوری که در اینجا وظیفه ی رندر کردن را بر عهده دارد هیچی تشخیصی از اینکه دو جسم جامد باید با یکدیگر برخورد کنند ندارد و به همین دلیل دو جسم از درون یکدیگر رد می شوند .

    در اکثر بازی های رایانه ایی یکی از مشکلاتی که باعث می شود بازیکن از بازی کردن دست بکشد که اکثرآ هم با نام باگ یاد می شود همین مشکل Collision Detection است ، زمانی که به عنوان مثال در یک بازی شوتر فضایی یک شهاب سنگ به سفینه ی بازیکن برخورد می کند ، باید پس از برخورد متلاشی شود و یا سفینه را متلاشی کند ، مسلمآ در اینجور مواقع اگر شهاب سنگ از داخل سفینه رد شود بدون اینکه حتی یک خط هم به سفینه بیفتد چه حسی به بازیکن دست می دهد ؟




    برای اینکه مشکلات این چنینی در داخل یک بازی بوجود نیاید ، بازی باید بداند که دو جسم در حال تداخل با یکدیگر هستند ، فرآیندی که طی آن این حالت ها در بازی شناسایی می شوند و پاسخ مناسب به آنها داده می شود Collision Detection نام دارد که یکی از وظایف اصلی کد های فیزیک نیز همین موضوع می باشد .


    [Only registered and activated users can see links. ]

    به طور معمول برای هر شیء سه بعدی داخل بازی دو حالت در نظر گرفته می شود ، حالت اول که شکل ظاهری شیء مورد نظر می باشد ، به عنوان مثال یک گلدان همراه با دستگیره هایش ، و حالت دوم که یک حالت نامرئی برای شناساندن شیء به موتور فیزیک می باشد که موتور فیزیک آن گلدان را به عنوان یک استوانه ی بسیار ساده شناسایی می کند.
    در این حالت غیر ممکن است که بتوان به عنوان مثال یک میله و یا یک گلوله را از بین دسته های گلدان رد کرد ، زیرا موتور فیزیک در حالت پیش فرض آن گلدان را به عنوان یک استوانه ی کاملآ ساده می شناسد و از دسته های گلدان در این حالت خبری نیست و توسط موتور شناسایی نمی شود .

    همچنین به حالت نامرئی ای که برای شناساندن یک شیء به موتور فیزیک در نظر گرفته می شود هندسه برخورد یا Collision Geometry می گویند ، این حالت نامرئی ممکن است که به شکل یک جعبه ، یک استوانه ، یک دایره و ... باشد .

    موتورهایی که به صورت پیش فرض برای شناسایی اجسام و اشیاء در داخل محیط بازی و همچنین Collision Detection از حالتی به شکل جعبه (مربع و یا مستطیل) و یا دایره استفاده می کنند به عنوان ساده ترین موتور های فیزیک در نظر گرفته می شوند .
    به عنوان مثال شما یک گلدان را در نظر بگیرید که بر روی میزی قرار دارد و شکل هندسی که موتور فیزیک برای شناسایی این گلدان استفاده می کند مربع است ، زمانی که ضربه ایی به این گلدان زده می شود و گلدان از روی میز به روی زمین می افتد به دلیل شکل مربعی که موتور فیزیک برای شناسایی گلدان استفاده می کند کاملآ ساده بر روی زمین می افتد و پس از برخورد با زمین به دلیل چهار گوش بودن مربع به همان شکل باقی بماند و تکان نخورد و هر چقدر که شما بیشتر به گلدان ضربه بزنید به دلیل حالت مربعی گلدان تغییر در نحوه ی قرار گیری گلدان بر روی زمین بوجود نمی آید و فقط ممکن است که گلدان از جایش جابه جا شود .

    حالا اگر موتور فیزیک برای شناسایی گلدان به جای مربع از شکل هندسی بیضی و یا دایره استفاده کند ، هنگامی که گلدان بر روی زمین می افتد دیگر ثابت باقی نمی ماند و بر روی زمین قل می خورد و ممکن است که مسافت زیادی را به همین صورت طی کند .

    Collision Resolution/Response

    زمانی که موتور فیزیک در بازی تشخیص داد که دو جسم و یا چندین جسم با یکدیگر تعامل برقرار کردند ، بعد از آن چه اتفاقی می افتد ؟
    در اکثر مواقع ، اتفاقی که بعد از تشخیص برخورد دو جسم می افتد به قوانین حاکم بر محیط بازی بر می گردد ، به عنوان مثال در یک بازی اول شخص شوتر ، بعد از اینکه بازیکن تیر می خورد و می میرد و دوباره بازی از اول شروع می شود هیچ ربطی به موتور فیزیک بازی ندارد ، بلکه خوده بازی در اینجا دخیل است ، اما زمانی که بازیکن به عنوان مثال به یک صندلی ضربه ایی می زند و صندلی به روی زمین می افتد ، اینجا موتور فیزیک بازی نقش اصلی را ایفا میکند .

    ضربه ی وارده به صندلی و اینکه صندلی به روی زمین بی افتد و احتمالآ مقداری بلغزد و یا از جایش جابه جا شود با قوانین فیزیک ارتباط مستقیم دارد که در این جور مواقع موتور فیزیک بازی وظیفه ی شبیه سازی فیزیکی را بر عهده دارد .

    این دسته از واکنش ها که یکی از پیچیده ترین و شایع ترین واکنش هایی است که باید در یک بازی اتفاق بی افتد Collision Response نام دارد .

    به عنوان مثال شما فرض کنید که داخل بازی دو تا توپ در حال نزدیک شدن به یکدیگر باشند ، هنگامی که این دو توپ به یکدیگر می رسند و با هم برخورد می کنند موتور فیزیک این برخورد را شناسایی می کند ، این بدان معنی است که Collision در این مرحله شناسایی شده است ، اما هنگامی که دو توپ با یکدیگر برخورد می کنند باید یکدیگر را دفع کنند و هر کدام از آنها به سمت دیگری حرکت کند که این Collision Response است .

    اگر Collision Response وجود نداشته باشد ، دو تا توپ پس از برخورد با یگدیگر بدون اینکه یکدیگر را دفع کنند به روی زمین می افتادند .
    حال اگر قانون جاذبه یا Gravity در بازی وجود داشته باشد ، دو توپ پس از برخورد با یکدیگر بر روی زمین می افتند ، اگر جاذبه وجود نداشته باشد ، توپ ها پس از برخورد به همان حالت بر روی هوا باقی می ماندند .

    تمامی این شبیه سازی های فیزیکی توسط موتور فیزیک انجام می شوند .

    Particle System

    اصطلاح سیستم ذرات یا Particle System به یک تکنیک گرافیکی در کامپیوتر اشاره دارد که در آن با استفاده از ذرات بسیار بسیار ریز برای شبیه سازی یک سری پدیده های به اصطلاح Fuzzy که با استفاده از رندر های معمولی بسیار دشوار یا غیر ممکن است استفاده می کنند به عنوان مثال آتش ، انفجار ، آب در حال حرکت ( مثل آبشار ) ، جرقه ها ، برگ های درختان ، ابر ها ، برف ، مه ، گرد و خاک ، دنباله ی حرکات شهاب سنگ ها و ستارگان و یا جلوه های بصری مثل درخشش یک مسیر از راه و ... و ... .

    این ذرات معلق یا همان Particle ها پس از استفاده به سرعت محو می شوند و دوباره به سرعت از منبعشان ساطع می گردند .

    همچنین از این تکنیک برای شبیه سازی اجسام و یا اشیاء ایی که از رشته ها و یا لایه های بسیاری زیادی پدید آمده اند نیزاستفاده می شود به عنوان مثال مو و یا پشم و یا علف ها و ... که در این حالت از ذرات Particle برای شبیه سازی تمام منطقه و یا قسمتی از منطقه مورد استفاده قرار می گرد ، به عنوان مثال شما یک مزرعه را در نظر بگیرید ، در این حالت غیر ممکن است که حرکت تک تک رشته های علف ها در مزرعه را به صورت مستقل از هم شبیه سازی کنند ، در این حالت شبیه سازی حرکت علف ها برای تمام منطقه و یا قسمتی بزرگی از منطقه در نظر گرفته می شود ، به همین دلیل است که شما وقتی به مزرعه نگاه می کنید ، مشاهده می کنید که به عنوان مثال تمام علف ها با یکدیگر با یک ریتم مشخص حرکت می کنند .

    به صورت معمولی به منبعی که ذرات Particle در یک محیط از آنها ساطع می شوند Emiter گفته می شود که ممکن است این منبع یک مکعب بسیار ساده غیر متحرک و یا یک هواپیمای متحرک در آسمان باشد .




    ذرات پارتیکل که از یک Emiter ساطع می شوند دارای پارامتر های مختلفی می باشند ، یکی از این پارامتر ها spawning rate ( به تعداد ذراتی که در یک بازه زمانی خاص از منبع ساطع می شوند ) است و یکی دیگر از پارامتر ها velocity vector ( جهتی که ذرات از منبع ساطع می شوند ) است و یکی دیگر از پارامتر ها particle lifetime ( مدت زمانی که طول می کشد تا هر یک از ذرات پس از ساطع شدن ناپدید شوند ) است و همچنین بسیاری از پارامتر های دیگر مثل رنگ ذرات ساطع شده و ... .

    مقداری که برای پارامتر های هر یک از Emiter ها در نظر گرفته می شود به جای یک مقدار دقیق عددی ، یک مقدار به اصطلاح Fuzzy است ، به عنوان مثال مقدار زمانی که طول می کشد تا ذرات Particle پس از ساطع شدن از منبع ناپدید شوند به جای مثلآ 1 یا 2 ثانیه ، 50 فریم و یا بیشتر است .
    هر چقدر که میزان ذرات Particle ساطع شده از Emiter ها بیشتر باشد ، رندر این ذرات نیز سخت تر می شود و اگر سخت افزاری که اقدام به رندر ذرات می کند ضعیف باشد ، افت پرفورمنس و فریم در این حالت مشاهده می شود .

    در داخل یک محیط در یک بازی تعداد بسیار زیادی Emiter وجود دارد که از آنها ذرات Particle ساطع می شوند .
    برخی از این Emiter ها به طور یکنواخت در یک بازه ی زمانی خاص شروع به ساطع کردن ذرات Particle می کنند و برخی دیگر از Emiter ها تنها زمانی اقدام به ساطع کردن ذرات می کنند که شرایطی که به طور پیشفرض برای آنها در نظر گرفته شده مهیا شود ، به عنون مثال زمانی که یک ساختمان تخریب می شود و بر روی زمین فرو می ریزد و گرد و غبار و ... در فضا پخش می شود ، شما به یک باره مشاهده می کنید که فریم بازی افت پیدا می کند و پس از مدتی دوباره فریم به حالت قبلی باز می گردد ، این افت فریم به این دلیل است که وقتی ساختمان تخریب می شود ، Emiter هایی که برای تخریب ساختمان در نظر گرفته شده اند به یک باره اقدام به آزاد کردن میلیون ها میلیون ذره ی Particle در فضا می کنند و در این حالت مقدار فشار وارد شده به سخت افرار برای رندر این ذرات بسیار زیاد می شود و افت پرفورمنس مشاهده می شود ، پس از اینکه ذرات به مرور زمان ناپدید می شود ، فشار وارده به سخت افزار کمتر می شود و فریم به حالت قبل بر می گردد .





    Brownian motion

    در دنیا واقعی قوانین فیزیک همیشه حاکم و پابرجا است ، در دنیا واقعی تمام ذرات Particle موجود در اطراف ما حرکات براونی انجام می دهند و همیشه هم فعال هستند .
    (به حرکات تصادفی ذرات معلق یا همان Particle ها در یک سیال ( مایع یا گاز ) در اثر برخورد با اتم ها و یا مولکول ها در گاز ها و یا مایعات حرکات براونی می گویند .)
    اما در دنیا بازی های رایانه ایی فعال بودن این حرکات و ذرات به صورت دائمی جز فشار اظافی به CPU و افت پرفورمنس چیز دیگری در پی ندارد .

    در این حالت آن شیء مورد نظر در بازی به حالت غیر فعال قرار می گیرد و اگر به عنوان مثال در یک بازه ی زمانی خاص ، مسافتی مشخصی از مسیر را طی نکند ، شبیه سازی فیزیکی بر روی آن شیء انجام نمی شود ، به عنوان مثال اگر یک کاغذ که بر روی زمین قرار دارد تحت تاثیر هیچ نیرویی قرار نگیرد همان حالت سکون خودش رو حفظ می کند ، اما اگر به عنوان مثال تحت تاثیر باد قرار بگیرد و مثلآ مسافت یک متر را در کمتر از 2 ثانیه طی کند ، باز هم شبیه سازی فیزیکی بر روی کاغذ انجام نمیگرد و کاغذ فقط از جای خود جابه جا می شود ، اما اگر کاغذ تحت تاثیر باد قرار بگیرد و مدت زمانی که کاغذ در هوا شناور می شود از 2 ثانیه بیشتر شود ، مشاهده می کنید که شبیه سازی فیزیکی بر روز کاغذ انجام می شود و کاغذ در هوا پشت و رو می شود و به اشکال مختلف در میاد و ... .

    مثال دیگری که در این باره می شود به آن اشاره کرد ، افتادن برگ درختان می باشد و همچنین گرد و غبار هنگام تخریب یک ساختمان و یا سوختن یک تکه چوب و آتش و ... اشاره کرد .

    حرکات براونی در بین ذرات Particle ها باعث می شوند که این ذرات در هربار ساطع شدن از Emiter به صورت کاملآ تصادفی در آن محدوده ایی که برای آنها در نظر گرفته شده است به اطراف حرکت کنند که باعث می شود به عنوان مثال یک آتش همیشه به یک صورت نسوزد و یا گرد و غبار حاصل از تخریب یک ساختمان همیشه به یک شکل به هوا بلند نشود و ... .


    Ragdoll physics

    در برخی از موتور های فیزیک کامپیوتری ، فیزیکی به نام Ragdoll وجود دارد که جایگزینی برای انیمیشن های سنتی مرگ کاراکتر ها در یک بازی کامپیوتری و ... است .

    در بازی های کامپیوتری قدیمی ، زمانی که یک کاراکتر می مرد ، انیمیشنی که برای مردن این کاراکتر در نظر گرفته می شد یک حالت از قبل طراحی شده و بسیار مصنوعی بود ، اما یکی از نکات مثبت این انیمیشن های از قبل طراحی شده این بود که مقدار فشاری که به CPU برای پردازش داده های مرگ این کاراکتر وارد می شد بسیار کم بود .

    زمانی که قدرت ساخت افزار ها و CPU ها افزایش پیدا کرد ، شبیه سازی فیزیکی مرگ کاراکتر ها به صورت Real Time در مدت زمان محدودی ممکن شد .

    در این حالت برای هر کاراکتر یک اسکلت داخلی طراحی می شد که هر یک از استخوان ها بویسله ی مفصل ها به دیگر استخوان ها متصل می شد که حرکت هر یک از استخوان ها بویسله ی مفاصلی که استخوان ها را به یکدیگر متصل ساخته اند ، از یک استخوان به استخوان دیگر منتقل شود ، درست مانند استخوان های بدن یک فرد اما به صورت بسیار ساده تر .

    زمانی که کاراکتر می میرد و جسد او بر روی زمین می افتد ، به لطف مفصل هایی که استخوان ها را به یکدیگر متصل ساخته اند مرگ وی بسیار واقعی صورت می گیرد و جسد وی به صورت واقعی تری بر روی زمین می افتد و دیگر شاهد تکرار شدن انیمیشن های تکراری پیش فرض در مرگ هر کاراکتر نیستیم .

    در این حالت به اسکلت داخلی که برای کاراکتر طراحی می شود Ragdoll می گویند .



    یک طرح بسیار ساده و اولیه از اسکلت داخلی یک کاراکتر

    اولین بازی که در آن از فیزیک Ragdoll استفاده شده بازی Jurassic Park بود که هر چند به علت باگ های متعدد و مشکلاتی که داشت مورد توجه قرار نگرفت ، اما به عنوان اولین بازی که تکنیک جدیدی از فیزیک را وارد بازی های کامپیوتری کرد جای تقدیر و تشکر دارد .

    فیزیک Ragdoll که امروزه در بازی های کامپیوتری مورد استفاده قرار می گرد ، بسیار بسیار فراتر از شبیه سازی مرگ کاراکتر ها است .
    در بازی های سبک مبارزه ایی مثل Mortal Kombat نیز از این فیزیک به صورت بسیار گسترده تری مورد استفاده قرار می گیرد ، در این حالت بازیکن کنترل یک قسمت از بدن کاراکتری که در حال مبارزه است را در دست می گیرد و بقیه قطعات بدن کاراکتر به دنبال همان قسمتی از بدن که بازیکن کنترل آن را در دست دارد حرکت می کنند .

    Projectile

    یکی دیگر از تکنیک های فیزیکی که در بازی هایی مانند Fifa مورد استفاده قرار میگرد تکنیک Projectile است که این شبیه سازی بر روی توپ فوتبال انجام می گرد که به واقع گرایانه شدن حرکات توپ از جمله میزان ضربه ی وارده به توپ و مسافتی که توپ بر اساس آن ضربه باید بپیماید و همچنین قل خوردن توپ بر روز زمین و حرکات توپ در هوا و ... بسیار کمک می کند .


    تکنیک های فیزیک و همچنین قوانین حاکم بر هر کدام از این تکنیک ها در دنیا مجازی بسیار بسیار گسترده تر از این تاپیکی است که بنده ی حقیر برای شما عزیزان ایجاد کردم ، بنده سعی کردم تا جایی که در توانم بود به تکنیک های مهم و اساسی در بازی های کامپیوتری و همچنین نحوه ی شبیه سازی هر کدام اشاره کنم .

    هر کم و کاستی که در مطلب مشاهده می کنید به بزرگی خودتان ببخشید


    کپی برداری از مطلب تنها با ذکر منبع بلامانع است .
    منبع : Overclockingheroes.com
    نویسنده : The Joker
    ویرایش توسط The Joker : 31st December 2013 در ساعت 09:16 PM


    Motherboard : ECS A785GM-AD3 Processor : AMD Athlon II X4 635
    Main Memory : 2x2GB Geil+Kingmax Graphics Card : AMD Radeon HD 7770 GHZ Edition
    Cooling : DEEPCOOL Gammaxx 300 Power Supply : Green GP580B

  2. 40 کاربر بابت این ارسال مفید از The Joker تشکر کرده اند:

    .SouSHIanT. (2nd January 2014),Agent 47 (31st December 2013),Aliover (1st January 2014),AMD Radeon (31st December 2013),AMIR_HA (31st December 2013),Artemis (31st December 2013),asdaf (1st January 2014),Blue Rose (31st December 2013),CROSSHAIR (1st January 2014),Don_Corleone (1st January 2014),ErfanDL (31st December 2013),First.Last (31st December 2013),fly (31st December 2013),frankenstein (17th January 2014),Hamidreza (2nd January 2014),KaMi (1st January 2014),kral2008 (1st January 2014),magiteq (31st December 2013),majidrad (28th May 2014),masoudps3 (26th June 2014),Mehdi_FXX (31st December 2013),met (16th May 2014),moc (1st January 2014),morteza.p (1st January 2014),Mr. DB (6th January 2014),Olesius (5th May 2014),Optimus Prime (17th May 2014),overclock990 (1st January 2014),Raiden (1st January 2014),Reza Y (1st January 2014),ROG (1st January 2014),SaeedSYS (22nd September 2014),Saeid.aZm (1st January 2014),sapple (2nd March 2014),SASANOC (6th January 2014),SETIZEN (1st January 2014),smrbh (1st January 2014),TERRORIST (31st December 2013),VFSDF (17th May 2014),XoMa (1st January 2014)



  3. #11
    Retired assistant
    The Joker آواتار ها
    تاریخ عضویت
    Aug 2012
    محل سکونت
    مشهد
    نام واقعی
    محمد جواد
    نوشته ها
    775
    تشکر شده 7,070 بار در 737 پست
    The Joker آنلاین نیست.
    نقل قول نوشته اصلی توسط AMD Radeon نمایش پست ها
    دوستان این نکته رو هم اضافه کنم که فیزیک Havok از پردازنده برای پردازش های فیزیکی استفاده می کنه ولی فیزیک انویدیا از هسته های کودا برای پردازش فیزیک استفاده می کنه.در کل فیزیک انویدیا بسیار چشم نوازتر عمل می کنه دلیلشم نوع کدهای متفاوت و استفاده از هسته های کودا به جای پردازنده اصلی هست.

    Sent from my GT-S6310
    سلام آقا رضای عزیز
    فیزیک Havok تمام بار پردازشیش به عهده CPU نیست و مقداری از بار پردازشیش هم به GPU واگذار میشه .
    در مورد اینکه فیزیک انویدیا یا HAVOK زیبا تر هستن یا نه اصلآ نمیشه نظر قطعی داد ، بازی BF4 که انصافآ فیزیک فوق العاده ایی داشت موتورش HAVOK بود نه انویدیا و همینطور بازی Watch Dogs در آینده و ... همه و همه havok هستن .

    ---------------------------------------------
    دوستان عزیز عنایت داشته باشن که این تاپیک در مورد بحث و تبادل نظر در مورد فیزیک و تکنیک های مختلف در بازی ها هستش نه بحث در مورد موتور های فیزیک
    از این پست به بعد دوستان لطفآ در مورد موتور های فیزیک بحث نکنند

    با تشکر


    Motherboard : ECS A785GM-AD3 Processor : AMD Athlon II X4 635
    Main Memory : 2x2GB Geil+Kingmax Graphics Card : AMD Radeon HD 7770 GHZ Edition
    Cooling : DEEPCOOL Gammaxx 300 Power Supply : Green GP580B

  4. 14 کاربر بابت این ارسال مفید از The Joker تشکر کرده اند:

    Agent 47 (2nd January 2014),Aliover (2nd January 2014),AMD Radeon (2nd January 2014),Armintech (2nd January 2014),Artemis (5th January 2014),KaMi (2nd January 2014),magiteq (2nd January 2014),Mehdi_FXX (2nd January 2014),met (16th May 2014),moc (5th January 2014),sapple (2nd March 2014),SETIZEN (2nd January 2014),smrbh (2nd January 2014),XoMa (2nd January 2014)



  5. #12
    Retired Moderator
    Mehdi_FXX آواتار ها
    تاریخ عضویت
    Aug 2012
    محل سکونت
    Tehran
    نام واقعی
    Mehdi
    سن
    33
    نوشته ها
    795
    تشکر شده 6,928 بار در 599 پست
    Mehdi_FXX آنلاین نیست.
    بسیار عالی بود محد جواد جان

    The Joker and met like this.


    Motherboard : ASUS ROG RAMPAGE III EXTREME Processor : Intel® Xeon L5639 @ 3.6GHz 1.19v
    Main Memory : G.skill TidentX 2x4GB 2666 @ 2000 CL9 Graphics Card : XFX Geforce 6200
    Cooling : Thermalright Archon Power Supply : Green GP680B

  6. 12 کاربر بابت این ارسال مفید از Mehdi_FXX تشکر کرده اند:

    Agent 47 (2nd January 2014),Aliover (2nd January 2014),AMD Radeon (2nd January 2014),Artemis (5th January 2014),KaMi (2nd January 2014),magiteq (2nd January 2014),met (16th May 2014),sapple (2nd March 2014),SETIZEN (2nd January 2014),smrbh (2nd January 2014),The Joker (2nd January 2014),XoMa (2nd January 2014)



  7. #13
    met
    OCH Member
    met آواتار ها
    تاریخ عضویت
    Jan 2013
    نوشته ها
    13
    تشکر شده 100 بار در 13 پست
    met آنلاین نیست.
    خیلی عالی بود محمد آقا
    تداخل در بافت ها و تکسچرها هم جزوی از همین فیزک بحساب میان درسته ؟ منظورم اینه اگر تداخلی وجود داشته باشه در واقع مشکل چیز دیگریه ( مثل فیزیک موتور ها ) یا در مورد همین مبحث گنجانده میشه ؟


    Motherboard : MSI Z87 MPOWER Processor : corei5 4670K
    Main Memory : Gskil 8 gig (2*4) 2400 Mhz Graphics Card : Asus gtx650 ti top overclock edition
    Cooling : Deep cool ICE BLADE PRO Power Supply : 600w HP Green

  8. 3 کاربر بابت این ارسال مفید از met تشکر کرده اند:

    Aliover (17th May 2014),Mehdi_FXX (17th May 2014),The Joker (17th May 2014)



  9. #14
    Retired assistant
    The Joker آواتار ها
    تاریخ عضویت
    Aug 2012
    محل سکونت
    مشهد
    نام واقعی
    محمد جواد
    نوشته ها
    775
    تشکر شده 7,070 بار در 737 پست
    The Joker آنلاین نیست.
    نقل قول نوشته اصلی توسط met نمایش پست ها
    خیلی عالی بود محمد آقا
    تداخل در بافت ها و تکسچرها هم جزوی از همین فیزک بحساب میان درسته ؟ منظورم اینه اگر تداخلی وجود داشته باشه در واقع مشکل چیز دیگریه ( مثل فیزیک موتور ها ) یا در مورد همین مبحث گنجانده میشه ؟
    سلام عزیز دل

    تداخل در بافت ها و تکسچر ها مشکلشون موتور گرافیکی بازی هست نه موتور فیزیکی
    موتور فیزیکی فقط یک موتوری هستش که شبیه سازی فیزیکی رو انجام میده ، حالا می خواد این شبیه سازی به عنوان مثال روی یک توپ بدون هیچ گونه متریال و تکسچری انجام بشه و یا یک توپی باشه که رزولیشن تکسچرهاش 8K باشه .
    met and asdaf like this.


    Motherboard : ECS A785GM-AD3 Processor : AMD Athlon II X4 635
    Main Memory : 2x2GB Geil+Kingmax Graphics Card : AMD Radeon HD 7770 GHZ Edition
    Cooling : DEEPCOOL Gammaxx 300 Power Supply : Green GP580B

  10. 7 کاربر بابت این ارسال مفید از The Joker تشکر کرده اند:

    Aliover (17th May 2014),asdaf (17th May 2014),magiteq (17th May 2014),Mehdi_FXX (17th May 2014),met (17th May 2014),Optimus Prime (17th May 2014),TERRORIST (17th May 2014)



  11. #15
    met
    OCH Member
    met آواتار ها
    تاریخ عضویت
    Jan 2013
    نوشته ها
    13
    تشکر شده 100 بار در 13 پست
    met آنلاین نیست.
    ممنون از پاسخت
    واقعن بحث جالبیه فکر کنم مطالعه ام تو این زمینه ها خیلی کم بوده و در حد 0 بوده
    asdaf likes this.


    Motherboard : MSI Z87 MPOWER Processor : corei5 4670K
    Main Memory : Gskil 8 gig (2*4) 2400 Mhz Graphics Card : Asus gtx650 ti top overclock edition
    Cooling : Deep cool ICE BLADE PRO Power Supply : 600w HP Green

  12. 4 کاربر بابت این ارسال مفید از met تشکر کرده اند:

    Aliover (17th May 2014),asdaf (17th May 2014),Mehdi_FXX (17th May 2014),The Joker (17th May 2014)



صفحه 2 از 2 نخستنخست 12

موضوعات مشابه

  1. نمایشگاه کامپیوتر ارومیه و گردهمایی اعضا
    توسط Olesius در انجمن گردهمايى اعضا (Members gathering)
    پاسخ: 1
    آخرين نوشته: 31st October 2013, 11:27 PM
  2. رونمایی از مادربردهای z87 گیگابایت در هتل همای تهران
    توسط Behnam_2337 در انجمن اخبار و اطلاعیه های سایت
    پاسخ: 2
    آخرين نوشته: 4th July 2013, 10:43 AM
  3. گردهمایی شرکت اسوس در تهران
    توسط Mr. DB در انجمن اخبار و اطلاعیه های سایت
    پاسخ: 51
    آخرين نوشته: 15th November 2012, 09:20 AM
  4. به زودی کامپیوترهایی با سیستم عامل اندرویدی بسیار ارزان به بازار
    توسط fly در انجمن اخبار فناوری اطلاعات (IT news)
    پاسخ: 0
    آخرين نوشته: 12th October 2012, 06:23 PM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •