View Full Version : آموزش: مقدمه ای بر Three.js و موتور فیزیک Ammo.js
mahdi7s
چهارشنبه 22 شهریور 1391, 18:50 عصر
با سلام
آموزش ۳ قسمتی زیر مقدمات استفاده از موتور سه بعدی Three.js را با ساخت یک صحنه سه بعدی ساده تشریح می کند.
از طرفی قسمت آخر این آموزش مقدمات موتور فیزیک Ammo.js را شرح می دهد. موتور فیزیک Ammo.js تبدیل شده موتور فیزیک Bullet به زبان جاوا اسکریپت می باشد بنابراین اگر دنبال مطلب آموزشی مقدماتی برای یادگیری Bullet نیز هستید این مطلب می تواند مفید باشد.
لینک مطالب: [ قسمت اول (http://www.mahdi7s.com/Post/Details?postId=2) | قسمت دوم (http://www.mahdi7s.com/Post/Details?postId=3) | قسمت سوم (http://www.mahdi7s.com/Post/Details?postId=4) ]
لینک های مرتبط: [ Three.js (https://github.com/mrdoob/three.js/) | Three.js Samples (http://mrdoob.github.com/three.js/) | Bullet Physics (http://bulletphysics.org/) | Ammo.js (https://github.com/kripken/ammo.js/) ]
سوالی- ایرادی ... بود می توانید همینجا یا در قسمت نظرات سایت بپرسید
موفق باشید:چشمک:
amin1softco
چهارشنبه 22 شهریور 1391, 20:48 عصر
در قسمت جاوا اسکریپت قبلاً این رو مگذاشته بودی ؟
قسمت سوم را لینکش رو تصحیح کن : http://www.mahdi7s.com/Post/Details?postId=4
خوبه .
الان اگر ما بخواهیم یک کره ایجاد کنیم و 5 تا کره داخل اون کره که به دیواره ها بر خورد کنند و به داخل باز گردند باید چیکار کنیم ؟
mahdi7s
پنج شنبه 23 شهریور 1391, 17:29 عصر
سلام
در قسمت جاوا اسکریپت قبلاً این رو مگذاشته بودی ؟
چرا- اما فکر کردم اینجا مکان مناسب تری باشه هرچند زبانش جاوا اسکریپت هست!
قسمت سوم را لینکش رو تصحیح...
ممنون - تصحیح شد
الان اگر ما بخواهیم یک کره ایجاد کنیم و 5 تا کره داخل اون کره که به دیواره ها بر خورد کنند و به داخل باز گردند باید چیکار کنیم ؟
نمی دونم دقیقا متوجه منظورتان شدم یا نه- چیزی که من برداشت کردم:
کره ای بزرگ و ثابت دارید که چندین کره کوچک داخل آن قرار دارند و می خواهید حرکت این کره های کوچک را با فیزیک شبیه سازی کنید؟
در این حالت ذهنیت کره را کنار بگذارید و به آن به عنوان زمین نگاه کنید! در اصل در این حالت داخل کره خارج شکل مقعر ما می باشد نه داخل کره!
شما می توانید تمام کره ها را در Three.js تعریف کنید و بعد برای موتور فیزیک کره بزرگی را به عنوان یک concave و بقیه کره ها را به عنوان sphere معرفی کنید!
موضوع دیگری که اینجا وجود دارد وقتی کره ای در Three.js تعریف می کنید راس و وجه های زیادی برای آن در نظر می گیرد در نتیجه اگر بخواهید از کدهایی این آموزش استفاده کنید شبیه سازی کندی خواهید داشت بنابراین باید تا آنجا که می توانید راس ها و وجه های کره بزرگ را کم کنید(مثلا می توانید تعداد قسمت های طولی و عرضی ( (THREE.SphereGemetry(radius, segmentsX, segmentY دو پارامتر آخر) کره را کم و زیاد کنید یا با استفاده از THREE.IcosahedronGeometery یک بیستوجهی ایجاد کنید) یا اینکه خودتان کره را به قسمت های کوچکتر و کمتر محدب بشکنید و CompoundShape مربوط به کره بزرگی را خودتان ایجاد کنید.
موفق باشید.
amin1softco
پنج شنبه 23 شهریور 1391, 20:09 عصر
خوب اینجوری که مرورگر هنگ می زنه !!!!
حالا یکجور دیگه میگم 5 تا توپ داریم داخل یک استوانه و این استوانه رو تکان می دهیم می خواهیم برخورد این توپ ها با هم شبیه سازی بشه.
حالا داخل کره هم برخورد توپ ها با یکدیگرم باید شبیه ساز بشه دیگه درسته ؟
راستش اگر یک کدی چیزی بزاری خیلی بیشتر می تونه کمک کنه بازم ممنون.
mahdi7s
دوشنبه 27 شهریور 1391, 19:17 عصر
با سلام
ببخشید بابت تاخیر
-
خوب اینجوری که مرورگر هنگ می زنه !!!!
نه آنقدرها هم مرورگر ضعیف نیست- می توانید به پروژه ها و بازی هایی که دیگران با آن ساخته نگاهی بیندازید-مثلا یکیش که یادمه یک ماشین سواری خیلی جالب بود که فیزیک هم داشت!
اما باید به یه سری چیزها بیشتر توجه کنید مثل چند نکته ای که قبلا گفتم و برای اینکه شبیه سازی فیزیک بر روی سرعت رندر تاثیر نگذارد می توانید کدهای مربوط به آن را با استفاده از Web Workers (http://www.w3schools.com/html/html5_webworkers.asp) اجرا کنید که مثل این می ماند که دو cpu داشته باشید که یکی محاسبات شبیه سازی فیزیک را انجام می دهد و دیگری مرتبط با رندر کردن بازی که هیچ کدام کار دیگری را مختل نمی کند!
حالا یکجور دیگه میگم 5 تا توپ داریم داخل یک استوانه و این استوانه رو تکان می دهیم می خواهیم برخورد این توپ ها با هم شبیه سازی بشه.
حالا داخل کره هم برخورد توپ ها با یکدیگرم باید شبیه ساز بشه دیگه درسته ؟
در کل فرقی زیادی نمی کند - اگر حرکت کره بزرگی را خودتان یا کاربر بازی تعیین می کند کره شما باید به عنوان یک جسم kinematic به شبیه ساز فیزیک معرفی شود و در غیر اینصورت یک جسم dynamic .
راستش اگر یک کدی چیزی بزاری خیلی بیشتر می تونه کمک کنه بازم ممنون.
متاسفانه وقت زیادی برای این کار ندارم - شما اگر آن سه قسمت را بخوانید می توانید خودتان یه کارهایی را انجام دهید و در صورتی که در جایی یا کدی مشکلی داشتید می توانید بپرسید انشاا... می بنیم و ...
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.