3 ডি গেমগুলি কীভাবে এত দক্ষ? [বন্ধ]


188

এমন কিছু আছে যা আমি কখনই বুঝতে পারি নি। জিটিএ আইভির মতো দুর্দান্ত একটি বড় পিসি গেমটি কীভাবে আমার সিপিইউর 50% ব্যবহার করতে পারে এবং 60fps এ চলতে পারে যখন 60fps @ 60fps এ ঘূর্ণনকারী টিএপট এর একটি ডিএক্স ডেমো একটি তীব্র 30% ব্যবহার করে?


124
আমি এই প্রশ্নের কি দোষ দেখতে পাচ্ছি না - অন্যান্য বিকাশকারীরা কীভাবে কিছু নির্দিষ্ট কাজ সম্পাদন করেছেন সে সম্পর্কে কৌতূহল বোধ করা সম্পূর্ণ স্বাভাবিক। আমাদের এই ধরণের কৌতূহল উত্সাহিত করা উচিত, নিকট ভোট দিয়ে শাস্তি না দিয়ে।
জন ফেমেনিলা

2
@ ব্যবহারকারী ১৪6780৮০: কে প্রশ্ন করেছে ... সিজিআইতে কাজ করার জন্য আমি যে সেরা প্রোগ্রামারদের সাথে দেখা করেছি। এসজিআই-এর গুরুগণ, অ্যাডোব ফটোশপ ইত্যাদিকে প্যারালাইজ করার কাজ করছেন এমন লোকেরা, এখানকার লোকেরা বুঝতে পারে না যে আধুনিক গেমটি লেখার পক্ষে কতটা জটিল বা এই কোডারগুলি কতটা দক্ষ। আপনি যদি একটি নম্র অভিজ্ঞতা চান তবে ক্রিটেসের জার্মানরা ক্রিসিস ইঞ্জিনটি দিয়ে কী করেছিল তা দেখুন। ইউটিউবে ভিডিও রয়েছে। আপনি কেবল এটি বিশ্বাস করবেন না। এটি কেবল "অক্ট্রি ব্যবহার" সম্পর্কে নয়। সাধারণত এই প্রোগ্রামাররা সাধারণত গড় প্রোগ্রামারগুলির চেয়ে অনেক বেশি দক্ষ। এবং আপনি বাজি রাখতে পারেন যে জিটি 4 কোডারগুলি খুব ভাল।
SyntaxT3rr0r

2
আপনি জিটিএ 4 60fps এ চলছে !? জি ডব্লিউ! gta4 একটি POS যা বেশ খারাপভাবে চালিত হয়, আমি শুনেছি ফোর্সটিও প্রকাশ করেছে does আমি বলব ইউফোরিয়া অপরাধী। সত্যি কথা বলতে, "সিপিইউ ব্যবহার" তুলনা করার একটি খুব দুর্বল উপায়, কেবল ফ্রেম রেটটি খোলার জন্য এবং কোনটি দ্রুতগতিতে চলে তা দেখুন, এটি করার সঠিক উপায়টি। এছাড়াও, মনে রাখবেন, এই "জটিল খেলা" যখন এটি প্রচুর পরিমাণে রেন্ডার হতে পারে, এখনও কেবলমাত্র পর্দার দামের জিনিস রয়েছে এবং এটি যদি সঠিক ক্রমে রেন্ডার করা হয় তবে আপনার সমান পরিমাণ পিক্সেলের কাজ শেষ হতে পারে "সরল" ডেমো, এবং পিক্সেল এর কাজটি হ'ল এটি হ'ল।
ম্যাট

8
আপনার এমন একটি প্রোফাইলার দরকার যা আপনাকে দেখায় যে জিপিইউ (গ্রাফিক্স প্রসেসিং ইউনিট) কত ব্যবহৃত হয়। আমি বাজি জিটিএ IV আপনাকে ~ 99% এবং ডেমো 3% দেখায়।
স্কার

অভিজ্ঞতা থেকে, আমি প্রায় 10% গেম প্রোগ্রামারগুলির সাথে কাজ করেছি যে কোনও ভাল ছিল, বাকিরা সেরা গড় ছিল। কিছু ছিল সম্পূর্ণ অক্ষম।
স্কিজ

উত্তর:


69

সাধারণভাবে, কারণ

  1. গেমগুলি তাদের কী কী রেন্ডার করতে হবে তা সম্পর্কে সর্বোত্তম হচ্ছে এবং
  2. তারা আপনার হার্ডওয়্যার বিশেষ সুবিধা গ্রহণ।

উদাহরণস্বরূপ, একটি সহজ অপ্টিমাইজেশন যা আপনি করতে পারেন তাতে বাস্তবে দেখা যায় না এমন জিনিসগুলি আঁকার চেষ্টা না করা জড়িত। গ্র্যান্ড থেফট অটো IV এর শহরতলির মতো জটিল দৃশ্য বিবেচনা করুন । রেন্ডারার আসলে সমস্ত বিল্ডিং এবং কাঠামো রেন্ডার করে না। পরিবর্তে, এটি কেবল ক্যামেরাটি দেখতে পারে তা রেন্ডার করে। মূল ক্যামেরার মুখোমুখি যদি আপনি সেই একই ভবনের পেছনের দিকে ঘুরে আসতে পারেন, তবে আপনি অর্ধ-নির্মিত বিলম্বিত শেল কাঠামো দেখতে পাবেন see ক্যামেরাটি দেখতে পারে না এমন প্রতিটি পয়েন্ট রেন্ডার করা হয় না - যেহেতু আপনি এটি দেখতে পাচ্ছেন না, তাই আপনাকে এটি দেখানোর চেষ্টা করার দরকার নেই।

তদ্ব্যতীত, আরও ভাল স্পিডআপগুলি সক্ষম করতে আপনি যখন একটি নির্দিষ্ট হার্ডওয়্যারের বিপরীতে বিকাশ করেন তখন অনুকূলিত নির্দেশাবলী এবং বিশেষ কৌশলগুলি বিদ্যমান।

আপনার প্রশ্নের অন্য অংশটি হ'ল কেন একটি ডেমো এত বেশি সিপিইউ ব্যবহার করে:

... যখন 60fps কে ঘোরানো টিপট এর একটি ডিএক্স ডেমো একটি তীব্র 30% ব্যবহার করে?

গ্রাফিক্স API গুলি (যেমন dxdemo) এর ডেমোসের পক্ষে সফ্টওয়্যার রেন্ডারার নামে ডাকে এটি পিছনে ফিরে আসা সাধারণ যখন আপনার হার্ডওয়্যার একটি দুর্দান্ত উদাহরণ দেখাতে প্রয়োজনীয় সমস্ত বৈশিষ্ট্য সমর্থন করে না তখন । এই বৈশিষ্ট্যগুলির মধ্যে ছায়া, প্রতিবিম্ব, রে-ট্রেসিং, পদার্থবিজ্ঞান, এবং সেল্টেরার মতো জিনিস অন্তর্ভুক্ত থাকতে পারে।

এটি API এর সমস্ত বৈশিষ্ট্যগুলি দেখানোর জন্য একটি সম্পূর্ণ পূর্ণ বৈশিষ্ট্যযুক্ত হার্ডওয়্যার ডিভাইসের ক্রিয়াকলাপটিকে নকল করে exist তবে হার্ডওয়্যারটি যেহেতু বাস্তবে বিদ্যমান নেই তাই এটি আপনার সিপিইউতে পরিবর্তিত হয়। এটি গ্রাফিক্স কার্ডে অর্পণ করার চেয়ে অনেক বেশি অদক্ষ - সুতরাং আপনার উচ্চ সিপিইউ ব্যবহার।


3
একটি ডিএক্স ডেমো আপনার হার্ডওয়্যারও ব্যবহার করে। তো, 'বিশেষ' কী?
tur1ng

3
তবে একটি ডেমো এটি সম্পর্কে অনুকূল হওয়ার সম্ভাবনা কম।
ioবিও

2
@ টার 1ng, টিপট ডেমো উদাহরণস্বরূপ, প্রতিবিম্ব , ছায়া এবং অন্যান্য প্রভাবগুলিকে সক্ষম করেছে ।
নিক দানদৌলাকিস

2
টিটিপটে একটি জিটিএ 4 দৃশ্যের চেয়ে বেশি বহুভুজ থাকতে পারে। আসল বিষয়টি হ'ল গ্রাফিক রেন্ডারিংয়ের বর্তমান বিঘ্নটি হ'ল টেক্সচার ইফেক্টগুলি যেমন টোপ ম্যাপিং ডাইরিভ কৌশলগুলি বিশদ এবং অন্যান্য পোস্টের রেন্ডারিং এফেক্ট যুক্ত করতে পারে।
ক্লাইম

5
টেক্সচার - চামড়াটি স্বাভাবিক এবং আলোক আলোচনার সাথে সাথে বিশাল আকারের পৃথক ত্রিভুজ থেকে তৈরি করা হচ্ছে। গেমটিতে একটি অত্যন্ত জটিল 3 ডি বিশ্বের মতো দেখতে হ'ল প্রায়শই সরল সরল বড় ব্লকগুলি একটি বিশদ চিত্র দিয়ে আচ্ছাদিত। '3 ডি' এর অনেকগুলি চালিত ছায়া এবং 3 ডি আকারে আঁকা স্থির 2 ডি চিত্রের দৃষ্টিভঙ্গি শৈল্পিক প্রভাবগুলি
মার্টিন বেকেট

96

ধৈর্য, ​​প্রযুক্তিগত দক্ষতা এবং সহনশীলতা।

প্রথম বিষয়টি হ'ল একটি ডিএক্স ডেমো মূলত একটি শিক্ষণ সহায়তা তাই এটি কার্যকর করার গতি নয় স্বচ্ছতার জন্য সম্পন্ন হয়।

এটি ঘনীভূত করার পক্ষে একটি দুর্দান্ত বিষয় তবে গেমস ডেভেলপমেন্টটি মূলত আপনার ডেটা এবং প্রায়শই প্যাথলজিকাল ডিগ্রিতে কার্যকরকরণের পথগুলি বোঝার বিষয়ে।

  1. আপনার কোডটি দুটি জিনিসকে ঘিরে তৈরি করা হয়েছে - আপনার ডেটা এবং আপনার টার্গেট হার্ডওয়্যার hardware
  2. দ্রুততম কোডটি এমন কোড যা কখনও কার্যকর হয় না - আপনার ডেটাগুলি ব্যাচগুলিতে সাজান এবং কেবল আপনার প্রয়োজনীয় ডেটাতে ব্যয়বহুল ক্রিয়াকলাপ করুন
  3. আপনি কীভাবে আপনার ডেটা সংরক্ষণ করবেন তা কী - সংগত অ্যাক্সেসের লক্ষ্যে এটি আপনাকে উচ্চ গতিতে ব্যাচ প্রক্রিয়া করতে দেয়।
  4. আপনি যা করতে পারেন সবকিছু পেরেলাইজ করুন
  5. আধুনিক সিপিইউ দ্রুত, আধুনিক র‌্যাম খুব ধীর। ক্যাশে মিস করা মারাত্মক।
  6. আপনার যতটা সম্ভব জিপিইউতে পুশ করুন - এটির স্থানীয় মেমরি রয়েছে তাই এটি ডেটা দিয়ে জ্বলতে পারে তবে আপনার ডেটা সঠিকভাবে সংগঠিত করে আপনাকে এটিকে সহায়তা করতে হবে।
  7. প্রচুর রেন্ডারসেট স্যুইচ (আবার একই ব্যাচের অনুরূপ ভার্টেক্স তথ্য একসাথে করা) এড়িয়ে চলুন কারণ এটি জিপিইউ স্টল করে দেয়
  8. আপনার টেক্সচারগুলি সাঁতার কাটা এবং এগুলি দুটি শক্তির নিশ্চিত করুন - এটি জিপিইউতে টেক্সচার ক্যাশে কার্যকারিতা উন্নত করে।
  9. যতটা সম্ভব স্তরের স্তরের ব্যবহার করুন - 3 ডি মডেলের নিম্ন / মাঝারি / উচ্চ সংস্করণ এবং ক্যামেরা প্লেয়ার থেকে দূরত্বের উপর ভিত্তি করে স্যুইচ করুন - পর্দায় কেবলমাত্র 5 পিক্সেল হলে উচ্চ-রেজাল্ট সংস্করণ রেন্ডারিংয়ের কোনও বিষয় নেই।

39

3 ডি গেম আপনার চোখকে ট্রিক করতে দুর্দান্ত। উদাহরণস্বরূপ, স্ক্রিন স্পেস অ্যাম্বিয়েন্ট অলোকশন (এসএসএও) নামে একটি প্রযুক্তি রয়েছে যা কোনও দৃশ্যের সেই অংশগুলিকে ছায়া দিয়ে আরও বাস্তবসম্মত অনুভূতি দেবে যা পৃষ্ঠের বিচ্ছিন্নতাগুলির নিকটে রয়েছে। আপনি যদি আপনার প্রাচীরের কোণগুলি দেখেন তবে দেখতে পাবেন বেশিরভাগ ক্ষেত্রে তারা কেন্দ্রগুলির চেয়ে কিছুটা গা dark় দেখা দেয়।

খুব একই প্রভাবটি রেডিয়োসিটি ব্যবহার করে অর্জন করা যেতে পারে যা সঠিক সংকলনের উপর ভিত্তি করে। রেডিওওসিটি বাউন্সিং লাইট ইত্যাদির আরও প্রভাবগুলি বিবেচনা করবে তবে এটি গণনাগতভাবে ব্যয়বহুল - এটি একটি রশ্মির ট্রেসিংয়ের কৌশল।

এটি কেবল একটি উদাহরণ। রিয়েল টাইম কম্পিউটার গ্রাফিক্সের জন্য শত শত অ্যালগরিদম রয়েছে এবং সেগুলি মূলত ভাল অনুমানের উপর ভিত্তি করে থাকে এবং সাধারণত প্রচুর অনুমান করে। উদাহরণস্বরূপ, স্থানের বাছাই অবশ্যই গতি, ক্যামেরার সাধারণ অবস্থানের পাশাপাশি দৃশ্যের জ্যামিতিতে পরিবর্তনের পরিমাণের উপর নির্ভর করে খুব সাবধানতার সাথে বেছে নিতে হবে।

এই 'অপ্টিমাইজেশন' বিশাল - আপনি দক্ষতার সাথে একটি অ্যালগরিদম প্রয়োগ করতে এবং এটি 10 ​​বার দ্রুত চালিত করতে পারেন, তবে একটি স্মার্ট অ্যালগরিদম চয়ন করে যা অনুরূপ ফলাফল তৈরি করে ("প্রতারণা") আপনাকে ও (এন ^ 4) থেকে ও-তে যেতে বাধ্য করতে পারে লগ (এন))।

আসল বাস্তবায়ন অনুকূলিতকরণ হ'ল গেমসকে আরও দক্ষ করে তোলে তবে এটি কেবল একটি লিনিয়ার অপ্টিমাইজেশন।


30

Eeeeek!

আমি জানি যে এই প্রশ্নটি পুরানো, তবে এটির উত্তেজনাপূর্ণ বিষয় যে কেউ ভিএসআইএনসি-র কথা উল্লেখ করেনি !!!

আপনি 60fps এ গেমটির সিপিইউ ব্যবহার 60fps তে টিপোট ডেমো সিপিইউ ব্যবহারের সাথে তুলনা করেছেন।

এটি কি স্পষ্ট নয় যে উভয়ই ঠিক 60fps এ চালান (কম বেশি)? যা উত্তরের দিকে নিয়ে যায় ...

উভয় অ্যাপ্লিকেশন vsync সক্ষম দ্বারা চালিত! এর অর্থ (ডাম্বড-ডাউন) রেন্ডারিং ফ্রেমরেটটি আপনার মনিটরের "উল্লম্ব ফাঁকা ব্যবধান" এ লক করা আছে। গ্রাফিক্স হার্ডওয়্যার (এবং / অথবা ড্রাইভার) কেবলমাত্র সর্বাধিক উপস্থাপন করবে। 60 FPS. 60fps = 60Hz (প্রতি সেকেন্ডে হার্জেড = প্রতি সেকেন্ড) রিফ্রেশ রেট। সুতরাং আপনি সম্ভবত একটি বরং পুরানো, ঝাঁকুনি সিআরটি বা একটি সাধারণ এলসিডি প্রদর্শন ব্যবহার করুন। 100Hz এ চলমান একটি CRT এ আপনি সম্ভবত 100Hz অবধি ফ্রেমরেট দেখতে পাবেন। ভিসিঙ্কটিও এলসিডি ডিসপ্লেগুলিতে একইভাবে প্রযোজ্য (তাদের প্রায়শই রিফ্রেশের হার 60Hz থাকে)।

সুতরাং, টিপট ডেমো আসলে আরও বেশি দক্ষ চালাতে পারে! যদি এটি সিপিইউ সময়ের 30% ব্যবহার করে (জিটিএ আইভির জন্য 50% সিপিইউ সময়ের তুলনায়), তবে এটি সম্ভবত প্রতিটি ফ্রেম কম সিপিইউ সময় ব্যবহার করে এবং পরবর্তী উল্লম্ব ফাঁকা ব্যবধানের জন্য কেবল অপেক্ষা করে। উভয় অ্যাপ্লিকেশন তুলনা করতে, আপনি vsync অক্ষম করা উচিত এবং আবার মাপুন (আপনি উভয় অ্যাপ্লিকেশন জন্য অনেক উচ্চতর fps পরিমাপ করতে হবে)।

কখনও কখনও vsync অক্ষম করা ঠিক আছে (বেশিরভাগ গেমের সেটিংসে একটি বিকল্প থাকে)। কখনও কখনও ভিআইসিএনসি অক্ষম হয়ে গেলে আপনি "টিয়ারিং আর্টফ্যাক্টস" দেখতে পাবেন।

আপনি এর বিশদ এবং এটি উইকিপিডিয়ায় কেন ব্যবহার করা যায় তার বিশদ জানতে পারেন: http://en.wikedia.org/wiki/Vsync


আমি সম্মত, আরও ভাল তুলনা পেতে আপনার vsync অক্ষম করা উচিত। তবে ইস্যুটির মূল এখনও দাঁড়িয়ে আছে। গেমটির জন্য টিপট বনাম 50% সিপিইউ ব্যবহারের জন্য 30% হ'ল সাধারণভাবে প্রত্যাশার চেয়ে ছোট পার্থক্য। তবে আমার মনে আছে প্রথম দিকের দিনগুলিতে যখন পরিবেশের ম্যাপিংটি সবেমাত্র জনপ্রিয় হতে শুরু করেছিল এবং সেই সময়ে শীতল এনভিডিয়া ডেমো ছিল পরিবেশ-ম্যাপযুক্ত তেঁতুলের চারদিকে ঘুরানো। এই ডেমোগুলি সাধারণত দিনে 60 fps পিছনেও আঘাত করতে পারে না। আমার অনুমান আমার বক্তব্যটি হ'ল এই টিপোট ডেমো প্রায়শই একটি নতুন ভিজ্যুয়াল এফেক্টের সীমানা ঠেকায়।
স্টিভ ওয়ারথাম

25

যতক্ষণ অনেক উত্তর এখান থেকে চমৎকার সূত্রানুযায়ী প্রদান কিভাবে আমি পরিবর্তে সহজ প্রশ্নের জবাব কে দেবেন কেন

সম্ভবত সর্বোত্তম উদাহরণ (অবশ্যই অন্যতম পরিচিত) আইডি সফ্টওয়্যার। কমান্ডার কেইন (3 ডি এর আগে ভাল) এর দিনগুলিতে তারা বুঝতে পেরেছিল যে 1 কিছু অর্জনের জন্য একটি চৌকস উপায় নিয়ে আসে , যদিও এটি আধুনিক হার্ডওয়্যারের উপর নির্ভর করে (এই ক্ষেত্রে একটি ইজিএ গ্রাফিক্স কার্ড!) যা গ্রাফিক দিক থেকে আরও উন্নত ছিল প্রতিযোগিতা যা এটি আপনার গেমকে আলাদা করে তুলবে। এটি সত্য ছিল তবে তারা আরও বুঝতে পেরেছিল যে, নতুন গেমস এবং বিষয়বস্তু নিয়ে আসার পরিবর্তে তারা প্রযুক্তির লাইসেন্স দিতে পারে, সুতরাং অন্যের কাছ থেকে ইনকাম অর্জন করে যখন পরবর্তী প্রজন্মের ইঞ্জিনটি বিকাশ করতে সক্ষম হবে এবং এইভাবে আবার ব্যাঙকে প্রতিযোগিতা লাফিয়ে তুলবে ।

এই প্রোগ্রামারগুলির দক্ষতা (ব্যবসায় জ্ঞানের সাথে মিলিত) এগুলি তাদেরকে ধনী করে তুলেছে।

তারা বলেছে যে অগত্যা অর্থের অর্থ এই জাতীয় লোকদের অনুপ্রাণিত করে না। এটি সম্ভবত যতটা অর্জন করার, অর্জন করার আকাঙ্ক্ষা। প্রথম দিনগুলিতে তারা যে অর্থ উপার্জন করেছিল তার অর্থ হ'ল তারা এখন যা উপভোগ করছে তাতে উত্সর্গ করার সময় রয়েছে। এবং যদিও অনেকের বাইরের আগ্রহ প্রায় সমস্ত এখনও প্রোগ্রাম এবং শেষ পুনরাবৃত্তির চেয়ে ভাল করার উপায়গুলি নিয়ে কাজ করার চেষ্টা করে।

যে ব্যক্তি তেঁতুল ডেমো লিখেছেন তার সম্ভবত নিম্নলিখিত এক বা একাধিক সমস্যা রয়েছে:

  • কম সময়
  • কম সংস্থান
  • কম পুরষ্কার উত্সাহ
  • কম অভ্যন্তরীণ এবং বাহ্যিক প্রতিযোগিতা
  • কম লক্ষ্য
  • কম প্রতিভা

শেষটি কঠোর শোনায় 2 তবে স্পষ্টতই এমন কিছু ব্যক্তি রয়েছে যা অন্যদের চেয়ে ভাল, বেল কার্ভগুলির মাঝে মাঝে চূড়ান্ত প্রান্ত থাকে এবং তারা সেই দক্ষতার সাথে কী করা হয় তার সাথে সম্পর্কিত চূড়ান্ত প্রান্তগুলিতে আকৃষ্ট হওয়ার ঝোঁক থাকে।

কম লক্ষ্যগুলির মধ্যে একটি সম্ভবত প্রধান কারণ হতে পারে। টিপোট ডেমোটির লক্ষ্যমাত্র ছিল, একটি ডেমো। তবে প্রোগ্রামারদের দক্ষতার ডেমো 3 নয় । এটি কোনও (বড়) ওএসের একটি ছোট ফ্যাক্টের একটি ডেমো হবে, এক্ষেত্রে ডিএক্স রেন্ডারিং।

ডেমোটি দেখার জন্য এটি যথেষ্ট পরিমাণে দেখায় এটি প্রয়োজনীয়তার চেয়ে বেশি সিপিইউ ব্যবহার করে না তবে এটি ম্যাটার করবে না । যখন কোনও সুবিধাভোগী না থাকবে তখন বর্জ্য অপসারণের কোনও উত্সাহ হবে না। তুলনায় একটি গেম ভাল এআই, আরও ভাল শব্দ, আরও বহুভুজ, আরও প্রভাবের জন্য অতিরিক্ত চক্র রাখতে পছন্দ করবে।


  1. সেক্ষেত্রে পিসি হার্ডওয়্যারটিতে মসৃণ স্ক্রোলিং
  2. আমার চেয়ে সম্ভবত আরও বেশি তাই আমরা সে সম্পর্কে পরিষ্কার
  3. কঠোরভাবে বলতে গেলে এটি তার ম্যানেজারের কাছেও একটি ডেমো হত, তবে আবার এখানে ড্রাইভটি সময় এবং / অথবা ভিজ্যুয়াল মানের হবে।

17

কারণ কয়েকটি কারণ

  • 3 ডি গেম ইঞ্জিনগুলি অত্যন্ত অনুকূলিত হয়
  • বেশিরভাগ কাজ আপনার গ্রাফিক্স অ্যাডাপ্টার দ্বারা সম্পন্ন হয়
  • 50% এইচএম, আমাকে অনুমান করতে দাও যে আপনার দ্বৈত কোর রয়েছে এবং কেবল একটি কোর ব্যবহৃত হয়েছে ;-)

সম্পাদনা: কয়েকটি সংখ্যা দিতে

এনভি -6800 জিপিইউ সহ 2.8 গিগাহার্টজ অ্যাথলন -64। ফলাফলগুলি হ'ল:

  • সিপিইউ: 72.78 এমফ্লুপস
  • জিপিইউ: 2440.32 এমফ্লপস

@ স্ট্যাকার: আপনি কি বোঝাচ্ছেন যে জিপিইউ দ্বারা না করা শীর্ষস্থানীয় 3 ডি গেমগুলিতে সংঘটিত সমস্ত গণনাগুলি আসলে মনো-থ্রেডযুক্ত এবং কোনও সুযোগে সিপিইউর 100% পূরণ করবে? মানে গেম পারফগুলি একটি নন-জিপিইউ কোরের সাথে আবদ্ধ হবে? আমি বিশ্বাস করতে খুব কঠিন মনে।
SyntaxT3rr0r

4
এটি বোঝায় না যে প্রোগ্রামটি মনো-থ্রেডযুক্ত - এটি কেবল বোঝায় যে কমপক্ষে একটি থ্রেড যত দ্রুত সম্ভব চলছে তত দ্রুত চলছে। কোনটি যুক্তিসঙ্গত, কারণ আপনি কেন এটি কোনও ধীরে যেতে চান? অন্যদিকে, অনেক গেম প্রায় পুরো মনো-থ্রেডযুক্ত। মাল্টিথ্রিডিংয়ের সময় কার্যকর পদ্ধতিতে জটিল সিমুলেশনগুলি লেখা খুব কঠিন কারণ অনেক বেশি থ্রুপুট কিনতে সামান্য / বিলম্বিত ব্যবস্থার স্বীকৃতি / বিতরণ ব্যবস্থায় সাধারণ পরিস্থিতি কোনও গেমের পক্ষে প্রতিক্রিয়াজনক বলে মনে করা ভাল নয়।
কাইলোটান

8

কখনও কখনও কোনও দৃশ্য প্রদর্শিত হওয়ার চেয়ে বেশি চলতে পারে। উদাহরণস্বরূপ, হাজার হাজার শৃঙ্খলা, পরিবেশ ম্যাপিং, বাম্প ম্যাপিং এবং অন্যান্য জটিল পিক্সেল শেডার সহ একটি ঘোরানো টিপট সমস্ত একসাথে রেন্ডার করা পুরো প্রক্রিয়াজাতকরণের সমান। এই টিপোট ডেমোগুলি অনেক সময় কেবল কোনও বিশেষ প্রভাব প্রদর্শন করে। নিরঙ্কুশ পারফরম্যান্স লক্ষ্য না হলে তারা সর্বদা জিপিইউর সেরা ব্যবহার করতে পারে না।

একটি গেমটিতে আপনি একইরকম প্রভাব দেখতে পারেন তবে ফ্রেম রেটকে সর্বাধিকীকরণের চেষ্টায় সেগুলি সাধারণত আপস করা ফ্যাশনে সম্পন্ন করা হয়। এই অপটিমাইজেশনগুলি গেমটিতে আপনি যা দেখেন তার প্রতিটি ক্ষেত্রে প্রসারিত। বিষয়টি হয়ে ওঠে, "আমরা কীভাবে প্রসেসিং পাওয়ারের ন্যূনতম পরিমাণের সাথে সবচেয়ে দর্শনীয় এবং বাস্তবসম্মত দৃশ্য তৈরি করতে পারি?" এটি যা গেম প্রোগ্রামারকে আশেপাশের কয়েকটি সেরা অপ্টিমাইজার করে তোলে।


4
  1. দৃশ্য পরিচালনা। কেডি-ট্রি, হতাশায় কুলিং, বিএসপিএস, উত্তরাধিকারী বাউন্ডিং বাক্স, আংশিক দৃশ্যমানতার সেট।
  2. LOD। দূরের অবজেক্টের পরিবর্তে নিম্ন বিশদ সংস্করণ স্যুইচিং করা।
  3. হল প্রতারক। এলওডের মতো তবে কোনও বস্তুও কেবল একটি চিত্র বা 'বিলবোর্ড' নয়।
  4. SIMD।
  5. কাস্টম মেমরি পরিচালনা। সারিবদ্ধ মেমরি, কম খণ্ডিত।
  6. কাস্টম ডেটা স্ট্রাকচার (যেমন কোনও এসটিএল নয়, তুলনামূলকভাবে ন্যূনতম টেম্প্লেটিং)।
  7. জায়গায় সমাবেশ, মূলত সিমডির জন্য।

4

প্রদত্ত সমস্ত যোগ্যতাসম্পন্ন এবং ভাল উত্তর দিয়ে, যে বিষয়টি এখনও অনুপস্থিত: উইন্ডোজের সিপিইউ ব্যবহারের কাউন্টারটি খুব নির্ভরযোগ্য নয়। আমি অনুমান করি যে এই সাধারণ টিপট ডেমোটি কেবল নিষ্ক্রিয় লুপে রেন্ডারিং ফাংশনটিকে কল করে, বাফার সোয়াপ এ ব্লক করে।

এখন উইন্ডোজ সিপিইউ ব্যবহারের কাউন্টার প্রতিটি প্রসেসের মধ্যে কতটা সিপিইউ সময় ব্যয় করে তা দেখায়, তবে এই সিপিইউ সময়টি কীভাবে ব্যবহৃত হয় তা নয়। যুক্ত করার চেষ্টা করুন

Sleep(0);

রেন্ডারিং ফাংশন থেকে ফিরে আসার পরে এবং তুলনা করুন।


আমার একটি ডিএক্স টিপোট ডেমো ছিল যা সর্বদা আমার সিপিইউর 25% ব্যবহার করে। দেখা যাচ্ছে কারণ আমি কোয়াড কোরে ছিলাম এবং f০ fps এ গেম লুপটি লক করতে আমার একটি "আমরা এখনও রয়েছি" লুপটি ছিল যা নিয়মিতভাবে সময়টি পরীক্ষা করে রাখে। আমি এটিকে ঘুমের মধ্যে (টাইম টেক্সটেক্সট ফ্রেমে) পরিবর্তন করেছি এবং সিপিইউ ব্যবহারটি 0 এর কাছাকাছি নেমে এসেছিল
জোনাথন পিয়ার্স

3

তদাতিরিক্ত, গণনার শক্তি বাঁচাতে শৈল্পিক দৃষ্টিকোণ থেকে অনেকগুলি কৌশল রয়েছে। অনেক গেমগুলিতে, বিশেষত বয়স্কদের মধ্যে, ছায়াগুলি মানচিত্রের টেক্সচারের মধ্যে প্রাক্কলিত হয় এবং "বেকড" হয়। অনেক সময়, শিল্পীরা প্লেন (দুটি ত্রিভুজ) ব্যবহার করে গাছ এবং বিশেষ প্রভাবগুলির মতো জিনিসের প্রতিনিধিত্ব করার চেষ্টা করেছিল যখন এটি বেশিরভাগই একই রকম হত। গেমগুলিতে কুয়াশা হ'ল দূরের জিনিসগুলি রেন্ডারিং এড়ানোর একটি সহজ উপায় এবং প্রায়শই গেমগুলিতে দূরবর্তী, মাঝারি এবং কাছের দর্শনের জন্য প্রতিটি বস্তুর একাধিক রেজোলিউশন থাকে।


1

যে কোনও উত্তরের মূলটি এটি হওয়া উচিত - 3 ডি ইঞ্জিনগুলি যে রূপান্তরগুলি সম্পাদন করে তা বেশিরভাগ ক্ষেত্রে সংযোজন এবং গুণ (লিনিয়ার বীজগণিত) (কোনও শাখা বা জাম্প নয়) দ্বারা নির্দিষ্ট করা হয়, একটি ফ্রেমের অঙ্কনের ক্রিয়াকলাপ প্রায়শই এমনভাবে নির্দিষ্ট করা হয় যে একাধিক যেমন অ্যাড-মুলের কাজ সমান্তরালভাবে করা যেতে পারে। জিপিইউ কোরগুলি অ্যাড-মুলের অ্যাড-মুলগুলির খুব ভাল, এবং তাদের কয়েক ডজন বা শত শত অ্যাড-মুল কোর রয়েছে।

সিপিইউ এআই এবং অন্যান্য গেম লজিকের মতো সাধারণ স্টাফ করেই চলে যায়।


1

জিটিএ আইভির মতো দুর্দান্ত একটি বড় পিসি গেমটি কীভাবে আমার সিপিইউর 50% ব্যবহার করতে পারে এবং 60fps এ চালাতে পারে যখন 60fps @ 60fps এ ঘূর্ণনকারী টিএপট এর একটি ডেক্স ডেমো একটি তীব্র 30% ব্যবহার করে?

ডিটিএক্স ডেমোর চেয়ে জিটিএ বেশ দক্ষ হওয়ার সম্ভাবনা রয়েছে, তবে এইভাবে সিপিইউ দক্ষতা পরিমাপ করা মূলত নষ্ট হয়ে গেছে। দক্ষতা সংজ্ঞায়িত করা যেতে পারে যেমন প্রদত্ত সময় আপনি কতটা কাজ করেন। একটি সাধারণ জবাবদিহি: একটি লজিকাল সিপিইউ প্রতি এক থ্রেড ছড়িয়ে দেয় এবং এটিতে একটি সাধারণ অসীম লুপ চালানো যায়। আপনি সিপিইউ ব্যবহারের 100% পাবেন তবে কার্যকর নয়, কারণ এটি কার্যকর নয়।

এটি একটি উত্তরও সরিয়ে দেয়: একটি খেলা কীভাবে দক্ষ হতে পারে? "দুর্দান্ত বড় গেমস" এর প্রোগ্রামিং করার সময়, সমস্ত দিকগুলিতে (যা আজকাল সাধারণত মাল্টি-কোর অপ্টিমাইজেশানগুলিও অন্তর্ভুক্ত করে) গেমটি অনুকূলিত করার জন্য একটি বিশাল প্রচেষ্টা উত্সর্গীকৃত হয়। ডিএক্স ডেমো হিসাবে, এর পয়েন্টটি দ্রুত চলছে না, বরং ধারণাগুলি প্রদর্শন করছে।


1

আমি মনে করি আপনার সিপিইউর পরিবর্তে জিপিইউ ব্যবহারের দিকে নজর দেওয়া উচিত ... আমি বাজি ধরেছি যে গ্রাফিক কার্ডটি জিটিএ আইভিতে চাঞ্চল্যকর চেয়ে বেশি ব্যস্ত হয় (এটি ব্যবহারিকভাবে অলস হওয়া উচিত)।

এটি যাচাই করতে আপনি এই মনিটরের মতো কিছু ব্যবহার করতে পারেন:

http://downloads.guru3d.com/Rivatuner-GPU-Monitor-Vista-Sidebar-Gadget-download-2185.html

এছাড়াও ফ্রেমরেটটি বিবেচনার জন্য এমন কিছু, সম্ভবত তেঁতুলের নমুনা পুরো গতিতে চলছে (সম্ভবত 1000fps) এবং বেশিরভাগ গেমস মনিটরের রিফ্রেশ ফ্রিকোয়েন্সি (প্রায় 60fps) এর মধ্যে সীমাবদ্ধ।


1

উত্তরটি vsync এ দেখুন; এ কারণেই তারা একই ফ্রেমের হারে চলছে।

দ্বিতীয়ত, সিপিইউ একটি গেমের নেতৃত্বে মিস করছে। একটি সরল ব্যাখ্যা হ'ল মূল গেম লুপটি কেবল একটি অসীম লুপ:

while(1) { 
  update();
  render();
}

এমনকি যদি আপনার গেমটি (বা এই ক্ষেত্রে টিপট) বেশি না করে আপনি এখনও আপনার লুপে সিপিইউ খাচ্ছেন।

জিটিএতে 50% সিপিইউ "বেশি উত্পাদনশীল" তবে ডেমোতে 30%, সম্ভবত সম্ভবত এটি বেশি কিছু করছে না; তবে জিটিএ অনেকগুলি বিবরণ আপডেট করছে। এমনকি ডেমোতে একটি "স্লিপ (10)" যুক্ত করা সম্ভবত এটি একটি টন দ্বারা সিপিইউ নামিয়ে দেবে।

শেষ পর্যন্ত জিপিইউ ব্যবহারের দিকে নজর দিন। ডেমোটি সম্ভবত একটি আধুনিক ভিডিও কার্ডে <1% নিচ্ছে যখন জিটিএ সম্ভবত গেম খেলার সময় সংখ্যাগরিষ্ঠতা নেবে।

সংক্ষেপে, আপনার মানদণ্ড এবং পরিমাপ সঠিক নয়।


1

ডিএক্স টিপট ডেমো 30% সিপিইউ দরকারী কাজ করছে না। এটি ব্যস্ত-অপেক্ষায় কারণ এর আর কিছু করার নেই।


0

আমি অবাস্তব সিরিজের যা জানি তা থেকে কিছু কনভেনশনগুলি এনক্যাপসুলেশনের মতো ভেঙে যায়। গেমের উপর নির্ভর করে কোডটি বাইটকোডে বা সরাসরি মেশিন কোডে সংকলিত হয়। এছাড়াও, বস্তুগুলি একটি মেসের আকারে রেন্ডার এবং প্যাকেজ করা হয় এবং টেক্সচার, আলোকসজ্জা এবং ছায়াগুলির মতো জিনিসগুলি পূর্বনির্ধারিত হয় যেখানে খাঁটি 3 ডি অ্যানিমেশন হিসাবে এটি বাস্তব সময়ের প্রয়োজন হয়। যখন গেমটি আসলে চলছে তখন কিছু অপ্টিমাইজেশন রয়েছে যেমন কেবলমাত্র কোনও অবজেক্টের দৃশ্যমান অংশগুলি রেন্ডারিং এবং টেক্সট বিশদ প্রদর্শন কেবলমাত্র বন্ধ হয়ে গেলেই। অবশেষে, এটি সম্ভবত সম্ভাব্য যে ভিডিও গেমগুলি একটি নির্দিষ্ট সময়ে প্ল্যাটফর্মের থেকে সেরাভাবে বেরিয়ে আসার জন্য ডিজাইন করা হয়েছিল (উদা: ইন্টেলেক্স ৮ M এমএমএক্স / এসএসই, ডাইরেক্টএক্স, ...)।


0

আমি মনে করি এখানে অনুপস্থিত উত্তরগুলির একটি গুরুত্বপূর্ণ অংশ রয়েছে। বেশিরভাগ উত্তর আপনাকে "আপনার ডেটা জানুন" বলবে। আসল বিষয়টি হ'ল আপনাকে একই পদ্ধতিতে এবং একই মাত্রায় গুরুত্ব সহকারে আপনারও জানতে হবে:

  • সিপিইউ (ঘড়ি এবং ক্যাশে)
  • স্মৃতি (ফ্রিকোয়েন্সি এবং বিলম্ব)
  • হার্ড ড্রাইভ (গতির শর্তে এবং সময় অনুসন্ধানের ক্ষেত্রে)
  • জিপিইউ (# স্কোর, ঘড়ি এবং এর মেমরি / ক্যাশে)
  • ইন্টারফেস: সাতা নিয়ন্ত্রক, পিসিআই সংশোধন ইত্যাদি

তবে সর্বোপরি , বর্তমান আধুনিক কম্পিউটারগুলির সাহায্যে আপনি কখনও >> 30 ফটপিতে একটি সত্যিকারের 1080p ভিডিও প্লে করতে সক্ষম হবেন না (bits৪ বিটের মধ্যে একটি একক চিত্রের চিত্রটি 15 000 কো / 14.9 এমবি লাগবে)। স্যাম্পলিং / নির্ভুলতার কারণে এর কারণ। একটি ভিডিও গেম কখনই পিক্সেল, চিত্র, ডেটা ইত্যাদির জন্য ডাবল স্পষ্টতা (bits৪ বিট) ব্যবহার করবে না, বরং নিম্নতর কাস্টম স্পষ্টতা (-4-8 বিট) ব্যবহার করবে এবং কখনও কখনও যুক্তিসঙ্গত গণনার অনুমতি দেওয়ার জন্য অন্তরঙ্গকরণ প্রযুক্তির সাহায্যে কম স্পষ্টতা পুনরুদ্ধার করা হবে would সময়।

এছাড়াও অন্যান্য কৌশল রয়েছে যেমন ডেটা ক্লিপিং (ওপেনজিএল স্ট্যান্ডার্ড এবং সফ্টওয়্যার প্রয়োগের সাথে উভয়), ডেটা সংকোচন ইত্যাদি mind এগুলিও মনে রাখবেন যে, বর্তমানের জিপিইউগুলি হার্ডওয়ারের সামর্থ্যের মেয়াদে বর্তমান সিপিইউ থেকে 300 গুণ বেশি দ্রুত হতে পারে। তবে, আপনার সমস্যাটি সম্পূর্ণরূপে অনুকূলিত এবং সম্পূর্ণ সমান্তরাল (বিশেষত টাস্ক সমান্তরাল) না হলে একটি ভাল প্রোগ্রামার 10-10x ফ্যাক্টর পেতে পারে।

অভিজ্ঞতার দ্বারা, আমি আপনাকে বলতে পারি যে অপ্টিমাইজেশন হ'ল ঘনিষ্ঠ বক্রের মতো। অনুকূল কর্মক্ষমতা পৌঁছানোর জন্য প্রয়োজনীয় সময়টি অবিশ্বাস্যভাবে গুরুত্বপূর্ণ হতে পারে।

তাই তেঁতুল ফিরে পেতে, আপনাকে জ্যামিতিটি কীভাবে উপস্থাপন করা হয়েছে, নমুনা দেওয়া হয়েছে এবং জিটিএ 5-তে কী জরিমানাটি জ্যামিতি / অঙ্গবিন্যাসের শর্তে এবং সর্বাধিক গুরুত্বপূর্ণ, বিশদটি (যথার্থতা, নমুনা ইত্যাদি) দেখানো উচিত তা দেখতে হবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.