Contacts
صفحه اصلی پورتال | صفحه اصلی تالار | ثبت نام | اعضاء | گروه ها | جستجو | پرسش و پاسخ | فروشگاه الکترونیکی | خرید پستی بازی های کامپیوتری





صفحه اول انجمنها -> برنامه نويسي تخصصي DirectX و اصول برنامه نويسي تحت ويندوز -> نحوه ساخت Particle System
 

ارسال يك موضوع جديد   پاسخ به يك موضوع ديدن موضوع قبلي :: ديدن موضوع بعدي

نحوه ساخت Particle System
نويسنده
پيغام
Kochol
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 298


شنبه 21 آبان 1384 - 09:18
پاسخ بصورت نقل قول
سلام
برای ساخت یه سیستم ذره ای باید چی کار کنیم
من از توی کتاب Focus on 2d in direct3d یه چیزهایی خوندم در اونجا گفته بود که باید سه تا لیست داشته باشی
1. Dead
2. Alive
3. Dying
وقتی برنامه اجرا شد ابتدا به لیست 1 هر چندتا که ذره می خواهی اظافه کن مثلا 1000 تا بعد وقتی می خواهی نمایش بدی از لیست 1 کپی کن تو لیست 2 و بعد از نمایش در چند فریم از لیست 2 پاک کن ببر تو لیست 3 و بعد هم که لیست 2 خالی شد تمام لیست 3 را کپی کن تو لیست 1 و همین چرخه را ادامه بده تا ...

خوب برای خود ذره ها هم یه ساختار زیر را تعریف کرده بود و گفته بود این حداقل چیزهایی هست که یک ذره می توند داشته باشد.
1. Position محل قرار گیری
2. Velocity سرعت
3. Accelertion شتاب ذره
4. Drag اصطکاک هوا که بین 0 و 1 هست
5. Color رنگ ذره
6. TimeLeft تعداد دفعاتی که باید این ذره نمایش داده بشه یعنی بعد از چند فریم پاک بشه

این هم فرمولی که داده
كد:

//P, V, A, and D are Position, Velocity, Acceleration, and Drag
V *= D ; // New Velocity = Old Velocity times Drag
V += A ; // New Velocity = Old Velocity plus Acceleration
P += V ; //New Position = Old Position plus Velocity

برای نمایش آنها هم که از نقطه استفاده کرده حالا شما ها هر نظری بهتری دارید بدهید تا من این قسمت از موتورم را هم بسازم. اگه این قسمت از برنامه هم را بسازم دیگه موتور من تمام کارهایی که در کتاب Focus on 2d in direct3d را انجام می ده

_________________
Kochol Game Engine

[img]http://barnamenevis.org/forum/image.php?type=sigpic&userid=6875&dateline=1258101798[/img]
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
GameOver
بازی ساز
بازی ساز


تاريخ عضويت: 2 شنبه 11 مهر 1384
تعداد ارسالها: 131


شنبه 21 آبان 1384 - 16:58
پاسخ بصورت نقل قول
فكر ميكنم كه براي Velocity و Accelertion و Drag احتياج به فيزيك داشته باشه.
پارتيكلت براي سيستم دوبعدي هست؟
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

نويسنده
پيغام
Kochol
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 298


1 شنبه 22 آبان 1384 - 08:23
پاسخ بصورت نقل قول
سلام
من فكر كردم كه تو موتورم يه كلاس Particles باشه با سازه هاي كوچكي كه درون اين كلاس انجام مي دم بشه هر نوع پارتيكل سيستمي كه ما از قبل براش تعريف مي كنيم را آماده داشته باشه مثل باران و برف و انفجار خلاصه هر چي كه از قبل تعريف مي شه در اين سيستم بعد يه برنامه Particle Editor بسازيم كه پارتيكل ها سفارشي را درست كند و در يه فايل ذخيره كند بعد بتوان توسط انجين لود كرد و نمايش داد.

حالا اول باران:
1. من دو تا متغيير گذاشتم كه با آن بشه محدوده شروع باران را انتخاب كرد بعد خودش نقاط وليه را انتخاب مي كنه تا اينجا كه مشكلي نيست البته من مي خوام تو محيط سه بعدي باشه كه هست.
2. ديگه نمي دونم چي كار كنم. البته يه كارهايي كردم ولي سرعت افتضاح و اصلا يه چيزهايي مي شد غير منتظره.

اگر دوستان مي تونند كمك كنند.

_________________
Kochol Game Engine

[img]http://barnamenevis.org/forum/image.php?type=sigpic&userid=6875&dateline=1258101798[/img]
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
اسحاق
مدیر انجمن
مدیر انجمن


تاريخ عضويت: 1 شنبه 8 شهريور 1383
تعداد ارسالها: 561
محل سكونت: تهران


1 شنبه 22 آبان 1384 - 13:07
پاسخ بصورت نقل قول
نقل قول:

من فكر كردم كه تو موتورم يه كلاس Particles باشه با سازه هاي كوچكي كه درون اين كلاس انجام مي دم بشه هر نوع پارتيكل سيستمي كه ما از قبل براش تعريف مي كنيم را آماده داشته باشه مثل باران و برف و انفجار خلاصه هر چي كه از قبل تعريف مي شه در اين سيستم بعد يه برنامه Particle Editor بسازيم كه پارتيكل ها سفارشي را درست كند و در يه فايل ذخيره كند بعد بتوان توسط انجين لود كرد و نمايش داد.


من كه تا حالا همچين چيزي در موتور هاي ديگه نديدم... البته شايد باشه خود شما جايي اين قضيه رو ديديد؟
ولي به نظر من اين كار رو نكنيد هم دست و پاي كاربر رو بعضي جاها مي بنديد. هم اين كه يه چيزايي رو بايد به عهده كاربر گذاشت. نه

_________________
!؟!

اسماعيل رادپور
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
Kochol
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 298


4 شنبه 2 آذر 1384 - 12:25
پاسخ بصورت نقل قول
سلام
نقل قول:

من كه تا حالا همچين چيزي در موتور هاي ديگه نديدم... البته شايد باشه خود شما جايي اين قضيه رو ديديد؟

نه من هم جاي ديگه نديدم ولي اين باعث نمي شه كه ما استفاده نكنيم.
نقل قول:

ولي به نظر من اين كار رو نكنيد هم دست و پاي كاربر رو بعضي جاها مي بنديد. هم اين كه يه چيزايي رو بايد به عهده كاربر گذاشت. نه

من نمي دونم كه منظورشما از اينكه گفتيد كه جلوي دست و پاي كاربر را مي گيرد چيست
ما كه اين قسمت را ساختيم و كار هم كرد حالا كد استفادشو برات مي نويسم
من البته خودم را راحت كردم و با استفاده از اين كار هر وقت بخواهم باران بسازم 3 سوت است
dim rain as new kgeparticles.rain(new kgevector3(0,0,0), new kgevector3(10,10,10)
اين كد باعث مي شه كه محدوده شروع قطرات باران را مشخص مي كند
rain.qty=4000
تعداد قطرات كه روي كامپيوتر من كه p3 500Mhz هست تا اين تعداد را روان نشان مي دهد
rain.velocity(new kgevector3(.01,.
1,0)
اين هم سرعت
حالا فقط مي مونه كه بگيم چند فريم مي خواهيم عمر قطره ها باشه و دستور لود قطرات كه باعث ساخت قطرات و ذخيره ان در رم مي شه
rain.lifetime=400
rain.load
حالا فقط كافيه كه در روال رندر بنويسيم
rain.draw
بقيه كارها توسط موتور انجام مي شود
نظرات يادتون نره
الان دارم روي يك ليست براش كار مي كنم كه اگه بسازمش خيلي سرعت باران بالاتر مي ره
نظرات يادتون نداره Smile

_________________
Kochol Game Engine

[img]http://barnamenevis.org/forum/image.php?type=sigpic&userid=6875&dateline=1258101798[/img]
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نويسنده
پيغام
سيلوستر
مدیر انجمن
مدیر انجمن


تاريخ عضويت: 5 شنبه 27 مرداد 1384
تعداد ارسالها: 499
محل سكونت: مشهد - One of back street boys


5 شنبه 3 آذر 1384 - 07:36
پاسخ بصورت نقل قول
نميتونستي همه يا بعذي از اين دستورا رو تو يك خط قرار بدي و بعذي از پارامتر ها رو هم بصورت اختياري بذاري؟ اينجوري فكر كنم راحت تر باشه.

_________________
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
اسحاق
مدیر انجمن
مدیر انجمن


تاريخ عضويت: 1 شنبه 8 شهريور 1383
تعداد ارسالها: 561
محل سكونت: تهران


5 شنبه 3 آذر 1384 - 18:39
پاسخ بصورت نقل قول
اميدوارم موق باشيد...

_________________
!؟!

اسماعيل رادپور
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل
 

نويسنده
پيغام
GameOver
بازی ساز
بازی ساز


تاريخ عضويت: 2 شنبه 11 مهر 1384
تعداد ارسالها: 131


شنبه 5 آذر 1384 - 20:19
پاسخ بصورت نقل قول
اقا كوچول يك P/m گذاشتم حتما چك كن . ثواب داره Wink
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي شماره ICQ
 

نويسنده
پيغام
Kochol
متخصص ساخت بازی
متخصص ساخت بازی


تاريخ عضويت: شنبه 1 مرداد 1384
تعداد ارسالها: 298


1 شنبه 6 آذر 1384 - 21:12
پاسخ بصورت نقل قول
سلام
من هر چي اينترنت را سرچ كردم نتومستم يه مقاله اي براي ساخت پارتيكل سيستم كامل پيدا كنم مثل اتش و انفجار و برف مثلا
شما ها هم اگه مي تونيد يه سرچ بكنيد خبرش رو بگيد خلاصه هر منبعي يا هر اطلاعاتي داريد بفرماييد.

_________________
Kochol Game Engine

[img]http://barnamenevis.org/forum/image.php?type=sigpic&userid=6875&dateline=1258101798[/img]
ارسال  بازگشت به بالا
ديدن مشخصات كاربر ارسال پيغام خصوصي ارسال ايميل نام كاربري در پيغامگير Yahoo
 

نمايش نامه هاي ارسال شده قبلي:   
ارسال يك موضوع جديد   پاسخ به يك موضوع    صفحه 1 از 1 تمام ساعات و تاريخها بر حسب 3.5+ ساعت گرينويچ مي باشد


 
پرش به:  


شما نمي توانيد در اين انجمن نامه ارسال كنيد.
شما نمي توانيد به موضوعات اين انجمن پاسخ دهيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن ويرايش كنيد
شما نمي توانيد نامه هاي ارسالي خود را در اين انجمن حذف كنيد
شما نمي توانيد در نظر سنجي هاي اين انجمن شركت كنيد


unity3d

بازگردانی به فارسی : علی کسایی @ توسعه مجازی کادوس 2004-2011
Powered by phpBB © 2001, 2011 phpBB Group
| Home | عضويت | ليست اعضا | گروه هاي كاربران | جستجو | راهنماي اين انجمن | Log In |