গেমস যখন সরাসরি পিক্সেল আঁকতে পারে তখন কেন আমাদের ওপেনজিএল এবং ডাইরেক্টএক্সের মতো গ্রাফিক্স ফ্রেমওয়ার্ক রয়েছে?


16

গেমস এবং অন্যান্য গ্রাফিকভাবে নিবিড় অ্যাপ্লিকেশনগুলি ওপেনজিএল এবং ডাইরেক্টএক্সের মতো ফ্রেমওয়ার্ক ব্যবহার করে। এছাড়াও তাদের পিক্সেল শেডার এবং ডিএক্স 12 এর মতো বৈশিষ্ট্যগুলির প্রয়োজন।

যখন আমরা কেবল পিক্সেল দ্বারা সমস্ত পিক্সেল আঁকতে পারি তখন কেন আমাদের এই সমস্ত ফ্রেমওয়ার্ক এবং জিপিইউ বৈশিষ্ট্যগুলির প্রয়োজন হবে?

প্রথমত, গেমটি এমনভাবে সংকলন করতে হবে যাতে এটি পিক্সেল দ্বারা পিক্সেল আঁকতে পারে। এটি সম্ভবত গেমটি কার্যকরকরণযোগ্য করে তুলতে পারে তবে এটি কি দ্রুত হবে এবং কোনও 32-বিট রঙের জিপিইউ (এমনকি পুরানোগুলিতে) কাজ করবে?

আমি জানি যে প্রথম 3 ডি গেমস পিক্সেল দ্বারা পিক্সেল আঁকা হয়েছিল তবে তারা এখন এটি করছে না কেন?


সাধারণভাবে প্রতিটি জিনিসে স্বতন্ত্রভাবে করার চেয়ে অনেক কিছুতে একটি অপারেশন করা আরও দক্ষ ও সহজ।
user541686

2
কারণ প্রতিটি গেমের প্রতিটি গ্রাফিক্স কার্ডের জন্য নতুন করে লেখা দরকার। যদি না তারা গ্রাফিক্স কার্ড ব্যবহার না করে তবে তারা ধীর হয়ে যাবে।
ব্যবহারকারী 253751

আমি মনে করি জিপিইউ সংস্থাগুলি তাদের নিজস্ব ডাইরেক্টএক্স ড্রাইভার তৈরি করতে হবে
সুচি ডোগা

1
"তবে যখন আমরা কেবল পিক্সেল দ্বারা সমস্ত পিক্সেল আঁকতে পারি তখন আমাদের কেন এই সমস্ত ফ্রেমওয়ার্ক এবং জিপিইউ বৈশিষ্ট্যগুলির প্রয়োজন হবে?" যে এটা কিভাবে ভাল ওল 'দিন করা হয়েছিল। ওল্ফেনস্টাইন থ্রিডি, ডুম, ডিউক নোকেম থ্রিডি, কোয়াক এবং'৯০ এর শেষের খেলাগুলি বিশুদ্ধ সফ্টওয়্যার রেন্ডারিং ব্যবহার করেছে (কোয়েক একটি বিকল্প হিসাবে ওপেনএল রেন্ডারকে অফার করেছিল)।
el.pescado

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

উত্তর:


23

এটি করা না হওয়ার কারণে গতি সর্বাধিক সাধারণ কারণ । বাস্তবে আপনি যা প্রস্তাব করেন তা করতে পারেন, আপনি যদি নিজের অপারেটিং সিস্টেম তৈরি করেন তবে এটি স্থাপত্যগত কারণে খুব ধীর হতে চলেছে। সুতরাং ধারনা যে এটির দ্রুত কিছুটা ত্রুটিযুক্ত। এমনকি এটি দ্রুততর হলেও, এটি উন্নয়নের ক্ষেত্রে কম দক্ষ হবে (যেমন 10% কাজের জন্য 1% গতি বৃদ্ধি)।

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

উদাহরণ: বিভিন্ন স্থানে ভিডিও মেমোরিতে পিক্সেল ম্যানুয়ালি অনুলিপি করার চেয়ে জিপিইউকে চিত্রটি 10 ​​পিক্সেল ডানদিকে সরিয়ে নেওয়া সুলভ।

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

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

পিএস: পুরানো গেম যেমন করেছে তেমনি একটি এপিআইও এই আপডেটটি করা অসম্ভব করে না। এটি কেবলমাত্র অদক্ষ। এপিআই মনের কারণে নয় তবে এটি অকার্যকর সময়কাল।

পিপিএস: এ কারণেই তারা ভলকানকে বাইরে নিয়ে যাচ্ছেন।


6
See the number of pixels you need to update grows exponetially when the sides grow.চতুষ্পদভাবে, আমি মনে করি।
চিতুলহু

"সিপিইউ থেকে গ্রাফিক্স কার্ডে ডেটা অনুলিপি করা অপেক্ষাকৃত ধীর গতিতে কাজ করা।" এটি সত্য, তবে অপ্রাসঙ্গিক। 60 fps এ কয়েক মিলিয়ন পিক্সেল অনুলিপি করা এমনকি পরিমিত পিসিআই-ই লিঙ্কগুলির চেয়ে সহজেই অর্জনযোগ্য (এটি প্রতি সেকেন্ডে কয়েকশ মেগাবাইট প্রয়োজন হবে))
কক্সি

2
@ pjc50 এটি ভুল নয়, তবে ঠিক সত্য নয়। একটি জিপিইউ একক প্রোগ্রাম (সাধারণত একটি শেডার) প্রচুর পরিমাণে ডেটাতে সমান্তরালভাবে চালানোর জন্য বিশেষজ্ঞ। সুতরাং, আপনাকে আসলে একটি জিপিইউর কম্পিউটিং শক্তি ব্যবহার করতে প্রচুর ডেটাতে একই ক্রিয়াকলাপ করতে হবে। যদি আপনার প্রোগ্রামটি না করে, আপনি সিপিইউতে প্রোগ্রামটি আরও ভালভাবে চালান।
নীরো

2
@ ড্যানিয়েল একটি চতুর্ভুজ ফাংশন। একটি ক্ষতিকারক ফাংশন 2 x হবে । এবং সূচকীয় ফাংশনগুলি চতুর্ভুজ ফাংশনের চেয়ে দ্রুত গতিতে বৃদ্ধি পায়। এক্স22এক্স
নেরো

1
আপনি অনুলিপি এবং চলন্ত সম্পর্কে কথা বলছেন, তবে এর চেয়ে গুরুত্বপূর্ণটি হ'ল আসল চিত্র প্রজন্ম। কোন বস্তুটি কোন মুহুর্তে দৃশ্যমান হবে তা নির্ধারণ করতে হবে, এটি কীভাবে আলোকিত হবে, ধূমপান ইত্যাদির প্রভাবগুলি কী হবে ইত্যাদি GP API গুলি সাধারণ ক্রিয়াকলাপগুলি প্রকাশ করা সহজ করে।
ইমিল

15

কোনও 32-বিট রঙের জিপিইউ (এমনকি পুরানোগুলিও) নিয়ে কাজ করবেন?

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

একটি গ্রাফিকাল এক্সিলারেটর বিশেষায়িত হার্ডওয়্যার এবং সমান্তরালতা ব্যবহার করে একটি সিপিইউর তুলনায় যথেষ্ট দ্রুত পিক্সেল অঙ্কনের অনুমতি দেয় । এক্সিলারেটরটিতে বেশ কয়েকটি প্রসেসরের কোর থাকে। একটি ডেস্কটপ পিসিতে বয়স অনুসারে 1-8 কোরের মধ্যে থাকতে হবে। আমার জিটিএক্স 970 টিআই গ্রাফিক্স কার্ডটিতে 1664 (এক হাজার ছয়শত চৌষট্টি!) কোর রয়েছে। এটি স্পষ্টতই দীর্ঘপথে কাঁচা গতির জন্য পিসিকে মারধর করে।

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


আমার ল্যাপটপের এপিইউতে 256 শেডার কোর @ 686MHZ রয়েছে যখন আমার ট্যাবলেটটিতে 192 টি রয়েছে
সুচি ডোগা

আরে, টাইটান এক্স এর মধ্যে 5760 টি কোর রয়েছে।
ড্যানিয়েল

@ ড্যানিয়েল কি এমন কোনও গেম রয়েছে যা টাইটান এক্স <30fps অতি উচ্চে যায়
T


@ ড্যানিয়েল এই গেমগুলির বিকাশকারীদের অবশ্যই প্রায় 2-4 টি টাইটান এক্স কার্ডের প্রয়োজন থাকতে হবে :)
সুচি ডোগা

14

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

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

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