خوش آمدید, مهمان.
 » اشتراک گذاری » پروژه ها , تحقیقات و نرم افزارها » نرم افزار هایی که نوشته ایم » پروژه ی برنامه نویسی سه بعدی به کمک OpenGL برای آقای بازقندی !
صفحه: [1]   پایین
  چاپ صفحه  
نويسنده موضوع: پروژه ی برنامه نویسی سه بعدی به کمک OpenGL برای آقای بازقندی !  (دفعات بازدید: 2040 بار)
0 کاربر و 1 مهمان درحال دیدن موضوع.
Nemesis
مدیر سایت
Spammer ! مواظب باشین !
*****
تشکر شده : 74
آفلاین آفلاین
تعداد ارسال: 492
محمد مهدی حاجی اسمعیلی Mohamamd M. Haji Esmaeili

ديدن مشخصات WWW
« : 27 مرداد 1387,ساعت 01:07:58 »

سلام !

بالاخره وقت شد تا بتونم پروژه ی مربوط به برنامه نویسی سه بعدیم رو که با Visual C++ .Net نوشته شده رو به معرض نمایش بگذارم...

تمام توضیحاتی رو که لازم دارین در فایل پیوست (یه فایل PDF بهمراه سورس برنامه) هستش ولی فقط بعنوان یک سری توضیحات ساده باید بگم که این برنامه به کمک API معروف یعنی OpenGL نوشته شده...

برنامه های سه بعدی مختلفی که میشناسین (و شاید هم نمیشناسین) مثل Maya , 3D Studio Max , Auto CAD , Lightwave و غیره و غیره همگی به کمک کتابخانه ی OpenGL که مخفف همون Open Graphics Library هستش نوشته شدن...

وقتی که دارین فیلم "پارک ژوراسیک" یا سری "ارباب حلقه ها" رو میبینین و کف کردین و به هر کسی که میرسین میگین "اینا انیمیشن کامپیوتری هستن !" یا "اینا رو با Maya درست کردن !" در واقع دارین کتابخانه ی گرافیکی منبع باز رو تقدیر میکنین !!!

در کل دو API شاخ هستش که یکیش همون Open GL هستش که بصورت منبع باز هستش و در طول زمان شرکتهای مختلفی روش کار کردن و انواع تکنولوژیها رو توش تزریق کردن و این API فقط برای کارهای گرافیکی استفاده میشه...

در طرف دیگه API معروف شرکت Microsoft هستش که باهاش آشنایی دارین و اسمش DirectX هستش که یک API چند منظوره برای ساختن بازیها محسوب میشه و از زیر مجموعه هایی همچون Direct Draw و یا Direct Sound تشکیل شده است...

من شخصا از DirectX استفاده نکردم که یک سری دلایل خاص داشت که یکیشون این بود که این نرم افزار انحصار طلبی مایکروسافت رو پشتش داره و راه مرشد و استادم یعنی جان کارمک رو در پیش گرفتم و از OpenGL برای ساختن بازی-انیمیشن-برنامه م استفاده کردم...لازم به ذکره که جان کارمک (پدر برنامه نویسی پیشرفته ی دنیا و شاخترین برنامه نویس گرافیکی دنیا که قسم خورده تا گرافیک بازیها رو به سطح فیلم ارباب حلقه ها نرسونه بیخیال نشه (!) و همین الانشم با بازی Rage ش که هنوز عرضه نشده به گرافیک غیر قابل باوری دست پیدا کرده !) تمامی بازیهاش رو به کمک همین API نوشته و جایی که دیگه این API ها محدودیت داشتن با نیروی فکریش تونسته الگوریتمهایی رو ابداع کنه که مغز رو به سوت کشیدن وامیداره !!!

بهرحال ! میگذریم ! این هم برنامه ی نهایی من هستش که بعنوان پروژه ی C++ به استاد بازقندی داده شده..عکسهاش که در زیر هستش و فایل ضمیمه هم شامل سورس برنامه بصورت PDF هستش که توضیحاتی رو که لازم دارین رو بهمراه داره...

موفق باشین...


این قبل از شروع به اجرای برنامه هستش که ازتون میپرسه که میخواین برنامه رو Full Screen اجرا کنین یا نه...اگه کارت گرافیکتون میکشه مهم نیست ولی اگه نمیکشه بهتره که فول اسکرینش نکنین (که به احتمال صد در صد کارتتون میکشه !)

این عکس از نماد گیری جعبه هستش که به کمک خودتون قابل انجامه...

با دمکه های جهت دار جسم شروع به چرخیدن میکنه...با Page Up و Page Down جسم شروع به دور شدن و نزدیک شدن به دوربین میکنه...با دکمه ی L میتونین سیستم نورپردازی رو روشن یا خاموش کنین...با دکمه ی F هم یه کار شاخ میتونین بکنین که تا وقتی در بازی بهینه سازی نشه درکش سخته و در ادامه بهش اشاره میکنم !

الان جسم رو یه کم دورتر کردم تا درکش راحتتر باشه !

اینهم نماد اصلی جسم...

میرسیم به دکمه ی F...دکمه ی F در برنامه به شما اجازه میده که نوع Mapping تون رو از حالت Linear به Mip Map و یا حتی مستقیم تغییر بدین و این تغییرات باعث بوجود آمدن یک تغییر بزرگ در سیستم بافت گذاری برنامه میشه (Texturing) که به برنامه اجازه میده که با توجه به توانی که کامپیوتر داره , بتونه بصورت بهینه از پردازش کامپیوتر استفاده کنه...
این موضوع یکی از پیچیده ترین موضوعات بافت گذاری در بازیها و انیمیشن ها هستش که برنامه ی من فقط یکی از ساده ترین هاش رو میتونه پشتیبانی کنه...

اینجا دکمه ی F برای باری دیگر زده شده و سیستم Mapping برنامه رو تغییر داده...با عکس بالا مقایسه ش کنین تا متوجه این تغییر بشین...این تغییرات با اینکه ممکنه ساده به نظر برسن ولی نقش عظیم و حیاتی ایی رو در ثابت نگه داشتن FPS در یک انیمیشن و یک بازی دارن...

خب ! توضیحات به پایان رسید ! میدونم که کسی سوالی ازش نمیپرسه ولی مثل همیشه برای هزارمین بار اشاره میکنم که اگر کسی *هر* سوالی در مورد این داشت خجالت کوفتی و یا هر چیز دیگه ایی رو کنار بگذاره و در موردش بپرسه ! من اینجام تا بتونم در حد توانم به بقیه کمک کنم...

متشکرم و تولد منجی رو به همگی شما تبریک میگم...


محمد مهدی حاجی اسمعیلی
خارج شده است

komeil
مدیر سایت
Spammer ! مواظب باشین !
*****
تشکر شده : 55
آفلاین آفلاین
تعداد ارسال: 403

ديدن مشخصات WWW
« پاسخ #1 : 28 مرداد 1387,ساعت 13:39:06 »

اینو با چه کامپایلری اجرا کنم بهتره ؟
خارج شده است


Nemesis
مدیر سایت
Spammer ! مواظب باشین !
*****
تشکر شده : 74
آفلاین آفلاین
تعداد ارسال: 492
محمد مهدی حاجی اسمعیلی Mohamamd M. Haji Esmaeili

ديدن مشخصات WWW
« پاسخ #2 : 28 مرداد 1387,ساعت 21:56:54 »

این برنامه با Visual C++ .Net به بهترین شکل ممکن اجرا میشه ولی نمیتونی اجراش کنی !

وقتی که VC++ .Net رو نصب کردی باید در قسمت تنظیمات Compiler و تنظیمات کلاس و تنظیمات کتابخانه DLL و تنظیمات خود کتابخانه ی OpenGL تغییرات انجام بدی...

در ضمن بغیر از موارد بالا باید بری و آخرین کتابخانه ی OpenGL رو بگیری و در پوشه ایی با نام GL در قسمت Include های خود VC++ قرار بدی تا کامپایلر بتونه از این کتابخانه حمایت کامل انجام بده و وسط کار یه دفعه RunTime Error نکونه توی حلقت !

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

متشکرم...محمد مهدی حاجی اسمعیلی
خارج شده است

komeil
مدیر سایت
Spammer ! مواظب باشین !
*****
تشکر شده : 55
آفلاین آفلاین
تعداد ارسال: 403

ديدن مشخصات WWW
« پاسخ #3 : 28 مرداد 1387,ساعت 23:23:14 »

پس بیچاره بازقندی و وزیری! چه زجری کشیدن که اینا رو اجرا کنن ! پس حداقل اگه میشه فایل اجرایی رو بذار . ( اگه حجمش کمه و پهنای باند کافی داری ) در ضمن از این مپینگ هم چیزی سر در نیاوردم . کلا براش یه بحث تخصصی بذار .
خارج شده است


Nemesis
مدیر سایت
Spammer ! مواظب باشین !
*****
تشکر شده : 74
آفلاین آفلاین
تعداد ارسال: 492
محمد مهدی حاجی اسمعیلی Mohamamd M. Haji Esmaeili

ديدن مشخصات WWW
« پاسخ #4 : 28 مرداد 1387,ساعت 23:31:37 »

در مورد مپینگ بحث خواهم داشت ولی نه در آینده ی نزدیک...هنوز خیلی چیزها هستش که در مورد Game Development باید توضیح بدم و وقتی که وقتش برسه به Mapping ها هم میپردازیم...

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

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

وقتی دم دست بودی بهت میدمش !

متشکرم...Nemesis
خارج شده است

صفحه: [1]   بالا
  چاپ صفحه  
 
پرش به :