سرهم کردن کامپیوتر برای اولینبار برای هر فردی میتواند چالشبرانگیز باشد که البته عادی است. برای همین اگر قصد چنین کاری دارید، میتوانید این مقاله را بخوانید تا بدانید بهترین سیستمی که میتواند با بودجهای ۵۰۰ دلاری (حدود ۱۲٫۵ میلیون تومان) سرهم کرد چه اجزایی میتواند داشته باشد. این سیستمهایی که در ادامه گفته خواهد شد میتوانند بهترین بازیهای دلخواه شما را با کیفیتی خوب اجرا کنند. چه پردازنده اینتل و چه AMD، هردو در این لیست حضور دارند.
در این روزها خیلیها متعجب خواهند شد که چطور میتوان با بودجهای ۵۰۰ دلاری، سیستمی بست که بتواند بهترین بازیهای کامپیوتری را اجرا کند. گذشت آن روزهایی که فقط کنسولهای بازی قابلیت اجرای بازیها به بهترین شکل را داشتند. امروزه به دلیل پیشرفت تکنولوژی در حوزه پردازندهها و بازار وسیع و رقابتی، شرکتهای ساخت سختافزار، برای اینکه کاربران و مشتریان بیشتری داشته باشند، محصولاتی با کیفیت و عملکرد بهتر تولید میکنند.
نظرات
دوستان به بهانه ی این پست که مهدی عزیز زحمت کشیده و روی سایت قرار داده، می خوام یه توضیح مختصری بدم راجع به CG یا همون گرافیک کامپیوتری.سعی کردم به زبون ساده بگم که و وارد جزییات نشم. اینکه این Asset های(اشیا فیزیکی و کلا ۳D Mesh ها یا همون اجسام ۳ بعدی درون بازی، تصاویر و متریال ها و کد های گرافیکی…) درون بازی ها، از کجا اومدن؟ خب شاید جواب بدید که این ها از طریق نرم افزار های ۳D مثل Maya، Zbrush, 3DSmax، Blender و … درست می شن وبعد وارد انجین بازی می شن و درنهایت درون Level های یک بازی می شن و به همراه بازی لانچ می شن. درسته همینطوره، ولی این نرم افزارهای ۳D اصولا این Asset ها رو به چه صورت می سازن؟ این اشکال هندسی یا درواقع Geometry و یا Mesh ها رو از کجا میارن؟آیا تمام این Asset عا به صورت Pre-Define (از پیش تعریف شده) درون کارت های گرافیک و در واقع GPU ها قرار دارند و ما با استفاده از چند کلیک ساده در نرم افزارهای ۳D این احجام و Mesh ها رو می سازیم؟اینکه مثلا کاراکتر Joel در بازی لست رو چطور ساختن و با چه امکاناتی ساختن که الان ما اونو در بازی می بینیم و چنان واقع گرایانه ست که سرنوشتش درون بازی تا مدت ها روی ما تاثیر می زاره؟ کی یا درواقع چه چیزی امکان ساخت Joel رو به نرم افزارهای ۳D داده؟ حالا میگیم ۳D Mesh های پر جزییات و پیچیده ای مثل انواع کاراکترهای درون بازی ها و Geometry های تو در تو به کنار، اصلا اگه بخوایم یه خط صاف و ساده بکشیم، کی این خط رو در اختیار ما می ذاره؟ جواب اینه که این Geometry ها نه در GPU ها قرار دارن و از پیش ساخته شدن و نه در نرم افزارهای ۳D.
پس پشت پرده ی خلق تمام این Asset های درون بازی ها و انیمیشن ها و کلا هر چیزی که مبتنی بر گرافیک کامپیوتر باشه، چه چیزی قرار داره؟ خدا؟ پیغمبر؟ سونی؟ مایکروسافت؟ نینتندو؟
جواب اینه: هیچکدام، اصولا یه API گرافیکی یا درواقع رابط بین ما و GPU به اسم OpenGL. یا همان Open Graphics Library که به طور ساده میشه یک کتابخانه ی گرافیکیه اُپن سورس. منظور از کتابخانه یا همون Library ها اگه بخوام خیلی ساده و خلاصه بگم، یک سری کد های برنامه نویسی هستن که از پیش تعیین و تعریف شدن که ما از اون ها در برنامه ای که خودمون کدش رو می خوایم بنویسیم، استفاده کنیم، درواقع هر برنامه ای که می خوایم کدنویسی کنیم نیاز به حداقل یک کتابخانه ی مرتبط با برنامه مون داره.
Open یا Open Source هم که درواقع به برنامه ها، نرم افزارها، API هایی می گن که محتواش توسط یوزر قابل تغییره و یوزر می تونه بسته به نیازش، کدهای سورس یا همون منبع رو دست کاری و کاستوم کنه.
حالا چه چیزی درون این API گرافیکی مون یا همون کتابخانه ی گرافیکی مون یعنی OpenGL قرار داره؟اصولا از کجا اومده؟ اولین بار کی این کتابخانه ی ارزشمند رو برای ما ساخته؟
درواقع درون این کتابخانه یک سری Function ها یا توابع به زبان برنامه نویسی C هست، که ما می تونیم با استفاده از این فانکشن ها درون برنامه مون و به کمک زبان برنامه نویسی ++C ، یک سری تصاویر گرافیکی خلق کنیم، از Joel گرفته تا یک خط صاف و ساده. در واقع نرم افزارهای ۳D با استفاده از این کتابخانه ی گرافیکی کد نویسی می شن و می تونن انواع Asset ها رو بسازن. البته OpenGL هم خودش از یک سری کتابخانه ی دیگه، علاوه بر کتابخونه های اختصاصی و اصطلاحا Built-in خودش هم استفاده می کنه، مثلا اساسی ترین کاری که قبل از ترسیم هرگونه گرافیکی باید انجام بدیم، درست کردن یه بستر برای اینکه این Geometry ها درونش ترسیم بشن، در واقع یک Window یا پنجره ای که تشکیل شده از یک سری مربع های ریز به نام پیکسل باید ساخته بشه. OpenGL ساخت این صفحه ی نمایش مون رو از طریق یک کتابخونه به نام GLFW یا همون Graphic Library FrameWork که خودش گردآوری کرده، انجام می ده.
بعد از درست کردن این پنجره (یا همون صفحه ای که قراره انواع هندسه های مختلف تووش ترسیم بشه که اصطلاحا بهش Viewport می گن) حالا این امکان رو داریم که با استفاده از یکسری فانکشن ها و درواقع کدهای OpenGL یک سری خط و نقطه و مثلث و چهارضلعی(دوتا مثلث که از سمت قاعده به هم چسبیده اند) ترسیم کنیم. به این اشکال هندسی ساده Primitive می گن. و برای ساخت انواع ۳D یا ۲D Mesh ها باید از یکی از این Primitive ها استفاده کنیم و کل هندسه مون رو بسازین، یعنی جناب Joel رو باید با استفاده از یک سری مثلث (Triangle) و یا چهارضلعی (Rectangle) خلق کنیم. تصور اینکه چطور از طریق یه مثلث ساده۲D به ۳D Mesh های پیچیده برسیم شاید سخت باشه، اما اینطوری تصور کنید که روی سطح پوست خودتون مثلث های کوچیک ترسیم شده باشه که هر کدوم به جهت پر کردن فضای خالی روی پوستتون، به سمت و سویی چرخیدن، مجموع تمام این مثلث های کوچیک کل پوست بدن شما رو پر می کنن و درواقع کل بدنتون به وسیله ی همین مثلث های ساده خلق می شه. حالا سوال اینه که چرا مثلث؟ اصولا مثلث ساده ترین هندسه ای هست که با تعداد کمی Vertex (رئوس مثلث که ۳تا هستن) می تونه سطح Mesh مورد نظر رو بپوشونه و اونو بسازه، و اگه دقت کرده باشید انواع Geometry های مختلف از ترکیب مثلث ها ساخته می شن، مثل یک ۴ ضلعی که درواقع دوتا مثلث کنار هم است. ضمنا هر کدوم از این راس ها درون Viewport مون دارای یک مختصات سه بعدی یا ۳D Coordinate مشخص است که مکان اون راس یا همون Vertex رو برای ما مشخص می کنه، و می تونیم تعین کنیم این مثلث در کجای Viewport مون قرار بگیره.
در ادامه یک سری عملیات ها روی این مثلث ها و در واقع Vertex ها اتفاق می افته که جزییاتش در اینجا ذکر نمی کنیم، جزییاتی مثل ، Shade شدن توسط کدنویسی کردن یک Shader با استفاده از زبان برنامه نویسی GLSL که مخصوص OpenGL است ، ویژگی های ظاهری این مثلث، مثل رنگ اون ها مشخص میشه و بعد وارد Render Loop می شه و روی Viewport مون ظاهر میشه و ما اونو می بینیم. یه سوال دیگه ای که پیش میاد اینه که چطور روی صفحه ی نمایش ما که اصولا دو بعدی است و فقط یک طول و یک عرض داره، می تونیم انواع ۳D Mesh ها را خلق کنیم و به صورت ۳ بعدی اون ها رو ببینیم، حالا چه نمایش تصویر در یک فریم باشه(یک تصویر به صورت یک عکس) و یا نمایش مجموعه ای از تصاویر در فریم های مختلف باشه(انیمیشن).
جواب ساده ست، توهم!!!
ما هیچ گونه تصویر ۳ بعدی کامپیوتری که علاوه بر طول و عرض، دارای بعد هم باشد نداریم. در واقع این هندسه های سه بعدی طوری در صفحه ی نمایش ترسیم می شن که ما اون ها رو ۳ بعدی ببینیم. مثل این می مونه که شما روی یک کاغذ ۲ بعدی بخواید یک مکعب ۳ بعدی بکشید. خب کاغذ ما که مطمئنا ۳ بعد ندارد و فقط دارای طول و عرض است، بنابراین مکعب را طوری ترسیم می کنیم که باتوجه به زاویه دید باعث فریب دادن چشم و مغز ما بشه و این توهم رو بزنیم که یک بعد اضافی داریم می بینم. خیلی ساده بگم که نمای ۳D چیزی جز خطای دید نیست.
پس فهمیدیم که هر نرم افزار، گیم انجین و یا برنامه ای که قرار است یک سری هندسه های ۲ بعدی و ۳ بعدی ترسیم کند، باید کدهای برنامه اش را با استفاده از این کتاب خانه های گرافیکی بنویسد. ضمن اینکه هر پلتفرمی هم که قراره این هندسه ها رو نمایش بده(مثلا کنسول ها) باید مجهز به این کتابخانه های گرافیکی باشه، تا واسطه ای باشه بین ما و GPU برای نمایش انواع Geometry ها.
چه کسی این OpenGL رو درست کرده و یک همچین خدمت بزرگی رو به بشریت کرده؟ یک کمپانی کامپیوتری به نام Silicon Graphics که خیلی ها حتا اسمش هم نشنیدن، در صورتی که اگر اون ها نبودن، سرنوشت گرافیک کامپیوتری معلوم نبود به کجا ختم میشه. اون ها اواخر دهه ی هشتاد میلادی به قصد کارهای تحقیقاتی در زمینه ی گرافیک کامپیوتر یه API ساختن به نام IRIS GL، که کار با اون بسیار پیچیده و سخت بود، به تدریج با ورود کارت های گرافیکی و بعد ها GPU ها به بازار سخت افزار کامپیوتر و اینکه هر کامپیوتر حتا یک کامپیوتر خانگی هم دارای کارت گرافیک شد و درواقع کارت های گرافیک از جنبه ی تحقیقاتی به کاربرد تجاری رسیدن، این شرکت تصمیم گرفت که اون کتابخونه ی IRIS رو تغییراتی درش بده و یوزر فرندلی تر کنه که همه بتونن به راحتی ازش استفاده کنن، این بود که سال ۹۲ نسخه بهبود یافته ی این کتابخانه گرافیکی یعنی OpenGL رو داد که از روز اول هم مجانی بود و نیازی به خرید لایسنس نداشت و هرکسی می تونست اونو داشته باشه، و بدین ترتیب این کتابخونه به صورت دیفالت به همراه کارت های گرافیک و GPU ها بر روی سیستم عامل عرضه می شد. امروزه هم هر کامپیوتر و یا هر کنسولی رو که بگیریم، چه بخوایم و چه نخوایم این OpenGL رووش هست، اابته به جز کنسول های مایکروسافت که می گم چرا ندارن.
با همه گیر شدن گرافیک کامپیوتری شرکت های بزرگ و معروفی که در زمینه ی گرافیک، بازی سازی، و سخت افزار فعالیت داشتن، مثل اپل، انویدیا، AMD، اینتل، IBM، مایکروسافت، سامسونگ، سونی و کلا هر شرکت کامپیوتری و گرافیکی بزرگی که فکرش رو بکنید جمع شدن و گفتن بیاید به همراه هم و در کنار شرکت Silicon Graphics که خالق OpenGL بود، این کتابخونه ی گرافیکی رو مدیریت کنیم، یعنی استاندارد سازی کردن و با پیشرفت سخت افزار و GPU ها، کدهای OpenGL رو آپگرید کردن و شرکت های مختلف فانکشن ها و درواقع اکستنشن های خودشون رو برای OpenGL ساختن و خلاصه یه زبان گرافیکیه هماهنگ و استاندارد رو ساختن و تا الان هم ساپورت می کنن، تا الان که ورژن ۴٫۸ این کتابخونه اگه شماره ورژن رو اشتباه نکنم روی GPU های جدید هست. و در واقع وقتی می گن درایور GPU رو نصب کنید یا آپدیت کنید به خاطر آپدیت و نصب همین کتاب خونه های گرافیکی می گن.
کم کم بقیه ی شرکت های بزرگ اومدن و کتابخونه های اختصاصی خودشون رو هم ساختن. مثل اپل که کتابخونه ی گرافیکی به نام Metal رو ساخت که فقط مخصوص محصولات خودشه، و مایکروسافت هم کتاب خونه ی گرافیکی خودش رو ساخت که همه ی ما اسمش رو حداقل شنیدیم، DirectX. که علاوه بر ویندوز روی کنسول های xbox هم قرار داره، و اصولا بازی های تحت کنسول حتما باید با استفاده از DirectX ساخته بشن. پلی استیشن و نینتندو از OpenGL استفاده می کنن.
ولی آیا فرقی بینشون هست؟ خیر، هردو کیفیت های یکسانی دارند. اصلا یکی از دلایلی که بازی های اکس باکس روی پی اس اجرا نمیشه و البته برعکسش، اینه که هر کدوم با API گرافیکی مخصوص به خودشون ساخته شدن. درسته که از لحاظ نتیجه ی کار شبیه به همند، ولی کدها و فانکشن ها کلا با هم فرق می کنن. البته یک سری کتابخانه های گرافیکی دیگه ای هم هست که اصولا انحصاری شرکت های سازنده هستن و خیلی کمتر عمومیت دارن. مثل Renderman که درواقع API و رندر انجین شرکت پیکساره که انیمیشن های فوق العاده ای رو باهاش ساخته، می تونم بگم که Renderman کمی بالاتر از OpenGL و DirectX قرار می گیره از لحاظ کیفیت خروجیه گرافیک، باهاش کار می کنم و واقعا فوق العادست در خلق گرافیک کامپیوتر و رندرینگ. اما چرا بازی ها ازش استفاده نمی کردن؟ چون لایسنسش بسیار بسیار گرونه، و وقتی OpenGL و DirectX مجانی هست چه لزومی داره از یه کتابخونه ی گرافیکی پولی استفاده کنیم. این API جز اولین هایی بود که ساخته شد و تاثیر زیادی ازش گرفتن، اواسط دهه ی نود ساخته شد. و از سال ۲۰۱۶ به بعد به صورت مجانی در اختیار کسانی قرار می گیره که قصد ساخت نرم افزار یا گیم غیر تجاری دارن.
در حال حاضر یه کنسرسیوم به نام Khronos که شامل تمام شرکت عای بزرگه، OpenGL رو مدیریت و آپدیت می کنن. و جالب اینجاست که شرکت Silicon Graphics که با ساخت این کتابخونه گرافیکی که به صورت مجانی در اختیار همه گذاشت، خدمت بزرگی به بشریت کرد ولی در سال ۲۰۰۹ منحل شد.
سوال آخری که پیش میاد اینه که خوده OpenGL این فانکشن ها رو چطور فراهم کرده؟ مثلا وقتی می خوایم یک مثلث با استفاده از Vertex Data ها ترسیم کنیم پس از عبور از Shader های برنامه می توانیم با استفاده از یک فانکشن که کارش Draw کردن Primitive هاست یک مثلث ترسیم کنیم. اصولا کدهای تعریف این فانکشن درون فایلی جداگانه به نام Header به زبان برنامه نویسی C نوشته شده اند. و اگر بخوایم خیلی ساده بگیم نتیجه این کدها برای فانکشن Draw این است که، به کامپیوتر می گوید پیکسل های درون صفحه ی نمایش رو به شکل یک مثلث، رنگی متمایز با رنگ بقیه پیکسال ها به آن بده، که این پیکسل های رنگ شده درواقع Geometry ما را می سازن.
امروزه با تخصصی تر شدن انواع دیوایس های مختلف، این کتابخونه های گرافیکی هم به طور اختصاصی فقط برای دیوایس مورد نظر درست شده اند، مثلا گوشی های موبایل و کنسول ها از ورژن تخصصی تر openGL که مختص این دیوایس هاست استفاده می کنن، اسمش هست OpenGL ES
در پایان بگم، یادگیریه کار با OpenGL رو اگر علاقه مند عستید پیگیری کنید، چون واقعا لذت بخش و شیرینه که بتونید Base گرافیک کامپیوتر رو خلق کنید. ضمن اینکه می توانید از طریق OpenGL انواع نرم افزارهای گرافیکی رو بسازید.
ممنونم از وقتی که برای مطالعه گذاشتید.
بسیار عالیه توضیحاتتون دوست عزیز
این الان توضیح مختصر بود؟ اندازه یه کتاب نوشتی ولی خسته نباشی
گادفال :-/
خداوکیلی چیکار به گادفال داری؟
چه ربطی داشت :rotfl: :rotfl:
حضرت عباسی الان یه کمله حرف من به گاد فال ربط داشت ؟ در ضمن من گاد فال رو بازی کردم سیستم مبارزاتش از هل بلید ۱ خیلی بهتر بوده انشاله میاد رو گیم پس تجربش کنی
بسیار عالی :yes:
سایت به همچین کاربر هایی نیاز داره
بسیار پشم ریزون بود دوست عزیز ، چه اطلاعات نابی :yes:
دمت گرم توضیحاتت عالی بود ولی این نکته رو باید ذکر میکردی که هر پالیگان جدا رندر نمیشه و وقتی این اتفاق میفته که روی تری دی مدلش( مثلا جوئل) قرار بگیره
همچنین هرکدوم هم جدا shader ندارن
البته بستگی به لایتینگ اون CG داره
رندرینگ یه وادیه پیچ در پیچی داره واسه خودش که اصلا نمی خواستم واردش بشم و ازش گذشتم، پلی گان های یه ۳D Mesh یا همون Primitve ها مون (مثلث ها یا ۴ ضلعی های تشکیل دهنده ی Mesh) بدیهیه که جدا جدا نباید رندر بشن، چون اصلا بی معنی میشه، نمیشه که مثلا جول پا نداشته باشه. و اینکه پلی گان ها خودشون تشکیل دهنده ی مدل های ۳D هستن، یعنی ۳D مدل ها توسط یه چیز دیگه ای ساخته نمی شن که بعد پلی گان ها بیان رووش بشینن. خوده این پلی گان های ۲ بعدی هستن که مدل ها رو می سازن و بعد تکستچرها به وسیله ی شیدر روی مدل ساخته شده از پلی گان ها می شینن و به مدل رنگ و Shade و عمق می دن. برای هر ۳D Mesh با توجه به جنسش می تونی از هر Shader ی که بخوای استفاده کنی، یعنی در یک Level مشخص در بازی، آبجکت های مختلف می توانند Shader های مختلف داشته باشن، که باید هم همینطور باشه، Shader سنگ با مثلا Shader شیشه دو چیز متفاوت هستن. ولی اگه منظورت هر پلی گان Shader جداگانه نباید داشته باشه که درسته، بدیهیه که نباید برای هر پلی گان یک Shader جدا بذاریم، هر ۳D مدل گاهی تا چند میلیون پلی گان می تونه داشته باشه، و نمیشه برای هر پلی گان یه Shader بذاریم. ولی مثلا جول می تونه چندتا Shader داشته باشه، مثلا shader مربوط به تکستچر اون کاپشن معروف قهوه ایش حتما با Shader پوست بدن و مشخصا صورتش فرق داره.
کلا Shading و Lighting و رندرینگ بخش های مفصلی هستن، که در اینجا کاری بهشون نداشتم. فقط می خواستم بگم که وقتی یک خط ساده در یک نرم افزار ۳D می کشیم از کجا اومدند.
سلام، خسته نباشید.
تشکر ویژه و خدا قوت، بازم توانستید اطلاعاتتان رو با ما به اشتراک بگذارید.
در پناه خدا
من کپی کردم بعدا بخونم خیلی زیاده ولی دمت گرم به اطلاعاتمون اضافه کردی بیشتر کامنت بزار
سپاس :rose:
ممنون از توضیح مختصرت +)
فوق العاده بود دوست عزیز :yes:
لطفا در مورد این موضوعات بیشتر کامنت بذارید
داداش خسته نباشی
فقط مقاله تو دیدم یه لحظه قلبم درد گرفت 😀 😀
ولی دمت گرم
واقعا بهترین پلتفرم برای بازی کامپیوتر هست منی که کنسول هم دارم میگم pc خیلی بهتره تا کنسول چرا چون تو میتونی قطعات pc عوض کنی و کنسول نه ولی خب معایبی هم داره معایبش اینه که با توجه به شرایط اقتصادی کشور که قطعات گرونن و گرنه تو کشور های غربی و شرقی فرقی نمیکنه بیشتر با pc بازی میکنند
ددش این درسته که اونور اکثرا پیسی دارن ولی تنها پیسی هم ندارن
بمولا همشون یه پلی ۴ یا حتی ایکس باکس هم دارن کنارش
خیلی شرایط واسه اونا راحت تره
دقیقا
بیشتر ps4 دارن که اونم بخاطر انحصاری های خفن سونی هست
عالی
این مقاله به شدت تخیلی و کاملا مشخصه یا ترجمه اس یا توسط یه نااشنا به بازار ایران نوشته شده
هر کسی این سیستم رو با ۱۲.۵ میتونه تهیه کنه من ازش چهارده میلیون میخرم به هر تعداد
۱۶۶۰ فقط الان بالای شونزده هفده میلیون قیمتشه حداقل
در هر حال دارید مقاله به زبان فارسی و ایران مینویسید نه امریکا
آقا اینارو ولش کن فقط ps6 با سپاس