تبليغاتX
OpenGL & Computer graphics

OpenGL & Computer graphics

وبلاگ آموزش گرافیک کامپیوتری و OpenGL و سایر موضوعات وابسته

چشات از جنس مرغوبه

تو نیلی چشات خیسه
آدم میترسه بنویسه

میترسه پاش به دل وا شه
آدم بی خود خاطرخوا شه


دو تا چشم رطب داری
از عشق همیشه تب داری

چشات از جنس مرغوبه
چقدر حال چشات خوبه

چشات از جنس مرغوبه
چقدر حال چشات خوووووووبه

تو چشمات توت تر داری
خودت حتما" خبر داری

تو چشمات توت تر داری
خودت حتما" خبر داری

چشات گفتن که بشکن
من شکستم
شک نکردم

هزار بار مردم
و میمیرم
و باز ترک نکردم

چشات گفتن که بشکن
من شکستم
شک نکردم

هزار بار مردم
و میمیرم
و باز ترک نکردم

چشات از جنس مرغوبه
چقدر حال چشات خوبه

چشات از جنس مرغوبه
چقدر حال چشات خوووووووبه

چشات رنگش لعاب داره
رو موجاش التهاب داره

چشات رنگش لعاب داره
رو موجاش التهاب داره

ولی بی دین لا مذهب
زیارتش ثواب داره

ولی بی دین لا مذهب
زیارتش ثواب داره

چشات از جنس مرغوبه
چقدر حال چشات خوبه

چشات از جنس مرغوبه
چقدر حال چشات خوووووووبه




تو نیلی چشات خیسه
آدم میترسه بنویسه

میترسه پاش به دل وا شه
آدم بی خود خاطرخوا شه

دو تا چشم رطب داری
از عشق همیشه طب داری

چشات از جنس مرغوبه
چقدر حال چشات خوبه

چشات از جنس مرغوبه
چقدر حال چشات خوووووووبه

 

 

 

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

+ نوشته شده در  شنبه پنجم اسفند 1385ساعت   توسط ( ساسان و محمد )  | 

دنیای بی نام و نشان

با سلام :

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

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

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

 

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

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

+ نوشته شده در  چهارشنبه سیزدهم دی 1385ساعت   توسط ( ساسان و محمد )  | 

آموزش کتابخانه +GTK درس اول

با عرض سلام خدمت دوستان و خوانندگان همیشگی وبلاگ OpenGL & Computer Graphics :

دوستان عزیز بالاخره بعد از مدت زمان زیادی موفق شدم مطلبی را برای شما آماده نمایم. قبلا هم گفتم که در حال تغییر شغل میباشم و دیگر همچون سابق توان آپدیت سریع وبلاگ را ندارم. بهرحال زندگی هم خرج دارد که باید تامین شود. ولی ما راهمان را محکم و استوار طی میکنیم و هیچگاه دست از تلاش برنمیداریم. تنها تفاوتی که ایجاد شده اینست که وبلاگ دیرتر آپدیت میشود و مقداری از بازدهی آن کاسته خواهد شد. البته سایت www.OpenGL.ir در حال آماده سازی میباشد و انشاالله با اتمام آن دیگر سایتی با امکانات بالا و مطالب بهتر در اختیار داریم. مکانی که در آنجا همه میتوانند بصورت اینتراکتیو شرکت داشته و استفاده ببرند.

این مطلب اولین قسمت از سلسله مقالات آموزش کتابخانهء +GTK میباشد کتابخانه ای که همین چند پست پیش معرفی شد و در کار طراحی و ساخت GUI مورد استفاده قرار میگیرد.

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

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

کسانی که خورهء برنامه نویسی هستند و دوست دارند تا خود را با کدهای برنامه درگیر نمایند در ویندوز از Win32 api استفاده میکنند که غیر از طراحی رابط گرافیکی کاربر تقریبا تمام کارهای دیگر از جمله برنامه نویسی شبکه و مولتی تریدینگ و ... را میتوان با آن انجام داد. بهرحال این API هم کراس ژلتفرم نبوده و البته آینده مشخصی ندارد. زیرا که معلوم نیست که مایکروسافت در ویندوز های بعدی خود هم از آن استفاده نماید. مطلبی میخواندم که در آن اشاره شده بود در ویندوز ویستا از WinFX استفاده خواهد شد که البته اکنون تغییر نام داده است و در اصل همان کلاسها و مولفه های برنامه نویسی NET3. میباشد که بصورت توکار در ویندوز ویستا خواهد بود. البته ویستا همچنان از برنامه هایی که بر اساس Win32 api نوشته شده اند پشتیبانی مینماید و آنها را اجرا میکند.

با نگاهی به اطراف کم کم متوجه میشویم که هم اکنون به لطف سیستم عامل گنولینوکس کتابخانه های کراس پلتفرم بسیاری ایجاد شده اند که در ویندوز و لینوکس و مکینتاش به راحتی کار میکنند. کتابخانه هایی نظیر wxWidgets , Qt , GTK+ , FLTK و بسیاری دیگر که امروزه در دنیای برنامه نویسی مولتی پلتفرم جای خود را یافته اند و روزبروز کاربران بیشتری به سمت آنها میآیند.

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

دوستان علاقمند میتوانند اولین قسمت از سلسله آموزشهای +GTK را از این آدرس دریافت و مطالعه نمایند. امیدوارم که مورد پسند و رضایت خاطر دوستان قرار گیرد.

 http://www.rogepost.com/dn/ihws

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

 

+ نوشته شده در  سه شنبه شانزدهم آبان 1385ساعت   توسط ( ساسان و محمد )  | 

آشنایی با کتابخانه های طراحی رابط گرافیکی کاربر در سیستم عامل های مختلف

با سلام خدمت دوستان و خوانندگان وبلاگ OpenGL & Computer Graphics : 

در این مقاله قصد داریم تا شما دوستان را با کتابخانه ای دیگر در زمینه طراحی رابط گرافیکی کاربر آشنا سازیم. در این قسمت کتابخانهء Qt را مورد بررسی قرار خواهیم داد کتابخانه ای که در کنار کتابخانهء GTK+ از پر اهمیت ترین و پراستفاده ترین کتابخانه های ساخت GUI هستند. بخصوص در سیستم عامل رایگان گنو لینوکس.

تصویر شمارهء 1 – تصویر لوگوی کتابخانهء Qt

 

نگاهی اجمالی بر کتابخانهء Qt :

 

Qt یک چهارچوب توسعه نرم افزار است که کراس پلتفرم بوده و بمقدار بسیاری در برنامه های متکی بر GUI استفاده میشود. از زمان ایجاد نسخهء 4 از کتابخانه Qt این کتابخانه برای توسعه برنامه های غیر وابسته به رابط گرافیکی کاربر "GUI" نیز بکار برده شد مانند برنامه هایی که باید تحت محیط متنی ( کنسول ) و یا برای سرور ها نوشته و اجرا شود. از Qt بمقدار زیادی در محصولاتی همچون KDE و Qtopia و OPIE استفاده شده است. این کتابخانه محصول یک شرکت نروژی بنام Trolltech میباشد. و کارمندان آن را بصورت کیوت "Cute" تلفظ میکنند. ادامه در فایل PDF .

 

دوستان علاقمند میتوانند متن کامل این مقاله را از این آدرس دریافت کنند.

http://www.rogepost.com/dn/8dhs

 

 

 

+ نوشته شده در  شنبه بیست و نهم مهر 1385ساعت   توسط ( ساسان و محمد )  | 

مقالات آموزش OpenGL قسمت دوازدهم

با عرض سلام خدمت خوانندگان وبلاگ OpenGL & Computer Graphics :

 

مقالات آموزش OpenGL قسمت دوازدهم. این مقاله توسط دوست عزیزم آقای محمد عباسی ترجمه و تایپ شده است. ضمن تشکر از این دوست عزیز این مقاله را به همه دوستان و علاقمندان تقدیم میکنم.

 

 ( ساخت اشياي سه بعدي )Building Solid Objects

 

ساخت اشياي سه بعدي  از چند مثلث يا مربع يا شكلهاي ديگه خيلي هم ساده نيست. شما نميتوانيد با كنار هم گذاشتن چند تا ورتكس در فضاي سه بعدي يك شكل سه بعدي داشته باشيد.

كار رو با يك مثال شروع ميكنيم. تو اين مثال با استفاده از triangle fan يك مخروط رو تو فضاي ديد ميسازيم.

سري اول ورتكس هامون رو براي ساختن بدنه مخروط استفاده ميكنيم. به اين صورت كه اولين ورتكس رو به عنوان سر مخروط در نظر ميگيريم و بقيه ورتكس ها رو كمي پايين تر و  دور يك دايره ميچينيم.

سري دوم ورتكس ها رو براي ساختن كف مخروط استفاده ميكنيم.اين سري رو در صفحه xy و به صورت يك دايره ميچينيم. نمونه تصوير رو تو شكل زير ميبينيد. ادامه در فایل PDF .

 

 

دوستان علاقمند میتوانند متن کامل مقاله ( دوازدهمین قسمت از آموزشهای OpenGL ) را در فرمت PDF ازاین آدرس دریافت نمایند.

 

                                                                                         http://www.rogepost.com/dn/hnax

 

      

+ نوشته شده در  شنبه بیست و نهم مهر 1385ساعت   توسط ( ساسان و محمد )  | 

آشنایی با کتابخانه های طراحی رابط گرافیکی کاربر در سیستم عامل های مختلف

با سلام خدمت دوستان و خوانندگان همیشگی وبلاگ OpenGL & Computer Graphics :

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

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

 

بهر حال روزگار گذشت و طبق معمول شرکت مایکروسافت که بحق متخصص به سرقت بردن تکنولوژی های نوین از شرکت های مختلف میباشد توانست سیستم عاملی ارائه کند که البته به خودی خود یک سیستم عامل کامل نبود و به محیط داس متکی بود اما توانسته بود با تقلید از سیستم مکینتاش یک محیط گرافیکی هر چند ساده برای کاربران خود مهیا سازد. بهر حال با گذشت چند سال و با پیشرفت هایی که حاصل شد بخصوص پس از عرضه ویندوز 95 برای کامپیوترهای PC رابط گرافیکی کاربر پیشرفت چشمگیری نمود. ادامه مطلب را در فایل PDF بخوانید....

 

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

http://www.rogepost.com/dn/a4lw

 

+ نوشته شده در  چهارشنبه بیست و ششم مهر 1385ساعت   توسط ( ساسان و محمد )  | 

بررسی و حل یک مشکل در لینوکس ( گرافیک و درایور کارت گرافیکی )

با عرض سلام خدمت خوانندگان همیشگی وبلاگ OpenGL & Computer Graphics :

 

 

بررسی و حل یک مشکل در لینوکس ( گرافیک و درایور کارت گرافیکی )

 

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

 

دو روز پیش هنگامی که برای اولین بار اقدام به نصب سیستم عامل سوزی Suse 9.2 نمودم هوس کردم که برای اولین بار از بازیهای سه بعدی که بر روی آن نصب شده بود استفاده کنم. (( البته این ورژن سوزه یک مقدار قدیمیست ولی برای من بهترین انتخاب بود و با نصب آن به کلیه چیزهایی که احتیاج داشتم رسیدم. ضمن اینکه تصور من را نصبت به لینوکس تا حد بسیاری ارتقا بخشید. دست آقای مهدی پیشگوی مدیر سایت تاکس ورلد درد نکنه ))

 

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

بعد از اون رفتم سروقت عشق خودم برنامه Blender 3d و اون رو اجرا کردم. (( لازمه که اینجا یک نکته رو یاد آوری کنم. ببینید دوستان رابط گرافیکی در نرم افزار بلندر همیشه در حال رندر شدن میباشد. یعنی این رابط از طریق استفاده از توابع اوپن جی ال ایجاد شده است و برای نمایش داده شدن محتاج اینه که رندر بشه. )) بهر حال دیدم که برنامه بلندر هم با اشکال اجرا میشه و دچار کندی میشه.

 

این بود که بفکر افتادم و شروع به تحقیق و بررسی کردم. فهمیدم که بقیه همچین مشکلی ندارند و خیلی راحت و با کیفیت بازیهای سه بعدی اوپن جی ال رو در لینوکس اجرا میکنن با سیستمهایی مشابه سیستم خودم. (( پنتیوم III و 384 MB RAM و nVidia Geforce 5200 ))

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

 

با کمی فکر به این نتیجه رسیدم که من تابحال در هیچکدوم از لینوکس هایی که داشتم درایور کارت گرافیکم رو نصب نمیکردم. یعنی اصلا دانلودش نمیکردم چون فکر میکردم لینوکس بطور کامل کارت من رو میشناسه و جدیدترین درایور کارت گرافیکی رو براش نصب میکنه.

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

 

البته باید بگویم که من قبلا خیلی با لینوکس کار کرده بودم و مقداری هم تحت لینوکس برنامه نویسی کردم. ولی هنگامی که اولین بار در لینوکس ردهت 9 نحوه اجرا شدن بازیهای سه بعدی رو دیده بودم دیگه بیخیال برنامه نویسی سه بعدی در محیط لینوکس شده بودم. هر چند میدونستم من اشتباه میکنم و این غیر منطقیه که لینوکس از پس اجرای برنامه های اوپن جی ال برنیاد. ولی ایراد کارم رو پیدا نمیکردم. (( بخاطر همون تصور غلط که گمان میکردم لینوکس با خودش درایور کارت گرافیک من را بطور کامل شناسایی و نصب میکنه.)) و برنامه نویسی سه بعدی تحت لینوکس رو به روزی موکول کرده بودم که بتونم ایراد کارم رو پیدا کنم.

 

خلاصه بعد از دانلود و نصب درایور کارت گرافیکم که تنها 12.5 مگابایت حجم داشت به این نکته پی بردم که لینوکس در اجرای برنامه های سه بعدی مبتنی بر اوپن جی ال بسیار توانا و قدرتمند است. لازمه ذکر کنم که این درایور متعلق به کلیه کارت گرافیک های شرکت انویدیا و تحت کلیه توزیع های لینوکس هست که از محیط X-server برای نمایش گرافیکی شون استفاده میکنند. و X-Server هم بستری هست که رابط های کاربری مثل Gnome و KDE بر روی اون اجرا میشوند.

 

با نصب این درایور به راحتی بازیهای سه بعدی اجرا میشه و دیگه حتی به MESA هم احتیاج نیست. و میتونید به راحتی در محیط های برنامه نویسی مانند Kdevelop و Anjuta و ... برای لینوکس و با استفاده از کتابخانه قدرتمند اوپن جی ال برنامه نویسی کنید. درست به همان راحتی که در ویندوز و بطور مثال با محیط برنامه نویسی Dev-cpp یا Visual Studio و با کمک کتابخانه اوپن جی ال این کار رو میکنید.

بطور مثال میتونید در محیط برنامه نویسی Anjuta ( که در حقیقت یک IDE برای C/C++ هست ) و یا Kdevelop ( این هم یک IDE دیگه برای محیط KDE هست ) با کمک کتابخانه SDL ( برای ساختن پنجره و مدیریت اون ) یا GLUT ( این قدیمیه من بهیچ عنوان توصیه نمیکنم. چون چند ساله که دیگه بروز نمیشه ) یا Gtk+ 2 و یا کتابخانه Xlib برای ساخت پنجره و در نهایت کتابخانه OpenGL به عنوان API گرافیکی برنامه بنویسید و کامپایل کنید.

 

تا دیروز من تموم برنامه هایی که برای اوپن جی ال مینوشتم تحت ویندوز و با محیط برنامه نویسی Dev-cpp و کامپایلر MinGW ( این همون GCC تحت ویندوز هست ) بود ولی حالا دیگه بطور کامل میتونم یک توسعه دهنده لینوکس باشم.

 

موفق و موید باشید خدانگهدار

 

 

+ نوشته شده در  دوشنبه هفدهم مهر 1385ساعت   توسط ( ساسان و محمد )  | 

آموزش نرم افزار بلندر ( قسمت سوم )

با سلام خدمت دوستان و خوانندگان محترم وبلاگ OpenGL & Computer graphics :

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

و اما دو نکته : دوستان به عنوان نکته اول به همه شما توصیه میکنم فارق از هرگونه علاقمندی شخصی و ... سعی کنید حتما این آموزشهای بلندر را مطالعه فرمایید. نرم افزار قدرتمندی که مایه مباهات جنبش اوپن سورس میباشد. البته این بزرگترین و مهم ترین دستاورد این جنبش نبوده و نیست. اما به نظر این حقیر یکی از قدرتمند ترین نرم افزارهایی است که در دنیای سه بعدی وجود دارد و به خوبی توانایی مقابله با قولهای نرم افزارهای تجاری مانند 3D's MAX و MAYA و Light Wave و ... را دارد. قدرت کامل به رایگان در اختیار دستان ما قرار دارد اما ما نمیبینیم. و روزی که دیگر توانایی استفاده از نرم افزار های کرک شده و دزدی دیگران را نداشتیم آن وقت است که کاسه چه کنم چه کنم به دست گرفته و به دنبال چاره میگردیم. باور کنید آن روز دیر نیست. پس بیش از این خود را به کوه نرم افزار های تجاری آلوده نکنید که اگر روزی بطور مثال لازم شد با سیستم عامل درجه یک و محشر لینوکس کار کنید مثل افراد بیسواد دنبال چیزهای ساده بگردید. به زودی خورشید اوپن سورس و نرم افزارهای کدباز در ایران طلوع میکند ( هرچند که تا همین لحظه هم این آفتاب درخشان و این عشق واقعی در قلب خیلی از ماها تابیده ) و به زودی در راس همه آنها لینوکس بر ایران حکومت خواهد کرد. و آنگاه است که توسعه دهندگان ویندوز باید در به در دنبال کار بگردند. و دور دورهء توسعه دهندگان لینوکس میباشد. خیلی از دوستان در این لحظه با لحنی استحزا آمیز این مطالب را میخوانند ولی همینجا به شما (و تمام عاشقان و سینه چاکان مایکروسافت) قول میدهم که به زودی تمام این پیش گویی ها به حقیقت میپیوندد.

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

و اما این هم سومین قسمت از مقالات آموزشی نرم افزار قدرتمند Blender 3D که وظیفه ترجمه و ویرایش و تایپ آن با خودم بود ( اگر نقصانی دیدید تنها به من بد و بیراه بگویید ) :

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

علاقمندان میتوانند سومین قسمت از مقالات آموزشی بلندر را از این آدرس دریافن نمایند :

http://www.savefile.com/files/118108

 

+ نوشته شده در  یکشنبه نهم مهر 1385ساعت   توسط ( ساسان و محمد )  | 

آموزش game maker

game maker نرم افزاري ساده براي ساخت بازيهاي دو بعدي هستش. به نظر من براي شروع بازي سازي خوبه و ميتونه مفاهيم زيادي رو بهمون ياد بده. مقدار زيادي از بخش راهنماي نرم افزار رو ترجمه كردم. هر چند روز يه قسمتش رو ميذارم.البته تاپي كردن سخته و وقت زيادي رو ميگيره.اگر موافق اين آموزش هستيد تو  كامنت يه پيغامي بذاريد كه ما الكي نشينيم تايپ كنيم.

فعلا

محمد

+ نوشته شده در  پنجشنبه ششم مهر 1385ساعت   توسط ( ساسان و محمد )  | 

آموزش نرم افزار بلندر ( قسمت دوم )

با سلام خدمت دوستان و خوانندگان وبلاگ OpenGL & Computer Graphics :


امروز هم با يك مقاله جديد در خدمتتون هستيم. ادامه آموزش Blender رو ميتونيد در اين مقاله دنبال كنيد. جا داره از دوست عزيزمون آقاي ايمان شرف الدين براي ارائه اين مقاله خوب تشكر كنيم. اميدوارم بقيه دوستان هم وبلاگ رو خونه خودشون بدونن و در ارائه مقالات دريغ نكنن. به اميد روزي كه بتونيم یک بازي کامژیوتری در حد و اندازه نام ايران بسازيم.آريايي براي هميشه
 

 

 

این خودآموز توضیح خلاصه ای از مهمترین پنجره ها و پنجرهای دکمه ای ( Buttons Windows) در Blender است. ما در این خودآموز همه پنجره ها را با تمام ریزه کاریشان معرفی نکردیم.برای اطلاعات بیشتر می توانید به مستندات Blender مراجعه نمایید.

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

اين تكه اي از مقاله امروز بود. اين فايل رو به صورت كامل و  با فرمت pdf و با كيفيت خوب ميتونيد از آدرس زير دانلود كنيد.

http://rapidshare.de/files/34482761/Blender_Lesson_02.zip.html

http://www.rogepost.com/dn/3aih

تا مقاله بعد بدرود

 

+ نوشته شده در  سه شنبه چهارم مهر 1385ساعت   توسط ( ساسان و محمد )  | 

PDF چیست و چگون میتوان PDF ساخت ؟

با سلام خدمت دوستان و خوانندگان وبلاگ OpenGL & Computer graphics :

 

PDF چیست و چگونه PDF بسازیم :

 

دوستان مطلب امروز اختصاص دارد به آموزش یکی از راههای انتقال اسناد متنی و تصویری بر روی پهنه اینترنت که برای بسیاری از ما جنبه حیاتی دارد و منتشر ساختن اسناد با آن بسیار آسان تر میباشد.

 

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

فرمت هایی که همگی توانایی انتقال اسناد را بر روی سطح اینترنت با کیفیتی بالا دارند. فرمت هایی از قبیل PDF (متعلق به شرکت ادوبی) و LIT و DOC (متعلق به مایکروسافت) و PPT و djvu که یک فرمت جدید است و مختص کتابهای اسکن شده میباشد و حتی فرمت CHM که در حقیقت فرمت فایل های کمک ویندوز هستند ولی امروزه کتابهای الکترونیکی بسیاری با این فرمت منتشر میشوند و فرمت های بیشمار دیگری که هرکدامشان جهت تسهیل فرآیند انتقال اسناد اینترنتی ایجاد شدند.

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

 

دوستان علاقمند میتوانند مقاله امروز را بصورت کامل از این آدرس دانلود و مطالعه نمایند.

                                                                               http://www.rogepost.com/dn/d1cu

 

 

+ نوشته شده در  یکشنبه دوم مهر 1385ساعت   توسط ( ساسان و محمد )  | 

مقالات آموزش OpenGL قسمت یازدهم

با عرض سلام خدمت خوانندگان وبلاگ OpenGL & Computer Graphics :

 

مقالات آموزش OpenGL قسمت یازدهم. این مقاله توسط دوست عزیزم آقای محمد عباسی ترجمه و تایپ شده است. ضمن تشکر از این دوست عزیز این مقاله را به همه دوستان و علاقمندان تقدیم میکنم.

 

Drawing Triangles in 3D : رسم مثلث در فضای سه بعدی

 

 

درسمون رو با آموزش كشيدن اشكال سه گوش در OpenGL ادامه ميديم. تو درسهاي قبل ياد گرفتيم كه چطور نقطه و خط بكشيم و با استفاده از GL_LINE_LOOP تونستيم  خطوط بسته رو بكشيم.

شما ميتونيد با كشيدن شش تا مربع و مرتب كردنشون يه مكعب در فضاي سه بعدي داشته  باشيد. اما دقت كنيد تمام اشكالي كه با استفاده از خط و نقطه ميكشيد تو خالي هستند.در حقيقت اونها به صورت قاب سيمي (  wire frame) نمايش داده ميشن.براي داشتن شكلهاي توپر و به اصطلاح رنگي شما بايد از polygon ها استفاده كنيد.

دوستان علاقمند میتوانند مقلاله امروز را بصورت کامل و در قالب یک فایل PDF از این آدرس دریافت نمایند.

http://www.rogepost.com/dn/ehun

 

+ نوشته شده در  شنبه یکم مهر 1385ساعت   توسط ( ساسان و محمد )  | 

آموزش نرم افزار بلندر ( قسمت اول )

با سلام خدمت دوستان و خوانندگان وبلاگ OpenGL & Computer Graphics :

مدتها بود که به دوستان قول داده بودم که آموزش های بلندر را ترجمه و در وبلاگ قرار دهم. خوشحالم که این خبر را به همه دوستان اعلام کنم از این به بعد آموزش های بلندر نیز به جمع آموزشهای مایا و اوپن جی ال ما اضافه شد. البته این کار با کمک دوستانی حاصل شده که به من در ترجمه و تالیف و آپدیت وبلاگ کمک میکنند. جا دارد تا همنجا از تنی چند از دوستان تشکر کنم. دوستانی که واقعا این وبلاگ را متعلق به خودشان میدانند و برای رشد و بهبود آن کمک میکنند.آقای محمد عباسی که آموزش های Maya و قسمتی از آموزش های OpenGL حاصل کار این دوست عزیزم میباشد.آقای ایمان شرف الدین که قرار است در ترجمه آموزش های Blender به من کمک کنند. آقای علی اکبر محمدی ( کوچول ) که با مطلب خوبشون ما رو شرمنده نمودند و قرار هست از این به بعد وبلاگ ما با سایت ایشون تبادل مقالات داشته باشه تا به رشد و پیشرفت هر دو کمک بشه. آقا رضا نویسنده وبلاگ it4ir.blogfa که یک مقاله در مورد حبیب زرگر پور برای وبلاگ فرستادن که بدبختانه هنوز به علت تراکم کاری وقت نکردم برای گذاشتن توی وبلاگ آماده اش کنم. و خیلی های دیگه که با تشویق هاشون و با پیشنهادات سازنده شون من را در ادامه این راه کمک کردند. واقعیت اینه که اگه کمک این دوستان نبود ( مخصوصا دوست عزیزم آقای محمد عباسی ) الان وبلاگ نمیتونست با این همه مقالات رنگارنگ در خدمت شما باشه. من ضمن تشکر از تمامی این دوستان اعلام میکنم که این وبلاگ آغوشش رو به روی تموم بچه هایی که دوست دارن و میتونن به ما کمک کنند باز کرده. تا بتونیم اینجا رو به مکانی تبدیل کنیم که با آموزش های بسیار جوابگوی تموم سلیقه ها باشه. این شما و این مقاله امروز که کار ترجمه اش هم از خودمه. 

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

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

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

 

خوب طبق معمول این هم قسمت کوچکی از مقاله بود که برایتان گذاشتم. برای دانلود و مطالعه کل مقاله در قالب یک فایل PDF به این آدرس مراجعه فرمایید. امیدوارم که از مطالعه آن لذت ببرید.

                                                                                      http://www.savefile.com/files/89781   

 

 

+ نوشته شده در  سه شنبه بیست و هشتم شهریور 1385ساعت   توسط ( ساسان و محمد )  | 

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

با سلام خدمت دوستان و همراهان وبلاگ OpenGL & Computer Graphics :

دوستان مقاله امروز کاری است از دوست خوبم آقای علی اکبر محمدی مدیر محترم سایت www.irangamedev.com که نحوه ساخت یک پنجره ساده را به شما آموزش میدهد. امیدوارم این مقاله مورد پسند دوستان قرار بگیرد. خواندن این مقاله را به همه کسانی که هنوز برنامه نویسی ویندوز با استفاده از توابع API را شروع نکرده اند شدیدا توصیه میکنم.

 

سلام من در این مقاله قصد دارم که ساخت یک پنجره ویندوز ساده را توسط ++C به شما آموزش بدهم. در این مقاله با تابع های WinMain و WndProc و دستوراتی که برای کشیدن یک پنجره لازم هست را به شما آموزش می دهم. خوب اول از همه ما احتیاج به اضافه کردن فایل سرآمد ویندوز به برنامه خود داریم البته پس از ایجاد کردن یه پروژه خالی و یه فایل cpp.

 

#include "windows.h"    // this will include windows.h for accessing to win32 API

 

خوب حالا یه کم راجع به ساختار برنامه های تحت ویندوز توضیح می دم. در برنامه ها ای که در کنسول اجرا می شوند برنامه با یه تابع ()main شروع می شد حالا در ویندوز نام آن تابع تبدیل شده هست به ()WinMain ولی یه تابع استاندارد دیگه هم در برنامه های ویندوز هست به نام WndProc که برای یک برنامه ویندوز هر دوی آنها نیاز هست خوب تابع اولی نقطه ی شروع برنامه هست ولی تابع دوم را خود سیستم عامل ویندوز صدا می زند و یک پیغام هایی را به برنامه شما می فرستد مثل موقع ای که کاربر می خواهد پنجره را ببندد. بهتر هست که با یک نگاه به نمونه ی اولیه تابع WndProc کار خود را شروع کنیم.

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

http://www.rogepost.com/dn/91ph/Window_Creating.rar

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

 

+ نوشته شده در  شنبه بیست و پنجم شهریور 1385ساعت   توسط ( ساسان و محمد )  | 

مقالات آموزش مایا قسمت اول

با عرض سلام خدمت دوستان و خوانندگان وبلاگ OpenGL & Computer Graphics :

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

درس اول : با محيط  مايا آشنا بشيد

 

بدون هيچ مقدمه اي شيرجه ميزنيم تو مايا. لباسهاتون رو در بياريد و دو بار روي آيكون مايا كليك كنيد.احتمالا يه پنجره اي شبيه شكل زير براتون باز ميشه.

نسخه اي كه من از روش مينويسم 4.5 هستش. الان مايا 8 هم تو بازاره. تو چند فصل اول كه پايه نرم افزار رو ياد ميگيريم ميتونيد از آخرين نسخه موجود استفاده كنيم.

قبل از توضيح قسمتهاي مختلف يه نكته هستش كه بايد بگم.مايا رو بهتره به صورت unlimited نصب كنيد تا تمام امكانات موجود روي نرم افزار روي سيستم نصب بشه.

 

 

در اين درس با محيط مايا آشنا ميشيد.سعي نكنيد تمام كارهايي كه ميكنيد رو بفهميد.مهم اينه كه بتونيد اون كارها رو انجام بديد. تو اين تمرين ياد ميگيريد چطور يه شكل ساده بسازيد.يه نماي دوربين تعريف كنيد و بعد در آخر يه رندر از صحنه ميگيريم.

براي شروع يه سري تنظيمات رو بايد انجام بديد. در زير اونا رو آورديم.

 

چند خطي تئوري :

Main menu

تمام امكانات نرم افزار در اين منوها در دسترس هست.اين منوها به دو دسته تقسيم ميشن. دسته اول منوهاي ثابت هستن كه از  file شروع و تا window ادامه داره.دسته دوم منوهايي هستن كه به انتخاب شما تغيير ميكنن.انتخابهاي شما چي هستن.انتخابهاي شما 4 مورد هستش.بايد از بخش

status line ( به شكل اول مراجعه كنيد) منوهاي مورد نظرتون رو انتخاب كنيد. اين انتخابها عبارتند ازdynamic , modeling , animation , rendering البته دو مورد live , fur هم هستن. شما با انتخاب يكي از اين موارد منوهاي window به بعد رو تعيين ميكنيد.

 

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

 

دوستان علاقمند میتوانند نسخه PDF این مقاله را از این آدرس دریافت نمایند.

 http://www.rogepost.com/dn/16tj/Maya_Lesson_01.pdf

منبع : قسمت Help نرم افزار مایا

مترجم : محمد عباسی ( سلطان )

کلیه حقوق این مقاله به وبلاگ www.OpenGL.Blogfa.com و مترجمین آن تعلق دارد. لعنت به کسانی که بدون نام بردن از منبع ترجمه کننده آن را در وبلاگ یا سایت خود قرار میدهند. بدیهی است که دوستان میتوانند با نام منبع و مترجم مطالب را در وبلاگ یا سایت خود منتشر نمایند

 

+ نوشته شده در  جمعه بیست و چهارم شهریور 1385ساعت   توسط ( ساسان و محمد )  | 

OpenAL چیست و چه کاربردهایی دارد.

با سلام خدمت دوستان و خوانندگان وبلاگ OpenGL & Computer Graphics :

OpenAL چیست ؟

 

OpenAL مخفف (Open Audio Library) یک API صوتی مولتی پلتفرم و ساده میباشد. هدف از طراحی OpenAL رندر موثر و کارآمد صداهای سه بعدی چند کاناله وابسته به موقعت مکانی میباشد. قالب و قرارداد های بکار رفته در این API بسیار به OpenGL شباهت دارد و از آن متاثر شده است. امروزه کتابخانه های زیادی وجود دارند که ادعای کار کردن با سخت افزارهای صوتی در سطوح پایین را دارند ( هر چند که این ادعا میتواند صحیح باشد ) اما طراحان این کتابخانه در طراحی آن مواردی را لحاظ کردند که این کتابخانه را به کتابخانه ای ممتاز تبدیل کرد. اول از همه آنها از OpenGL API تقلید کردند که یکی از بهترین API هایی است که تاکنون طراحی شده. قالب این API بسیار انعطاف پذیر است و متد های مختلف برنامه نویسی و همچنین پیاده سازی های سخت افزاری متفاوت میتوانند از این مزیت بهره برداری نمایند. افرادی که تجربه ای در استفاده از OpenGL دارند قادر هستند تا به سرعت OpenAL را فراگرفته و آن را بکارگیرند.OpenAL همچنین توانایی خلق صداهای سه بعدی محیطی را دارد چیزی که بسیاری از API های دیگر حرفی برای گفتن در مورد آن ندارند. و مورد آخر اینکه این API همچنین قادر است تا خودش را برای استفاده از قابلیتهایی همچون EAX و AC3 توسعه دهد.

 

نگاهی به تاریخچه OpenAL :

 

OpenAL در آغاز توسط شرکت Loki Software ایجاد شد تا به آنها در منتقل کردن بازیهای ویندوز به سیستم عامل لینوکس کمک کند. پس از منحل شدن شرکت Loki Software این پروژه تا مدتی توسط انجمن طرفداران اوپن سورس ( زنده باد اوپن سورس ) نگهداری میشد. اما هم اکنون این پروژه توسط شرکت Creative Labs میزبانی و توسعه داده میشود.

دوستان عزیز این تنها قسمت کوچکی از مقاله OpenAL بود شما باید برای مطالعه مقاله بصورت کامل نسخه PDF آن از این آدرس دانلود نموده و مطالعه فرمایید. از این به بعد کلیه مقالاتی که در آنها سورس برنامه و یا تصاویر زیاد به کار رفته باشد به این صورت ارائه میشود.

 http://www.rogepost.com/dn/qq28/OpenAL.rar

منبع : دانشنامه رایگان ویکی پدیا www.wikipedia.org و سایت www.Devmaster.net

مترجم : sasan_dracula_59

کلیه حقوق این مقاله به وبلاگ www.OpenGL.Blogfa.com و مترجمین آن تعلق دارد. لعنت به کسانی که بدون نام بردن از منبع ترجمه کننده آن را در وبلاگ یا سایت خود قرار میدهند. بدیهی است که دوستان میتوانند با نام منبع و مترجم مطالب را در وبلاگ یا سایت خود منتشر نمایند

 

+ نوشته شده در  پنجشنبه بیست و سوم شهریور 1385ساعت   توسط ( ساسان و محمد )  | 

آشنایی با موتور فیزیک

با سلام خدمت دوستان و خوانندگان همیشگی وبلاگ OpenGL & Computer Graphics :

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

موتور فیزیک چیست :

 

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

 

بطور کلی دو نوع از موتور فیزیک وجود دارد.نوع بلادرنگ ( Real time ) و نوع پردقت یا

( high precision ). موتور های فیزیکی پر دقت به قدرت پردازشی بیشتری محتاجند تا بتوانند محاسبات فیزیکی بسیار دقیق را انجام دهند و این نوع از موتورها غالبا توسط دانشمندان یا فیلم های متحرک کامپیوتری مورد استفاده قرار میگیرند. در بازیهای ویدئویی یا دیگر برنامه های کامپیوتری اینتراکتیو ( فعل و انفعالی ) موتورهای فیزیک مجبورند که محاسباتشان را آسان تر نموده و از میزان دقت کم نمایند تا بتوانند بموقع و سریع محاسبات را انجام داده و نسبت به حرکات بازی واکنش لازم را نشان داده و  بر روی سرعت بازی نتیجه منفی نگذارند.

 

بازیهای کامپیوتری مخصوصا بازیهایی ماشینی مسابقه ای از موتورهای فیزیکی استفاده میکنند تا واقع گرایی بازی را افزایش دهند. هم اکنون نیز توسعه دهندگان موتورهای فیزیک در حال تلاشند تا خصوصیات بیشتری را به این موتورها بیفزایند تا واقعیت گرایی را افزایش دهند و البته این امر در سایه پروسسورهای پرقدرت امروزی به امری ممکن تبدیل شده است.کاراکترهای انیمیشنی که در گذشته از فیزیک استفاده میکردند تنها قادر بودند تا از rigid body dynamics (( واقعا نتوانستم ترجمه خوبی برای این اصطلاح ارائه دهم.. برای همین آن را عینا نقل نمودم. هر چند خود این اصطلاح بسیار گویا میباشد ولی بعضی مواقع ترجمه باعث صدمه خوردن به یک اصطلاح فنی میشود.  مترجم )) استفاده کنند چون به راحتی و به سرعت قابل محاسبه بودند. اما بازیها و انیمیشن های مدرن امروزی شروع به استفاده از soft body physics نموده اند. فیزیک جسم نرم Soft body physics همچنین برای افکت های ذره ای و مایعات و لباسها نیز بکار برده میشود.

 

واحد پردازش فیزیک Physics Processing Unit (PPU) :

 

در فوریه سال 2006 بالاخره اولین واحد پردازش فیزیک توسط شرکت Ageia تولید شد که مانند یک کارت گرافیکی کار میکرد و فشار پردازش فیزیکی را از دوش واحد پردازش مرکزی CPU بر میداشت. بیشترین تاثیر این محصول در زمینه سیستم ذرات particle systems بود اما در زمینه بهبود کارایی در محاسبات فیزیک جسم جامد بهبود چندانی حاصل نشد. امروزه فعایتهایی در زمینه افزودن قابلیت انجام محاسبات فیزیکی به کارت های گرافیکی در دست انجام است. و شرکتهای NVIDIA و ATI هر دو در آخرین محصولاتشان قابلیت انجام محاسبات فیزیکی از جمله فیزیک اجسام جامد را قرار داده اند.

 

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

 

Open Dynamics Engine : یک موتور فیزیک رایگان و اوپن سورس ( زنده باد اوپن سورس )

 

Bullet : یک موتور رایگان و اوپن سورس دیگر

 

Havok : یک موتور فیزیک معروف که در بازیهایی زیادی از جمله مکس پین و هاف لایف بکار رفته است. لازم به ذکر است که این یک موتور تجاری میباشد.

 

Newton Game Dynamics : یک موتور رایگان اما سورس بسته میباشد.

nV Physics SDK و Tokamak Physics

 

دوستان امیدوارم از این مقاله نیز استفاده لازم را برده باشید. چنانچه در حین مطالعه به اشکال یا اشتباهی برخوردید خوشحال میشوم آن را به من اطلاع دهید. ایمیل من sasan_dracula_59@yahoo.com میباشد. در ضمن دوستان میتوانند نسخه PDF این مقاله را از این آدرس دریافت کنند.

 

http://www.rogepost.com/dn/g1yz/Physics+engine.rar

 

 

منبع : دانشنامه رایگان ویکی پدیا     www.wikipedia.com

مترجم : sasan_dracula_59

کلیه حقوق این مقاله به وبلاگ www.OpenGL.Blogfa.com و مترجمین آن تعلق دارد. لعنت به کسانی که بدون نام بردن از منبع ترجمه کننده آن را در وبلاگ یا سایت خود قرار میدهند. بدیهی است که دوستان میتوانند با نام منبع و مترجم مطالب را در وبلاگ یا سایت خود منتشر نمایند

 

+ نوشته شده در  پنجشنبه بیست و سوم شهریور 1385ساعت   توسط ( ساسان و محمد )  | 

آشنایی با گیم انجین ها و موتورهای سه بعدی

با سلام خدمت دوستان و خوانندگان وبلاگ OpenGL & Computer Graphics :

 

یک نگاه اجمالی :

Game engine در حقیقت مولفه نرم افزاری و اصلی هر بازی کامپیوتری و ویدئویی و هر برنامه اینتر اکتیوی است که محتوای گرافیکی بلادرنگ تولید کند. گیم انجین یکسری از تکنولوژی های اساسی را مهیا میسازد همچنین فرایند توسعه را تسهیل میکند و در بعضی مواقع بازی را قادر میسازد تا بگونه ای ساخته شود که بصورت مولتی پلتفرم و بر روی کنسول های بازی و کامپیوترهای رومیزی اجرا شود. توانایی ها و قابلیت های اساسی که توسط گیم انجین در اختار قرار میگیرد شامل یک رندر کننده برای گرافیکهای دو بعدی و سه بعدی و موتور فیزیک و کاشف برخورد (عجب ترجمه ای. اینجا منظور همان collision detection میباشد.) و صدا و پردازشگر اسکریپت و انیمیشن و هوش مصنوعی و قابلیتهای شبکه ای و یک نمودار صحنه میباشد.

 

اغلب گیم انجین های معروف و بزرگ مانند Unreal Engine 3 و Doom 3 engine و CryENGINE2 و RenderWare و Gamebryo مجموعه ای از  ابزارهای توسعه بصری بعلاوهء مولفه های نرم افزاری با قابلیت استفاده مجدد را مهیا میکنند. معمولا تمام این ابزارها در یک محیط توسعه مجتمع گردآورده میشوند تا توسعه تند و آسان بازیهای کامپیوتری را ممکن سازند. گیم انجین ها را بعضی اوقات با نام "میان افزار بازی" یا "game middleware" نیز میشناسند.

همچون دیگر راه حل های میان افزاری گیم انجین ها اغلب انتزاع پلتفرم را مهیا میسازند که اجازه میدهد بازیها بر روی طیف وسیعی از پلتفرم ها اجرا شود. میان افزار بازی اغلب بصورت معماری مولفه گرا طراحی میشوند که این امر باعث میشود بتوان بسیاری از قابلیتهای آنها را کنار گذاشت و یا با مولفه های میان افزار ویژه گسترش داد مانند Hovak برای فیزیک و FMOD برای صدا و SpeedTree برای رندرکردن. بعضی از انجین ها مانند RenderWare بصورت مجموعه ای از مولفه های ابزار متصل بهم طراحی شده است. مزیت این روش اینست که میتوان با آن موتورهای سفارشی تولید کرد که اجزایش به صورت انتخابی با یکدیگر ترکیب شده باشند.

 

بعضی از گیم انجین ها به جای کلیه قابلیتهایی که مورد نیاز یک بازی کامپیوتری است تنها قابلیت رندرینگ بلادرنگ سه بعدی را مهیا میسازند. این انجین ها به توسعه دهنده بازی اجازه میدهند که بقیه توانایی ها و قابلیت های مورد نیاز را فراهم نموده و مجموعه را تکمیل نماید که میتوان آنها را از بین اجزا میان افزار بازی های دیگر انتخاب نمود. این نوع از موتور ها اغلب با نامهای دیگری مانند موتور گرافیکی "graphics engine" یا موتور رندرسازی "rendering engine" و یا موتور سه بعدی

"3D Engine" نیز شناخته میشوند.

Axiom , Ogre , Power Rende  , Crystal Space , and Genesis3D از جمله موتورهای گرافیک هستند. گیم انجین ها و موتور های گرافیکی جدید قابلیتی دارند که به نمودار صحنه scene graph معروف است که یک نمایش سه بعدی شی گرا از دنیای سه بعدی بازی میباشد و اغلب طراحی بازی را تسهیل میکند و میتواند برای رندر موثر و با کیفیت دنیای بصری سه بعدی بکار گرفته شود.

 

انتزاع سخت افزار :

اغلب اوقات موتور سه بعدی یا سیستم رندرکننده یک گیم انجین بر اساس API های گرافیکی همچون Direct 3D و یا OpenGL ساخته میشود که باعث استقلال نرم افزاری از GPU یا همان کارت گرافیکی میشود. از کتابخانه های سطح پایین "Low-Level" دیگری نیز همچون DirectX و SDL و OpenAL نیز بطور معمول در ساختن گیم انجین ها استفاده میشود چون آنها دسترسی مستقل از سخت افزار به دیگر سخت افزار کامپیوتر را همچون کارت صوتی و کارت شبکه و کیبورد و موس و ... را فراهم میسازند.

 

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

تاریخچه گیم انجین ها :

اصطلاح گیم انجین در میانه سالهای دهه 90 و مخصوصا در ارتباط با بازیهای FPS ایجاد شد. و شرکت id-software با بازیهایی همچون Doom و Quack آغازگر این راه بود. بعد ها نیز بازیهایی دیگری همچون Quack III و Unreal 1998 نیز با چنین فلسفه ای ایجاد شدند. بسیاری از شرکت ها میتوانستند با فروش موتور بازیهایشان یک سود مازاد و کمکی برای خود ایجاد کنند. امروزه موتورهای بازی سازی با قیمت های از ده هزار دلار تا سه ملیون و هفتصد و پنجاه هزار دلار (موتور بازی Warcraft III ) وجود دارند. کمترین مزیت و فایده ای که گیم انجین ها داشتند این بود که توسعه بازیهای کامپیوتری را آسان و سریع نمودند چیزی که در صنعت پر از رقابت بازیهای کامپیوتری یک منفعت بزرگ به شمار می آمد. امروزه بسیار بر روی گیم انجین ها و اجزا سازنده آنها کار میشود و این امر باعث شده تا بین قسمت های مانند کارهای هنری و طراحی مراحل و رندرینگ و اسکریپ نویسی شکاف عمیقی ایجاد شود به زبان ساده این امر باعث شده تا کارها تخصصی تر شود. امروزه در تیم های بزرگ توسعه بازیهای کامپیوتری و ویدئویی نسبت هنرمندان به برنامه نویسان 4 به 1 میباشد و این یک امر عادی محسوب میشود.

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

RPG Morrowind و MMORPG Dark Age of Camelot دو بازی هستند که بر اساس موتور  NetImmerse طراحی شده اند. همچنین بازی Lineage II بر اساس موتور آنریل Unreal Engine

طراحی شده است. گیم انجین هایی بزرگی که امروزه طراحی میشوند بگونه ای هستند که کنسول های بازی خانگی را نیز به خوبی پشتیبانی نمایند. بطور مثال دو بازی Grand Theft Auto و Burnout بر اساس موتور معروف RenderWare ساخته شده اند. امروزه گیم انجین ها در زمره پیچیده ترین برنامه های کامپیوتری هستند که تابحال ایجاد شده است.

 

میان افزارها :

 

امروزه بسیاری از کمپانی ها در ساخت و تولید مجموعه های نرم افزاری که با نام میان افزار "Middleware" شناخته میشوند محارت و تجربه ویژه ای کسب کرده اند. توسعه دهندگان میان افزار ها تلاش دارند تا مجموعه های نرم افزاری قدرتمندی تولید کنند که شامل تمام ملزومات مورد نیاز ساخت یک بازی کامپیوتری باشد. بسیاری از میان افزار ها قابلیت هایی مانند توابع گرافیک و صوت و فیزیک و هوش مصنوعی را تدارک میبینند که توسعه بازیها را تسهیل مینماید.Gamebryo و RenderWare دو نمونه از میان افزار های معروفی هستند که بطور بسیاری مورد استفاده قرار میگیرند.

بعضی از میان افزار ها تنها یک کار را انجام میدهند و بطور متقاعد کننده ای آن کار را بسیار بهتر از میان افزار های چند منظوره انجام میدهند. برای نمونه SpeedTree برای رندر کردن درختان و مراتع و جنگلها در کنسول جدید مایکروسافت یعنی Xbox 360 و همچنین بازی The Elder Scrolls IV: Oblivion متعلق به مایکروسافت استفاده میشود.

بعضی از میان افزار ها به همراه سورس کد کامل ارائه میشوند و بعضی دیگر تنها مرجع توابع API و کتابخانه کامپایل شده را در اختیار میگذارند که برای دستیابی به سورس کد کامل آنها میبایست مبلغ اضافه تری پرداخت نمود.

 

توسعه گیم انجین ها امروزه یکی از محبوب ترین پروژه ها در میان علوم کامپیوتری میباشد و افراد بسیاری از دانش جویان و علاقمندان و توسعه دهندگان بازیهای کامپیوتری به این موضوع میپردازند. از ملزومات توسعه گیم انجین ها داشتن دانش بسیار در طیف وسیعی از علوم مانند هندسه و تئوری رنگها و محاسبات میباشد. بسیاری از افراد بطور مشتاقانه و آماتوری به این رشته میپردازند و از این کار لذت میبرند ضمن اینکه محصول خود را بصورت اوپن سورس ( زنده باد اوپن سورس ) در اختیار بقیه میگذارند.Crystal Space یک گیم انجین رایگان میباشد که از محبوبیت خوبی نیز برخوردار است. این انجین رایگان بوده و در ضمن اوپن سورس میباشد و مولتی پلتفرم نیز هست.

یک محیط توسعه بازی بسیار محبوب و ارزان قیمت نیز در سال 1999 توسط Marc Overmars تولید شد که فرآیند توسعه بازیهای دوبعدی را بشدت آسان میکرد.

سخنی در مورد موتور های گرافیکی :

 

همانطور که پیشتر نیز عنوان شد موتور گرافیکی یکی از اجزای فوق العاده مهم هر گیم انجینی است. امروزه با یک سرچ کوچک در اینترنت میتوان موتور های گرافیکی بسیاری را پیدا کرد که اوپن سورس و رایگان هستند و قدرت های خوبی نیز داند و به صورت SDK عرضه میشوند.. از نمونه های خوب این انجین ها میتوان به موتورهای سه بعدی OGRE 3D و irrlicht و Panda و Delta 3D و ... را نام برد. این موتورها غالبا بصورت کتابخانه های استاتیک  یا دینامیک به همراه فایلهای هدر مورد نیاز و در اکثر مواقع به همراه سورس کامل عرضه میشوند. هر کدام از این انجین ها قادرند تا از یک یا چند زبان مختلف پشتیبانی نماید. بطور مثال موتور های OGRE و irrlicht را میتوان در زبان C/C++ استفاده کرد و از موتور Panda میتوان در زبان پایتون استفاده نمود. هر کدام از این موتورها با یکی از دو API گرافیکی رایج مانند OpenGL یا Direct3D نوشته شده اند و در بعضی موارد از هر دوی این API ها پشتیبانی میکنند مانند موتور OGRE که از هر دوی این API ها پشتیبانی میکند. در تعدادی دیگر از اینگونه موتور ها که پیشرفته تر هستند قابلیت Software Rendering نیز مهیا میباشد.

اگر طالب استفاده از این گونه موتورها هستید من موتور OGRE را به شما توصیه میکنم. که در فواصل زمانی کوتاه پیشرفت میکند و سریع اشکال زدایی میشود.

 

مثالی از چگونگی کاربرد موتوهای گرافیکی :

 

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

فرض کنید شما موتور گرافیکی OGRE را در اختیار دارید و مایلید تا از آن استفاده نمایید. خوب این موتور در اصل بصورت یکسری کتابخانه و فایلهای هدر میباشد که شما با Include نمودن فایل های هدر در ابتدای برنامه سی++ خود و همچنین لینک کردن کتابخانه های مربوطه میتوانید از کلاسها و توابع این موتور استفاده نمایید. این کتابخانه کلاسهایی برای ساخت پنجره و لود کردن مدل ها و تکسچرها و نورپردازی و ... دارد.

 

گیم انجین ها در مقابل موتورهای واقعیت مجازی :

 

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

 

سخن پایانی :

 

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

 

دوستان علاقمند میتونند نسخه PDF این مقاله را از این آدرس بگیرند.

 

 http://www.rogepost.com/dn/dbbk/Game+engine.rar

 

منبع : سایت ویکی پدیا   www.wikipedia.org

مترجم :  sasan_dracula_59

کلیه حقوق این مقاله به وبلاگ www.OpenGL.Blogfa.com و مترجمین آن تعلق دارد. لعنت به کسانی که بدون نام بردن از منبع ترجمه کننده آن را در وبلاگ یا سایت خود قرار میدهند. بدیهی است که دوستان میتوانند با نام منبع و مترجم مطالب را در وبلاگ یا سایت خود منتشر نمایند

 

+ نوشته شده در  دوشنبه بیستم شهریور 1385ساعت   توسط ( ساسان و محمد )  | 

مقالات آموزش OpenGL قسمت دهم

مقالات آموزش OpenGL قسمت دهم. این مقاله توسط دوست عزیزم آقای محمد عباسی ترجمه و تایپ شده است. ضمن تشکر از این دوست عزیز این مقاله را به همه دوستان و علاقمندان تقدیم میکنم.

 

كشيدن خطوط در فضاي سه بعدي :

 

در درسهاي قبل با تابع GL_POINTS آشنا شديم و ديديم كه ميتونيم از اون براي كشيدن  نقطه اي در فضا استفاده كنيم.در اين درس چگونگي رسم يك خط با استفاده از دو راس ( vertex) رو در فضاي سه بعدي ياد ميگيريم. اين كار رو با استفاده از تابع GL_LINES انجام ميديم. تكه كد زير خطي را بين دو نقطه (0 , 0 , 0 ) و (50 و 50 و 50 ) براي ما رسم ميكند.

 

                                                           

 

دقت كنيد كه براي رسم هر خط بايد دو نقطه تعريف شود.

نكته : اگر تعداد نقاط تعريف شده فرد باشند تابع  GL_LINES نقطه آخر را به حساب نمي آورد.

 

در نمونه پايين تكه كدي پيچيده تر را ميبينيد و در آخر نتيجه حاصل از كد را :

 

           

 

            

  

                            

 

                                برای خواندن کل مطلب بر روی ادامه مطلب کلیک نمایید.

 

 


ادامه مطلب
+ نوشته شده در  شنبه هجدهم شهریور 1385ساعت   توسط ( ساسان و محمد )  | 

مقالات آموزش OpenGL قسمت نهم

با عرض سلام خدمت دوستان و خوانندگان همیشگی وبلاگ :

 

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

 

تعيين سايز نقاط در OpenGL :

 

زماني كه نقطه اي را در OpenGL رسم ميكنيد سايز آن يك پيكسل است. براي تعيين اين اندازه به

صورت دستي از تابع زير استفاده ميكنيم.

 

Void glPointSize (GLfloat size);         // this way

 

تابع glPointSize تنها يك مقدار ميگيرد و اين مقدار تعيين كننده ضخامت نقطه ماست.  دقت كنيد اين مقدار محدوديت دارد. تكه كد زير براي تعيين محدوده ي سايز نقاط و همچنين تعيين فاصله بين آنها بكار ميرود.

 

 برای مطالعه کل مطلب بر روی ادامه مطلب کلیک نمایید.

 


ادامه مطلب
+ نوشته شده در  سه شنبه چهاردهم شهریور 1385ساعت   توسط ( ساسان و محمد )  | 

آشنایی با یک بازی بی نظیر

با عرض سلام خدمت دوستان و خوانندگان وبلاگ :

 

لازم دیدم از بابت تاخیری که در ارائه مقالات جدید اتفاق افتاد از دوستان معذرت بخواهم. طبق برنامه قرار بود در این هفته یک مقاله جامع و کامل در مورد موتورهای گرافیکی و همچنین گیم انجین ها در وبلاگ قرار دهم. البته سعی میکنم تا آخر همین هفته آن را آماده کنم. فعلا درگیر نوشتن یک مقاله در مورد مقایسه DirectX و OpenGL هستم. تا آن را به عنوان جوابیه ای به مقالات پوچ و بی معنی سید علی الحسینی برای مجله دانش و کامپیوتر بفرستم. شخصی که بدون داشتن دانش کافی تنها بدین دلیل که به یک تریبون رایگان دسترسی دارد به اشاعه نظرات و علایق شخصی خویش در قالب حقایق مسلم دنیای سه بعدی میپردازد. و در این رهگذر امکان دارد اشخاصی که تازه قصد ورود به این وادی را دارند گیج و سردرگم شده و با خواندن این مقالات راه ناصواب را در پیش گیرند. واقعا متاسفم که در جامعه ای زندگی میکنم که افراد آن تنها بر حسب علایق شخصی خویش دیگران را راهنمایی میکنند و هیچگاه تمام واقعییت را در اختیار فرد راهنمایی شونده قرار نمیدهند و تنها سعی میکنند با بزرگ نمایی نقاط قوت آن چیز و کتمان کردن یا کوچک جلوه دادن نقاط ضعف آن چیز آن را به عنوان انتخاب درست به دیگران معرفی نمایند. اما من چیز دیگری را میپسندم. یک انسان حق دارد تا از تمام جنبه های مثبت و منفی گزینه هایی که در پیش رو دارد مطلع شود و آنگاه با فکری باز از میان گزینه های حاضر انتخاب خویش را صورت دهد.

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

 

و اما دلیل پست امروز من چیز دیگری بود. قصد دارم در این پست دوستان را با یک بازی کوچک و سه بعدی مولتی پلتفرم به نام BillardGL آشنا سازم. البته خود من چند روز پیش و از طریق وبلاگ دوست عزیز آقا ایمان با آن آشنا شدم. این بازی که تحت لیسانس GPL قرار دارد به لطف بهره گیری از API قدرتمند و مولتی پلتفرم OpenGL توانسته تحت پلتفرم های گوناگون قابل اجرا باشد. حجم ورژن ویندوزی این بازی کوچک 791 کیلو بایت و حجم ورژن لینوکسی آن 695 کیلو بایت میباشد. ضمن اینکه سورس این بازی نیز برای برنامه نویسان علاقمند در دسترس میباشد. تا آنها که مایل به برنامه نویسی بازیهای کامپیوتری تحت لینوکس هستند بتوانند با مطالعه آن از آن الگو بگیرند. برای دریافت این بازی و سورس آن میتوانید به سایت رسمی آن مراجعه نمایید.

 

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

این بازی در عین سادگی بسیار زیباست و من حقیقتا از حجم بسیار پایین آن تعجب کردم.

 

تا بعد خدانگهدار. موفق و موید باشید

 

+ نوشته شده در  دوشنبه سیزدهم شهریور 1385ساعت   توسط ( ساسان و محمد )  | 

مقالات آموزشی گرافیک کامپیوتری و سه بعدی ( قسمت هفتم )

با سلام خدمت دوستان و خوانندگان همیشگی وبلاگ OpenGL و گرافیک کامپیوتری :

 

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

 

 

مدل سه بعدی ( 3D Model ) چیست ؟

 

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

 

مدل های سه بعدی اغلب توسط نرم افزارهای ویژهء کامپیوتری که مدلساز سه بعدی (3D Modeler) نامیده میشود ایجاد میگردند. البته مدل های سه بعدی را میتوان با دست نیز طراحی کرد. بهر حال آنها اغلب بطور مجازی وجود دارند ( بر روی یک کامپیوتر یا یک فایل بر روی دیسک ). حتی یک توصیف از چگونگی مدل بر روی کاغذ میتواند یک مدل سه بعدی را نمایش دهد.

 

مدل های سه بعدی بطور زیادی در جاهایی که از گرافیک سه بعدی استفاده میشود کاربرد دارند. در حقیقت مدل های سه بعدی قبل از رایج شدن گرافیک سه بعدی در کامپیوترهای شخصی نیز کاربرد داشته اند. بسیاری از بازیهای کامپیوتری از تصاویر از پیش رندر شدهء مدل های سه بعدی به عنوان اسپریت (Sprite) استفاده میکردند. البته این مربوط به زمانی است که کامپیوتر ها هنوز توانایی رندر کردن real-time را نداشتند.

 

 

برای مطالعه کل مطلب بر روی ادامه مطلب کلیک نمایید. 

 

 


ادامه مطلب
+ نوشته شده در  پنجشنبه نهم شهریور 1385ساعت   توسط ( ساسان و محمد )  | 

آشنایی با کتابخانه قدرتمند و اوپن سورس SDL

آشنایی با کتابخانه اوپن سورس و قدرتمند SDL

 

 

"SDL" مخفف "Simple DirectMedia Layer" یک کتابخانه مالتی مدیای کراس پلتفرم است که انتزاعی بر روی پلتفرم های گرافیکی و صوتی و API های ورودی گوناگون ایجاد میکند و این قابلیت را در اختیار یک توسعه دهنده قرار میدهد که تنها یکبار بازیهای کامپیوتری و یا دیگر برنامه های مالتی مدیا را نوشته و بر روی پلتفرم هایی نظیر GNU/Linux, Windows, Mac OS Classic, Mac OS X, BeOS FreeBSD, OpenBSD, Solaris, QNX, IRIX, و تعدادی دیگر از پلتفرم هایی که بصورت غیر رسمی به SDL منتقل شده اند اجرا کنید. این کتابخانه قادر است که چیزهایی از قبیل ویدئو و رویدادها و صداهای دیجیتالی و CD-ROM و صوت و Thread ها و لود اشیا مشترک و شبکه و تایمر را مدیریت نماید.

 

 برای مطالعه کل مطلب بر روی ادامه مطلب کلیک نمایید.

 

 

 


ادامه مطلب
+ نوشته شده در  یکشنبه پنجم شهریور 1385ساعت   توسط ( ساسان و محمد )  | 

راه های برنامه نویسی سه بعدی در جاوا (قسمت اول JOGL )

با سلام خدمت دوستان و خوانندگان وبلاگ OpenGL & Computer Graphics :

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

 (( چگونگی استفاده از OpenGL در زبان برنامه نویسی جاوا ))

 

OpenGL for Java

 

"JOGL" مخفف عبارت Java OpenGL میباشد و یکی از کتابخانه های پوشاننده "Wrapper" بسیاری است که اجازه میدهند تا بتوان از OpenGL در زبان جاوا استفاده کرد. این کتابخانه هم اکنون در حال توسعه توسط تیم تکنولوژی بازی در شرکت "Sun Microsystems" میباشد.

 

"JOGL" برنامه نویسان را قادر میسازد که بتوانند به بیشتر قابلیتهای اوپن جی ال که در اختیار برنامه نویسان زبان سی قرار دارد دسترسی پیدا کنند. تنها استثنا در این مورد سیستم پنجره سازی و مدیریت پنجره توسط GLUT میباشد. (چون جاوا بطور ذاتی و درونی دو سیستم بنامهای AWT و Swing برای امور مرتبط با پنجره دارد.)

 

بطور کلی اساس OpenGL API که به کمک زبان سی ایجاد شده است از طریق فراخوانی های رابط بومی جاوا "JNI" در "JOGL" قابل دستیابی است. بدین لحاظ سیستمی که برای این منظور استفاده میشود میباید OpenGL را ساپورت نماید تا   "JOGL" قادر به کار کردن باشد.

 

"JOGL" از یک لحاظ با دیگر کتابخانه های پوشاننده OpenGL که برای جاوا تهیه شده اند تفاوت دارد. "JOGL" صرفا API رویه ای OpenGL را از طریق یکسری متد ها که بر اساس کلاسهای کمی بنا شده اند در اختیار میگذارد تا اینکه تلاش کند چگونگی کارکرد OpenGL را در قالب مدل برنامه نویسی شئ گرا ترسیم کند. در حقیقت بیشتر کد "JOGL" بطور خودکار از روی فایل های هدر (سرآیند) OpenGL ایجاد شده است و اینکار توسط یک ابزار تبدیل به نام "Gluegen" انجام شده است.

 

"Gluegen" در اصل بدین منظور برنامه نویسی شد که بتواند ایجاد و ساخت "JOGL" را تسهیل نماید. این نوع طراحی هم فواید و هم مشکلات خاص خود را به همراه دارد. رویه گرایی و ماشین حالت که جزیی از OpenGL هستند با متد های نمونه برنامه نویسی تحت جاوا تناقض دارد و برای بسیاری از برنامه نویسان پرزحمت است. البته این نگاشت ( API از سی ساخته شدهء OpenGL ) بر روی متد های جاوا کار تبدیل کد های باقی مانده از برنامه هایی که به زبان سی نوشته شده اند را بسیار آسان میکند.

 

لایه نازک انتزاعی که توسط "JOGL" مهیا شده است فرآیند اجرا شدن برنامه را بشکل موثری تضمین میکند. اما در سوی دیگر در مقایسه با کتابخانه های انتزاعی سطح بالاتر مانند Java3d از لحاظ کد نویسی بسیار سخت تر میباشد.

از آنجایی که بیشتر کد "JOGL" بطور خودکار و از روی فایل های سرآیند OpenGL تولید میشود هر تغییری در OpenGL را میتوان به سرعت به "JOGL" انتقال داد و این مزیت بزرگی است. ار ابتدای سال 2006 میلادی "JOGL" دسترسی کامل به قابلیتها و توانایی های OpenGL 2.0 را ممکن ساخت.

 

برای مطالعه کل مطلب بر روی ادامه مطلب کلیک نمایید.

 


ادامه مطلب
+ نوشته شده در  شنبه چهارم شهریور 1385ساعت   توسط ( ساسان و محمد )  | 

آشنایی با جان کارمک از بزرگان صنعت سه بعدی جهان

با سلام خدمت دوستان همیشگی وبلاگ :

 

خیلی وقت بود که دوست داشتم مقاله ای در مورد جان کارمک بزرگ مرد صنعت 3D ترجمه کنم و در وبلاگ قرار دهم. تا این که نظر آقا کوچول را خواندم و فهمیدم باید این کار را انجام بدهم. دنیایی که ما در آن زندگی میکنیم بسیار به افرادی چون جان کارمک و ریچارد استالمن و لینوس توروالدز و ... و خیلی های دیگر که الان در ذهنم نیست احتیاج دارد و به این مردان افتخار میکند. کسانی که همه چیزشان به رنگ پول نبود و در راه پیشرفت بقیه از هیچ کاری فروگذار نکردند. و این هم مقاله ای در مورد جان کارمک که از سایت ویکی پدیا برای شما دوستان ترجمه کردم.

 

 

بزرگ مرد دنیای سه بعدی : جان کارمک

 

John Carmack

 

جان دی کارمک دوم "John D. Carmack II" متولد بیستم آگوست سال 1970 شناخته شده ترین چهره در صنعت بازیهای ویدئویی میباشد. او حقیقتا یک برنامه نویس آمریکایی موفق و پرکار است. کارمک شرکت id Software را که یک شرکت توسعه بازیهای کامپیوتری میباشد در سال 1991 بنیان نهاد.

 

کارمک اولین برنامه نویس بازیهای افسانه ای شرکت id بود که بازیهایی همچون Wolfenstein 3D و  Doom و Quake و دنباله هایی برای دووم و کواک تولید کرد. تکنیکهای برنامه نویسی انقلابی جان کارمک با طراحی بازی بی نظیر جان رومرو "John Romero" ترکیب شد و این باعث شهرت زیاد سبک FPS در دهه 1990 شد.

 

جان کارمک و دوران جوانی : جان کارمک در محله " Shawnee Mission, Kansas" که قسمتی از ناحیه متروپولیتن شهر کانزاس بود بزرگ شد و در سنین خیلی کم دلبسته و عاشق کامپیوترها شد.او از دبیرستان شان میشن شرقی فارق التحصیل شد. بعد از آن کارمک به مدت دو ترم به دانشگاه میسوری واقع در شهر کانزاس پیوست. بعد از این مدت او دانشگاه را ترک کرد تا به عنوان یک برنامه نویس مستقل مشغول به کار گردد.

 

جان کارمک و برنامه نویسی بازیها : سافت دیسک که در آن زمان یک شرکت کامپیوتری بود کارمک را برای کار بر روی softdisk G-S که یک محصول از Apple IIgs بود استخدام کرد. در همین مکان بود که او با جان رومرو و دیگر اعضای کلیدی شرکت id مانند " Adrian Carmack" در سالهای بعد آشنا شد.

 

بعد از مدتی و انجام چند پروژه برای IBM و جاهای دیگر جان کارمک از شرکت softdisk خارج شد تا

Id software را بنیان نهد. جایی که هنوز هم در آنجا مانده. جان کارمک پیشگام در خلق بسیاری از تکنیکهایی بود که در گرافیک کامپیوتری به جا ماندند. مانند بخش بندی فضای دودویی که بازی دووم اولین بازی ای بود که از آن استفاده کرد. تکنیک دیگر پنهان سازی سطوح " surface caching" بود که آن را برای بازی کواک ابداع کرد. از دیگر تکنیکها میتوان به تکنیک " Carmack's Reverse" اشاره کرد که در دووم 3 بکار گرفته شد و همچنین تکنیک " MegaTexture" که " Enemy Territory: Quake Wars" برای اولین بار از آن استفاده کرد.

 

 

 

برای مطالعه کل مطلب بر روی ادامه مطلب کلیک نمایید. 

 


ادامه مطلب
+ نوشته شده در  پنجشنبه دوم شهریور 1385ساعت   توسط ( ساسان و محمد )  | 

مطالب قدیمی‌تر