رفتن به مطلب

Javadmpower

کاربر سایت
  • پست

    632
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    1
  • بازخورد

    100%

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

  1. ایا سری8 رو میشه روی z170 سوار کرد؟ واقعا مهمه الان برام
  2. Javadmpower

    خریدار 980ti

    سلام دوستان یه 980ti سالم بدون دستکاری و اوور نیازمندیم ترجیحا گارانتی دار مچکر
  3. میشه حدود 3400 درضمن منم 1155 داشتم و الکی مفت فروختم 1151خریدم و هیچی هم غیر ضرر گیرم نیومد این سیستم غول نیازی به ارتقا نداره با3 ملیون شاید بشه یه سیستم جدیدتر خرید ولی نه core i7
  4. Javadmpower

    AMD VEGA

    تشکراز اقا وحید گل که با ایه و حمد خدا شروع کردن و فقط نمیدونم چرا اینقدر که ما دوسش داریم یه اسم کاربری پرمحتوا ورداشته
  5. بسیار خرسندیم و ،،هرروز بهتراز دیروز،، صاایران
  6. خیلی عالی اما فک نمیکردم‌ این اتفاقا بیوفتن میترسم‌کم کم همین 16گیگ هم کم بیاد
  7. عجیبه برام رم خوره دارن بعضی بازیا انگار
  8. همون fhd یا نهایتش 2k البته اگه درمورد 4k هم توضیح بدین که دقیقا رزولوشن بالا چطور باعث افزایش فشار روی رم‌ میشه ممنون میشیم
  9. سلام جناب رسا

    خوبین

    یکی از دوستان یه سری کارت 

    Gigabyte 1060 wf2 oc 6gig

    3سال اواژنگ داره بقیمت 1255

    که‌من خودم یکیشو خریدم

    اگه کسی خاست درخدمتیم

    03134250354

    یاس رایانه

    سلطانی

    1. vampire.kain

      vampire.kain

      سلام برادر

      من عالیم شما خوبی؟ خوشی؟

      انشاا.. اگر کسی از دوستان خواست حتما

      مرسی

    2. Javadmpower

      Javadmpower

      چاکریم مخلصیم

  10. سلام چرا گیمرها بیش از 8 گیگ رم میخرن؟ من خودمم کلی پول دادم و 4تا 4 گیگ gskill خریدم وقتی در یک زمان فقط یه بازی اجرا میکنیم چه دلیلی داره که رم پر بشه و 8گیگ کم بیاد؟ بعضیا هم که میگن فقط trident Z دوست دارم اونم 3200 باس !!
  11. اینجوری واقعا بد گیرمیاد دوست نزدیک من یه گیگا اکستریم رو 2400 خرید یکماه پیش البته اون مدل زیادی گرونه
  12. دوست عزیز من همممممممه جور گوشی داشتم از ایفون بگیر تااااا بهترین سونی ها و.... الان هیچی مثل شیاومی mi5 64 gig بصرفه نیست همه مشخصاتش هم همونیه که میخای خودمم دارم رام گلوبال بخر حدود 940 تومنه مشکی گرونتره البته رابط کاربری خیلی حرفه ای میخای فقط هواوی که برند مورد علاقه منه
  13. این کارت رو اگه 700 بفروشی خیلی شیرین فروختی بنظرم‌ نهایتش 700 هست و کمتر من شخصا 290x غیر رفرنس رو به این کارت ترجیح میدم همینطوری گفتم
  14. منم میبرین خنده وانه؟ اخه مخم تاب ورداشت با این تاپیک
  15. ای اقا شما که clever هستی دیگ چرا
  16. بسیاری از کارت‌های گرافیک قابلیت share یا اشتراک گذاری دارند، به این صورت که مثلا شما کارت گرافیک 1 گیگابایتی دارید اما اگر به اندازه کافی رم داشته باشید (مثلا 4 گیگابایت)، کارت گرافیک به اندازه مشخصی (هر چقدر که بتواند share کند) از رم سیستم برای پردازش گرافیکی استفاده می‌کند، حال این موضوع چه ربطی به نرم افزار eboostr دارد؟ مثلا شما می‌توانید از فلش مموری خودتان که گوشه‌ای افتاده و در حال خاک خوردن است به عنوان رم سیستم استفاده کنید ( WOW! ). به این صورت که نرم‌افزار را نصب و اجرا می‌کنید. سپس به راحتی هرچه تمام‌تر فلش مموری را به سیستم متصل و در برنامه eboostr گزینه configure را تیک زده و فلش مموری خودتان را انتخاب می‌کنید. بعد تیک گزینه use this device for caching را زده و مشخص می‌کنید که برنامه چه مقدار از فلش مموری شما را به عنوان رم سیستم استفاده کند. سپس apply را زده و منتظر می‌مانید تا برنامه دستورات را اجرا کند. حال کار تمام است و هر موقع که فلش مموری متصل باشد و برنامه در حال اجرا، به همان مقداری که مشخص کرده‌اید به رم سیستم شما اضافه خواهد شد و در نتیجه سیستم به اندازه کافی فضای خالی در اختیار دارد تا کارت گرافیک شما از آن فضا برای پردازش گرافیکی استفاده کند. حال برای اینکه بفهمید کارت گرافیک شما به چه اندازه ای قابلیت share دارد، در ویندوز 7 روی دسکتاپ راست کلیک کرده و screen resolution را بزنید، سپس advanced settings را انتخاب کرده و در مقابل shared system memory مقداری که کارت گرافیک شما می‌تواند از رم به عنوان پردازش گرافیکی استفاده کند را ببینید. این روش بیشتر برای کسانی موثراست که رم سیستم آن‌ها از ۴ گیگابایت کمتر باشد ( ولی این دلیل نمی‌شه که اگر سیستم شما مقدار رم بیشتری داره از این قابلیت استفاده نکنید، بالاخره سنگ مفت گنجشک مفت! بزنید شاید فرجی شد!! درضمن این قابلیت در ویندوز 7 و 8 به صورت پیش فرض در قالب برنامه‌ای به اسم readyboost وجود دارد ولی چون استفاده از این برنامه کارایی بیشتری از readyboost ویندوز دارد، ترجیح دادم که آن را توضیح دهم.
  17. امیدوارم مطلب شیرینی باشه چون خودم کیف کردم
  18. Javadmpower

    مشکل لگ

    سیستم شما باندازه کافی ضعیف و قدیمی هست اگه این مشکل قبلا نبوده و جدیدا اتفاق افتاده کابل دیتا و خود هارد رو چک کنین که عمرشون حتما خیلی بالاس
  19. دو نوع اطلاعات از لحاظ استفاده در بازیها داریم (هرچند که تعداد انواع این اطلاعات بسیار بیشتر از دو نوع هستش ولی در اینجا اشاره به دو نوعش کافی هستش) : یک سری از اطلاعات باید در زمان لود شدن مراحل و قرار گرفتن بازیباز در مرحله لود بشن...این اطلاعات مواردی مثل بافت اسلحه ها , بافت زمین و محیط اطراف , فایلهای موسیقی و صوتی بازی و غیره هستن که قبل از اینکه بر روی RAM قرار بگیرن باید از روی Hard Drive و یا از روی Optical Disk خونده بشن... نوع دوم اطلاعاتی هستن که به اصطلاح بصورت Real-Time در حال اجرا شدن هستن (و شامل اطلاعات نوع اول هم هستن)...این اطلاعات مواردی مثل مختصات قرار گیری بازیباز , میزان جان باقیمانده ی وی , تعداد مهمات , مختصات نورپردازی بازی , محاسبات مربوط به Shader های بازی و غیره هستن که از روی Hard Disk و یا Optical Disk خونده نمیشن...این اطلاعات در طول اجرا شدن بازی توسط موتور بازی در داخل RAM قرار میگیرن و هی بر روی اونها محاسبات مختلف انجام میگیره... در متن قبل من به مهمترین تفاوت بین وجود و عدم وجود هارد درایو اشاره کردم ولی فرصت نکردم که به RAM بپردازم...در واقع هدف اصلی متن قبلی نشون دادن تفاوت سرعتهای لودینگ بازیها در سیستمهای دارا و فاقد رم بودش... بیاین فرض کنیم که انتقال داده رو در کنسول و PC به دو قسمت زیر تقسیم کردیم : انتقال داده ها از Hard Drive به سیستم انتقال داده ها بین RAM و CPU در کنسولها و سیستمهای نسل حاضر دومین مقوله دارای برتری خاصی نیستش...به این معنی که سرعت انتقال داده ها بین RAM و CPU اونقدر بین PC و کنسول فرقی نداره که بخواد تاثیر زیاد در زمانهای لودینگ داشته باشه (مثلا لودینگ رو از 20 ثانیه به 3 ثانیه کاهش بده) و علتش هم اینه که هم کنسولها و هم PC ها فعلا از آرکیتکچرها تقریبا متشابهی برای RAM هاشون استفاده میکنن و هر دوی این سیستمها هم دارای RAM هستن... PS3 دارای رم XDR شرکت Rambus هستش که کمتر توی PC ها دیده شده ولی باعث نمیشه که تقاوت اساسی داشته باشن...360 از آرکیتکچر متشابه رمهای DDR 2 برای RAM ش استفاده کرده و رمهای امروزی PC ها هم از DDR 1 گرفته تا GDDR 4 ساختمانهای خیلی متفاوتی با هم ندارن... از طرفی PC های امروزی ما دیگه بیشتر با رمهای DDR 2 کار میکنن که خیلی متشابه همون رمهای کنسولها هستش و برتری خاصی رو به اونها نمیده... رمهای GDDR 3 و GDDR 4 برای کارتهای گرافیکی استفاده میشن و دارای سرعتهای بالاتری از DDR 1 و DDR 2 ها هستن... همین باعث شد که من توی موضوع قبلی اشاره ی خاصی به RAM نکنم : برای اینکه اگر به اندازه ی کافی هم در PC و هم در کنسول باشه , تفاوت زمان لودینگهای این دو سیستم تقریبا کمرنگ میشه... ولی عدم وجود هارد درایو مشکلی بود که باعث تفاوت عظیم سرعت بین کنسولها و PC ها شده بود و برای همین در متن بالا بهش اشاره کردم... بزرگترین نقش رو در اجرای بازی همون RAM ایفا میکنه...Counter Strike رو در نظر میگیریم : بازی شروع میشه و یک منو برای خرید نمایش داده میشه...در کنار هر اسلحه یک سری مشخصات نوشته شده...موتور بازی میره و اطلاعات بازی رو از داخل هارد دیسک بیرون میکشه و درون RAM میریزه...CPU این اطلاعات رو میخونه و طبق دستوری که موتور بازی بهش میده اونها رو نمایش میده...توی زبانهای برنامه نویسی تا وقتی که فایل رو نبندی اطلاعات درونش Save نمیشه (fClose) و در یک بازی بستن فایل به معنی خارج شدن از بازی بطور درست هستش...پس در بین بازی این اطلاعات در هارد نوشته نمیشن...پس کجا هستن ؟! این اطلاعات درون RAM سیستم قرار میگیرن و بصورت دینامیک تغیر میکنن و در انتها به هنگام Save کردن بازی , موتور بازی نگاهی به نتایج نهایی این اطلاعات در RAM میندازه (که روشون تا به این لحظه تغییرات صورت گرفته ولی ثبت نشدن) و سپس این اطلاعات نهایی رو در یک فایل باینری ذخیره میکنه... مثلا در بازی به یک دیوار نگاه میکنین...این دیوار روش یک بافت کشیده شده...موتور بازی وقتی که به سمت دیوار نگاه میکنین میفهمه که باید بافت این دیوار رو سریع لود کنه...پس میره و از توی هارد درایو اطلاعات این بافت رو که یک عکس هستش پیدا میکنه ولی سعی نمیکنه که این اطلاعات رو از روی همون هارد بخونه...بلکه اطلاعات این عکس رو درون RAM میریزه و به کمک کلاسهایی که برای موتور تعریف شده , اونرو درون RAM کارت گرافیک به Texture های مختلفی تبدیل میکنه که بصورت دینامیک بوجود اومدن (یعنی یک Pointer هستن که Dynamic Allication دارن)...این یکی دیگه از کارهای RAM کارت گرافیک بودش... در اینجا خوب میبینم که به موضوعی اشاره کنم...به هر کی میگی که کارت گرافیکت چیه سریع میگه "فلان تا RAM داره !" و مشکل اینجاست که اغلب ماها قدرت کارت گرافیک رو در RAM ش میبینم و نه GPU ش...در حالیکه همونطور که اشاره کردم قسمت اصلی کار یک RAM برای کارت گرافیک همون نگهداری بافتهای یک مرحله هستش (البته کارهای شاخ دیگه ایی رو هم مثل نگهداری اطلاعات Shading ها و Shader ها انجام میده که بهش اشاره ایی نمیکنم)... بافتهای بازی ایی مثل Counter Strike حجمشون فراتر از چند مگابایت هم نیستش و همین باعث میشه که مثلا با یک کارت گرافیک 64 مگابایتی بتونی بازی رو اجرا کنی (البته نه بهینه) ولی در موتوری مثل Unreal و یا حتی id Tech 4 (که باهاش بازی Doom 3 رو ساختن) کیفیت بافتها به چند ده مگابایت میرسه که اگه بخوای در یک صحنه از 10 تاشون استفاده کنی یه دفعه میبینی که نیم گیگابایت از فضای RAM پر شدش و برای همین وجود RAM بیشتر برای کارت گرافیک در چنین مواقعی یک نعمت میشه... هر چند که یک سری الگوریتم خاص برای Mapping های بافتها هستن که حجمشون رو بدون از بین بردن کیفیت بالاشون کاهش میدن...خود استاد جان کارمک با ارائه ی جدیدترین موتورش (id Tech 5) تونسته در یک مرحله ی کوچولو بیش از 18 گیگابایت بافت رو در موتورش استفاده کنه و جالبه که این موتور رو طوری نوشته که با یه کارت گرافیک 256 مگابایتی هم میشه بازی رو اجرا کرد ! فقط ببین الگوریتم اون موتور چیه ! از RAM کارت گرافیک به RAM اصلی سیستم میریم...خب ! توی بازی Crysis یک بمب منفجر میشه و یک خونه رو نابود میکنه...این خانه ی یک تکه حالا تبدیل به تقریبا 10 هزار تکه ی کوچکتر شده که همه شون باید مطابق با شعاع انفجار , شدت انفجار , شتاب انفجار و نیروی وارد بهشون جهت گیری کنن... برنامه نویس فیزیکی بازی (از بین انواع و اقسام برنامه نویسهای موتور بازی) یکی از وظایفش اینه که بشینه و برای این انفجارهای از پیش تعیین نشده الگوریتم بنویسه...گفتم میشن 10 هزار تا شیئ دیگه ؟! خب ! این 10 هزار تا شیئ هر کدوم باید طبق نیروی خاصی که از جهت خاصی بهشون وارد شده جهت گیری بکنن و با بردار نرمال مخصوص به خودشون و نیروی مخصوص به اون به اطراف پرتاب بشن... CPU میاد و اطلاعات این 10 هزار تا شیئی رو در آن در RAM میریزه...بعدش میاد و برای این 10 هزار تا شیئ محاسبه های ریاضی واقعا سنگین میکنه...محاسبه هایی که باید حتما درشون یک ماتریس نوشته بشه که مختصات رو نشون میده و یک نیرو باید ضربدر این ماتریس بشه (و همه مون میدونیم که چقدر محاسبات ضرب ماتریسی سخت و طاقت فرساست حتی برای CPU ها !) و سپس جوابهای بدست آمده در یک آرایه ی Integer (و نه Float برای اینکه خیلی محاسبات سخت میشه) گونه ریخته بشن...سپس این آرایه ی 4 در 4 نشان دهنده ی اطلاعات خاصی هستش که باید روی جسم (یعنی یکی از اون ده هزارتا جسم) اعمال بشه تا اون جسم بطور طبیعی در اثر انفجار به اطراف پرت بشه... خب ! 10 هزار تا جسم داریم...هر کدوم یک آرایه ی مثلا 3 در 3 میخوان که میشه 9 تا خونه...هر کدوم از خونه ها هم با توجه به ++C (زبان مادر بازی نویسی) برابر هستن با 4 بایت (بر روی سیستمهای 32 بیتی) پس خواهیم داشت : مرحله ی اول (جهت گیری اولیه) : 9 ضربدر 4 (بایت) ضربدر 10000 = 360 کیلوبایت مرحله ی دوم (نیروی اعمالی بر روی اجسام) : 9 (و یا بیشتر) ضربدر 4 ضربدر 10000 = 360 کیلوبایت (و یا بیشتر) مرحله ی سوم (ترسیم پرتاب و همچنین تغییر لحظه به لحظه ی اطلاعات) : 9 (و یا بیشتر) ضربدر 4 ضربدر 10000 = 360 کیلوبایت (و یا بیشتر) و این چرخه همینطوری ادامه پیدا میکنه...برای یک پرتاب ساده باید موارد زیر رو در نظر گرفت : جهت پرتاب (یک بردار در فضای سه بعدی) , نیروی پرتاب (یک مقدار برداری که دارای مقدار عددی هم هست) , شتاب پرتاب (که از نیرو به دست میاد) , محیط پرتاب ( چک کردن اینکه چه موانعی در سر راه جسم است) , پرتاب (شروع شدن انیمه کردن پرتاب) , برخورد ( محاسبات مربوط به فیزیک بازی در هنگام برخورد) , بعد از برخورد ( محسبات پس از برخورد جسم و محسباتی همچون قل خوردن و یا لیز خوردن و انیمه کردن اونها) و این فقط یک قسمت کوچیک بازی یعنی فیزیک بود که چیزی در حدود 3 مگابایت رو در ساده ترین حالتش (که بازخوردی هم نداره) رو به خودش اختصاص میده... در کنار محاسبات فیزیک , موتور بازی باید حجم عظیمی از دیگر اطلاعات رو جمع کنه مثل موارد زیر : تعداد اسلحه ها و مهمات بازیباز , تعداد دشمنان در دید بازیباز , تعداد دشمنان کلی , اطلاعات چند برداری مربوط به محیط , اطلاعات مربوط به بازخوردها , فراخوانی مکرر اطلاعات مربوط به انیمیشنها و قرار دادن آنها در RAM تا CPU آنها رو اجرا کند , جمع آوری اطلاعات کلی بازی در حین مرحله برای مواقع Save , جمع کردن اطلاعات گرافیکی و فرستادن آنها به کارت گرافیک , محاسبات نورپردازی (در کنار کارت گرافیک) , محاسبات دینامیک برداری , داشتن اطلاعات لازم از بازیباز مثل دید دوربین و زاویه ش و مختصات نقش آفرینی بازیباز و همچنین داشتن بانکی برای دریافت input های بی وقفه و مکرر یک یوزر در حین بازی تا اونها رو دسته بندی و سپس اجرا کنه... و اینها فقط قسمت کوچکی از یک نرم افزار به نام موتور بازی هستش که این کارها رو انجام میده و همین باعث میشه که RAM بازی که بصورت دینامیک هی پر و هی خالی از اطلاعات بازی میشه , تبدیل به یکی از مهمترین (واقعا مهم !) قسمتهای یک سیستم و بالطبعش یک بازی بشه...
  20. دو نوع اطلاعات از لحاظ استفاده در بازیها داریم (هرچند که تعداد انواع این اطلاعات بسیار بیشتر از دو نوع هستش ولی در اینجا اشاره به دو نوعش کافی هستش) : یک سری از اطلاعات باید در زمان لود شدن مراحل و قرار گرفتن بازیباز در مرحله لود بشن...این اطلاعات مواردی مثل بافت اسلحه ها , بافت زمین و محیط اطراف , فایلهای موسیقی و صوتی بازی و غیره هستن که قبل از اینکه بر روی RAM قرار بگیرن باید از روی Hard Drive و یا از روی Optical Disk خونده بشن... نوع دوم اطلاعاتی هستن که به اصطلاح بصورت Real-Time در حال اجرا شدن هستن (و شامل اطلاعات نوع اول هم هستن)...این اطلاعات مواردی مثل مختصات قرار گیری بازیباز , میزان جان باقیمانده ی وی , تعداد مهمات , مختصات نورپردازی بازی , محاسبات مربوط به Shader های بازی و غیره هستن که از روی Hard Disk و یا Optical Disk خونده نمیشن...این اطلاعات در طول اجرا شدن بازی توسط موتور بازی در داخل RAM قرار میگیرن و هی بر روی اونها محاسبات مختلف انجام میگیره... در متن قبل من به مهمترین تفاوت بین وجود و عدم وجود هارد درایو اشاره کردم ولی فرصت نکردم که به RAM بپردازم...در واقع هدف اصلی متن قبلی نشون دادن تفاوت سرعتهای لودینگ بازیها در سیستمهای دارا و فاقد رم بودش... بیاین فرض کنیم که انتقال داده رو در کنسول و PC به دو قسمت زیر تقسیم کردیم : انتقال داده ها از Hard Drive به سیستم انتقال داده ها بین RAM و CPU در کنسولها و سیستمهای نسل حاضر دومین مقوله دارای برتری خاصی نیستش...به این معنی که سرعت انتقال داده ها بین RAM و CPU اونقدر بین PC و کنسول فرقی نداره که بخواد تاثیر زیاد در زمانهای لودینگ داشته باشه (مثلا لودینگ رو از 20 ثانیه به 3 ثانیه کاهش بده) و علتش هم اینه که هم کنسولها و هم PC ها فعلا از آرکیتکچرها تقریبا متشابهی برای RAM هاشون استفاده میکنن و هر دوی این سیستمها هم دارای RAM هستن... PS3 دارای رم XDR شرکت Rambus هستش که کمتر توی PC ها دیده شده ولی باعث نمیشه که تقاوت اساسی داشته باشن...360 از آرکیتکچر متشابه رمهای DDR 2 برای RAM ش استفاده کرده و رمهای امروزی PC ها هم از DDR 1 گرفته تا GDDR 4 ساختمانهای خیلی متفاوتی با هم ندارن... از طرفی PC های امروزی ما دیگه بیشتر با رمهای DDR 2 کار میکنن که خیلی متشابه همون رمهای کنسولها هستش و برتری خاصی رو به اونها نمیده... رمهای GDDR 3 و GDDR 4 برای کارتهای گرافیکی استفاده میشن و دارای سرعتهای بالاتری از DDR 1 و DDR 2 ها هستن... همین باعث شد که من توی موضوع قبلی اشاره ی خاصی به RAM نکنم : برای اینکه اگر به اندازه ی کافی هم در PC و هم در کنسول باشه , تفاوت زمان لودینگهای این دو سیستم تقریبا کمرنگ میشه... ولی عدم وجود هارد درایو مشکلی بود که باعث تفاوت عظیم سرعت بین کنسولها و PC ها شده بود و برای همین در متن بالا بهش اشاره کردم... بزرگترین نقش رو در اجرای بازی همون RAM ایفا میکنه...Counter Strike رو در نظر میگیریم : بازی شروع میشه و یک منو برای خرید نمایش داده میشه...در کنار هر اسلحه یک سری مشخصات نوشته شده...موتور بازی میره و اطلاعات بازی رو از داخل هارد دیسک بیرون میکشه و درون RAM میریزه...CPU این اطلاعات رو میخونه و طبق دستوری که موتور بازی بهش میده اونها رو نمایش میده...توی زبانهای برنامه نویسی تا وقتی که فایل رو نبندی اطلاعات درونش Save نمیشه (fClose) و در یک بازی بستن فایل به معنی خارج شدن از بازی بطور درست هستش...پس در بین بازی این اطلاعات در هارد نوشته نمیشن...پس کجا هستن ؟! این اطلاعات درون RAM سیستم قرار میگیرن و بصورت دینامیک تغیر میکنن و در انتها به هنگام Save کردن بازی , موتور بازی نگاهی به نتایج نهایی این اطلاعات در RAM میندازه (که روشون تا به این لحظه تغییرات صورت گرفته ولی ثبت نشدن) و سپس این اطلاعات نهایی رو در یک فایل باینری ذخیره میکنه... مثلا در بازی به یک دیوار نگاه میکنین...این دیوار روش یک بافت کشیده شده...موتور بازی وقتی که به سمت دیوار نگاه میکنین میفهمه که باید بافت این دیوار رو سریع لود کنه...پس میره و از توی هارد درایو اطلاعات این بافت رو که یک عکس هستش پیدا میکنه ولی سعی نمیکنه که این اطلاعات رو از روی همون هارد بخونه...بلکه اطلاعات این عکس رو درون RAM میریزه و به کمک کلاسهایی که برای موتور تعریف شده , اونرو درون RAM کارت گرافیک به Texture های مختلفی تبدیل میکنه که بصورت دینامیک بوجود اومدن (یعنی یک Pointer هستن که Dynamic Allication دارن)...این یکی دیگه از کارهای RAM کارت گرافیک بودش... در اینجا خوب میبینم که به موضوعی اشاره کنم...به هر کی میگی که کارت گرافیکت چیه سریع میگه "فلان تا RAM داره !" و مشکل اینجاست که اغلب ماها قدرت کارت گرافیک رو در RAM ش میبینم و نه GPU ش...در حالیکه همونطور که اشاره کردم قسمت اصلی کار یک RAM برای کارت گرافیک همون نگهداری بافتهای یک مرحله هستش (البته کارهای شاخ دیگه ایی رو هم مثل نگهداری اطلاعات Shading ها و Shader ها انجام میده که بهش اشاره ایی نمیکنم)... بافتهای بازی ایی مثل Counter Strike حجمشون فراتر از چند مگابایت هم نیستش و همین باعث میشه که مثلا با یک کارت گرافیک 64 مگابایتی بتونی بازی رو اجرا کنی (البته نه بهینه) ولی در موتوری مثل Unreal و یا حتی id Tech 4 (که باهاش بازی Doom 3 رو ساختن) کیفیت بافتها به چند ده مگابایت میرسه که اگه بخوای در یک صحنه از 10 تاشون استفاده کنی یه دفعه میبینی که نیم گیگابایت از فضای RAM پر شدش و برای همین وجود RAM بیشتر برای کارت گرافیک در چنین مواقعی یک نعمت میشه... هر چند که یک سری الگوریتم خاص برای Mapping های بافتها هستن که حجمشون رو بدون از بین بردن کیفیت بالاشون کاهش میدن...خود استاد جان کارمک با ارائه ی جدیدترین موتورش (id Tech 5) تونسته در یک مرحله ی کوچولو بیش از 18 گیگابایت بافت رو در موتورش استفاده کنه و جالبه که این موتور رو طوری نوشته که با یه کارت گرافیک 256 مگابایتی هم میشه بازی رو اجرا کرد ! فقط ببین الگوریتم اون موتور چیه ! از RAM کارت گرافیک به RAM اصلی سیستم میریم...خب ! توی بازی Crysis یک بمب منفجر میشه و یک خونه رو نابود میکنه...این خانه ی یک تکه حالا تبدیل به تقریبا 10 هزار تکه ی کوچکتر شده که همه شون باید مطابق با شعاع انفجار , شدت انفجار , شتاب انفجار و نیروی وارد بهشون جهت گیری کنن... برنامه نویس فیزیکی بازی (از بین انواع و اقسام برنامه نویسهای موتور بازی) یکی از وظایفش اینه که بشینه و برای این انفجارهای از پیش تعیین نشده الگوریتم بنویسه...گفتم میشن 10 هزار تا شیئ دیگه ؟! خب ! این 10 هزار تا شیئ هر کدوم باید طبق نیروی خاصی که از جهت خاصی بهشون وارد شده جهت گیری بکنن و با بردار نرمال مخصوص به خودشون و نیروی مخصوص به اون به اطراف پرتاب بشن... CPU میاد و اطلاعات این 10 هزار تا شیئی رو در آن در RAM میریزه...بعدش میاد و برای این 10 هزار تا شیئ محاسبه های ریاضی واقعا سنگین میکنه...محاسبه هایی که باید حتما درشون یک ماتریس نوشته بشه که مختصات رو نشون میده و یک نیرو باید ضربدر این ماتریس بشه (و همه مون میدونیم که چقدر محاسبات ضرب ماتریسی سخت و طاقت فرساست حتی برای CPU ها !) و سپس جوابهای بدست آمده در یک آرایه ی Integer (و نه Float برای اینکه خیلی محاسبات سخت میشه) گونه ریخته بشن...سپس این آرایه ی 4 در 4 نشان دهنده ی اطلاعات خاصی هستش که باید روی جسم (یعنی یکی از اون ده هزارتا جسم) اعمال بشه تا اون جسم بطور طبیعی در اثر انفجار به اطراف پرت بشه... خب ! 10 هزار تا جسم داریم...هر کدوم یک آرایه ی مثلا 3 در 3 میخوان که میشه 9 تا خونه...هر کدوم از خونه ها هم با توجه به ++C (زبان مادر بازی نویسی) برابر هستن با 4 بایت (بر روی سیستمهای 32 بیتی) پس خواهیم داشت : مرحله ی اول (جهت گیری اولیه) : 9 ضربدر 4 (بایت) ضربدر 10000 = 360 کیلوبایت مرحله ی دوم (نیروی اعمالی بر روی اجسام) : 9 (و یا بیشتر) ضربدر 4 ضربدر 10000 = 360 کیلوبایت (و یا بیشتر) مرحله ی سوم (ترسیم پرتاب و همچنین تغییر لحظه به لحظه ی اطلاعات) : 9 (و یا بیشتر) ضربدر 4 ضربدر 10000 = 360 کیلوبایت (و یا بیشتر) و این چرخه همینطوری ادامه پیدا میکنه...برای یک پرتاب ساده باید موارد زیر رو در نظر گرفت : جهت پرتاب (یک بردار در فضای سه بعدی) , نیروی پرتاب (یک مقدار برداری که دارای مقدار عددی هم هست) , شتاب پرتاب (که از نیرو به دست میاد) , محیط پرتاب ( چک کردن اینکه چه موانعی در سر راه جسم است) , پرتاب (شروع شدن انیمه کردن پرتاب) , برخورد ( محاسبات مربوط به فیزیک بازی در هنگام برخورد) , بعد از برخورد ( محسبات پس از برخورد جسم و محسباتی همچون قل خوردن و یا لیز خوردن و انیمه کردن اونها) و این فقط یک قسمت کوچیک بازی یعنی فیزیک بود که چیزی در حدود 3 مگابایت رو در ساده ترین حالتش (که بازخوردی هم نداره) رو به خودش اختصاص میده... در کنار محاسبات فیزیک , موتور بازی باید حجم عظیمی از دیگر اطلاعات رو جمع کنه مثل موارد زیر : تعداد اسلحه ها و مهمات بازیباز , تعداد دشمنان در دید بازیباز , تعداد دشمنان کلی , اطلاعات چند برداری مربوط به محیط , اطلاعات مربوط به بازخوردها , فراخوانی مکرر اطلاعات مربوط به انیمیشنها و قرار دادن آنها در RAM تا CPU آنها رو اجرا کند , جمع آوری اطلاعات کلی بازی در حین مرحله برای مواقع Save , جمع کردن اطلاعات گرافیکی و فرستادن آنها به کارت گرافیک , محاسبات نورپردازی (در کنار کارت گرافیک) , محاسبات دینامیک برداری , داشتن اطلاعات لازم از بازیباز مثل دید دوربین و زاویه ش و مختصات نقش آفرینی بازیباز و همچنین داشتن بانکی برای دریافت input های بی وقفه و مکرر یک یوزر در حین بازی تا اونها رو دسته بندی و سپس اجرا کنه... و اینها فقط قسمت کوچکی از یک نرم افزار به نام موتور بازی هستش که این کارها رو انجام میده و همین باعث میشه که RAM بازی که بصورت دینامیک هی پر و هی خالی از اطلاعات بازی میشه , تبدیل به یکی از مهمترین (واقعا مهم !) قسمتهای یک سیستم و بالطبعش یک بازی بشه...
  21. سلام

    نه متاسفانه

×
×
  • اضافه کردن...