ورود

View Full Version : سوال: چگونگی ساخت پارتیکل 2 بعدی برای انجین (opengl)



orache
پنج شنبه 21 دی 1391, 00:26 صبح
سلام امروز با یه مشکلی مواجه شدم اونم پارتیکل سیستم هست میخام در یک صفحه ی دو بعدی یه پارتیکل سیستم بسازم ولی من وقتی میسازم با کندی بیش از حد مواجه میشم به طوری که اگر پس از 1 دقیقه بیرون نیارم ازش کامپیوتر دیگه قفل میکنه
. __ کارایی که انجام میدم همینه
.
دو تا نقطه میدم و بینش 5 تا فاصله میذارم و یه مربع میذارم که از این 5 نقطه رندوم ساخته شه و به سمت بالا و یه خورده منحنی حرکت کنه البته ضریب منحنیش هم رندومه از بین 30 تا 90 درجه ولی همون اول که داره ساخته میشه چنان کند میشه انگار که 500000000 تا مربع ساخته شده
.
به نظر شما چیکار باید بکنم ایا راه دیگری برای ساخت پارتیکل سیستم وجود داره کمک کنید :ناراحت:

pswin.pooya
پنج شنبه 21 دی 1391, 09:21 صبح
سلام
اگر براي يك مربع به شمكل بر ميخوزه كه مشل از كدينگ شما هست. ببينيد كه كجا مشكل داره.

يه موردي هم كه اخيرا باهاش مواجه شدم: سريز انواع داده هست. زماني كه سريز رخ ميده به شدت كد كند ميشه (البته نه توي اين حدي كه شما ميگي). سريز ممكن از مقدار دهي نشدن اوليه و يا اندازه اشتباه به وجود بياد.

اما در مورد سيستم ذره اي:
معمولا براي سيستم هاي ذره اي يك بافر سخت افزاري ( توي OpenGL اين بافرها VBO و VAO ) هستن ميسازن و بافرها رو چند قسمت ميكنن و توي هر فريم يه قسمت رو به روز ميكنن. در صورتي كه از ويرايش هاي كمتر از OpenGL 2.0 استفاده ميكنن مي تونيد بجاي بافرهاي سخت افزاري از يه آرايه براي نگهداري مختصات استفاده كنيد و اون آرايه رو با كمك دستور glDraw* ارسال و رسمش كنيد.

orache
پنج شنبه 21 دی 1391, 10:47 صبح
نه نه ببینین من نمیخام یک شکل باشه من میخام کاربر بتونه تمامی چیزاشو دستی تنظیم کنه درست مثل موتور بازی سازی کانستراکت از جمله سرعتشو مکانشو زاویه حرکت اندازه شکل رنگ و... ولی با این بافر ها فکر نکنم بشه درست کرد به نظر تو میشه ؟؟

pswin.pooya
پنج شنبه 21 دی 1391, 13:53 عصر
خب اين موارد رو توي تابع update سيستم ذره ايت مشخص ميكني

kochol
دوشنبه 09 بهمن 1391, 22:12 عصر
سلام
من فکر کنم این کندی احتمالا به خاطر پر شدن رم باشه

مثلا شما تو هر فریم یه ارایه می سازی ولی از حافظه پاکش نمی کنی.

orache
سه شنبه 10 بهمن 1391, 07:17 صبح
داداش آرایه پارایه که خیلی ساختم ولی فکر نکنم رمم خالی شده باشه( البته الان 2 بعدی کار نمیکنم ) یه فریم ورک از 128 هزار خط کد درست شده بعدا فکر کنم رم اون 1 ترابوده :متعجب:
راستی خیلی وقت بود نبودی جواب پ خ مارو هم ندادی :قهقهه:

pswin.pooya
سه شنبه 10 بهمن 1391, 10:53 صبح
بعدا فکر کنم رم اون 1 ترابوده

متاسفانه با توجه به 48 بیت بودن باس آدرس هنوز سیستمی نداریم که بتونه اینقدر رم داشته باشه. ( یا حداقل تو بازار )

orache
سه شنبه 10 بهمن 1391, 12:20 عصر
دادا شوخی میکنم دیگه چرا جدی میگیری هارد هم 1 ترا زیاده چه برسه به رم رم حداکثر من تا 12 دیدم که 3 تا میزنن میشه 36 :گیج: