রিয়েলটাইম বজায় রেখে একটি দৃশ্যের কতগুলি বহুভুজ আধুনিক হার্ডওয়্যার পৌঁছতে পারে এবং কীভাবে সেখানে পৌঁছতে পারে?


11

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

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


2
আমি মনে করি না যে প্রশ্নটি খুব অবিচ্ছিন্নভাবে শেষ হয়েছে, তবে 12 মাসের মধ্যে কোনও সংখ্যার উত্তর ভুল হতে চলেছে।
ড্যান হাল্মে

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

7
এর উত্তর দেওয়া সত্যিই অসম্ভব। প্রথমত, "রিয়েলটাইম" 60fps কি? 30? কম? দ্বিতীয়ত, আপনার কী জিপিইউ রয়েছে এবং আপনি কোন রেজোলিউশনে রেন্ডার করছেন তার উপর ভিত্তি করে উত্তরটি বিশাল আকারে পরিবর্তিত হবে। তৃতীয়ত, কীভাবে রেন্ডারিং কাজ করে তার বিশদ উপর নির্ভর করে উত্তরটি বিস্তরভাবে পরিবর্তিত হবে। দৃশ্যের জটিলতার সীমাগুলি কেবলমাত্র প্রতি বহুভুজের সংখ্যার চেয়ে জটিল, তবে ড্র কলগুলির সংখ্যা, রাজ্যের পরিবর্তনগুলি, পাসের রেন্ডারগুলি ইত্যাদির মতো বিষয়গুলি জড়িত — যা ইঞ্জিন কীভাবে কাজ করে, শিল্পীরা কীভাবে নির্মাণ করেছিলেন তার দ্বারা প্রভাবিত হয় দৃশ্য, এবং আরও ...
নাথান রিড

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

1
এটি কিছুটা দেরিতে হলেও এখানে আপনি ব্লেন্ডারে 24.000.000 ভার্টিস সহ স্ট্যাটিক জাল দেখতে পারেন। এবং আমি এটিকে 40 এফপিএস দিয়ে খুব ঘোরান। আমি মনে করি আধুনিক গ্রাফিক কার্ডগুলি কি করতে পারে এটি আশ্চর্যজনক।
ব্যবহারকারী 6420

উত্তর:


5

আমি মনে করি এটি সাধারণত গৃহীত হয় যে বাস্তব সময়টি ইন্টারেক্টিভের উপরে everything এবং ইন্টারেক্টিভকে "ইনপুটটির প্রতিক্রিয়া হিসাবে চিহ্নিত করা হয় তবে এ্যানিমেশনটি ঝাঁকুনির মতো বলে মনে হয় এটি মসৃণ নয়"।
সুতরাং আসল সময়টি এমন একজনের প্রতিনিধিত্ব করতে হবে এমন গতিগুলির উপর নির্ভর করবে। 24 টি এফপিএসে সিনেমা প্রকল্প এবং বেশ কয়েকটি ক্ষেত্রে যথেষ্ট পরিমাণে আসল সময়।

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

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

তোমার আছে:

  • হার পূরণ
    • জমিন নমুনা
    • আরওপি আউটপুট
  • কল আঁকো
  • লক্ষ্য সুইচ রেন্ডার
  • বাফার আপডেট (ইউনিফর্ম বা অন্যান্য)
  • ওভারড্র
  • শেডার জটিলতা
  • পাইপলাইন জটিলতা (কোনও প্রতিক্রিয়া ব্যবহৃত? পুনরাবৃত্ত জ্যামিতি শেডিং? অবসন্নতা?)
  • সিপিইউ সহ সিঙ্ক পয়েন্টস (পিক্সেল রিডব্যাক?)
  • বহুভুজ সমৃদ্ধি

একটি নির্দিষ্ট গ্রাফিক কার্ডের দুর্বল এবং শক্তিশালী পয়েন্টগুলির উপর নির্ভর করে এই পয়েন্টগুলির মধ্যে একটি বা অন্যটি বাধা হয়ে দাঁড়াবে। এটি নিশ্চিত নয় যে আপনি নিশ্চিতভাবে বলতে পারেন "সেখানে, সেটাই"।

সম্পাদনা করুন:

আমি এটি যুক্ত করতে চেয়েছিলাম, কেউ একটি নির্দিষ্ট কার্ডের জিএফলপস স্পেক চিত্র ব্যবহার করতে পারে না এবং বহুভুজ ধাক্কা দেওয়ার ক্ষমতাকে লিনিয়ারে মানচিত্র করতে পারে না। যেহেতু বহুবিধ চিকিত্সা গ্রাফিক্স পাইপলাইনে একটি যথাযথ বাধা অতিক্রম করতে হবে কারণ এখানে দুর্দান্ত বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে: https://fgiesen.wordpress.com/2011/07/03/a-trip-through-the-ographic -পাইপলাইন-২০১১-পার্ট -৩ /
টিএলডিআর: আদিম সমাবেশের আগে শীর্ষকে একটি ছোট ক্যাশে ফিট করতে হবে যা মূলত একটি অনুক্রমিক জিনিস (ভার্টেক্স বাফার অর্ডার বিষয়)।

আপনি যদি জিফর্স 7800 (9 বছর বয়সী?) এর সাথে এই বছরের 980 এর সাথে তুলনা করেন তবে মনে হয় এটি প্রতি সেকেন্ডে অপারেশনগুলির সংখ্যা এক হাজার গুণ বেড়েছে। তবে আপনি বাজি ধরতে পারেন যে এটি বহুগুণকে হাজার গুণ দ্রুত ধাক্কা দিচ্ছে না (যা এই সাধারণ মেট্রিক দ্বারা প্রায় 200 বিলিয়ন সেকেন্ড হবে)।

EDIT2:

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

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

একটি প্যাকেট হ'ল যা একটি ড্র কল দিয়ে রেন্ডার করা যায়।
এটিতে সনাক্তকারী রয়েছে:

  • ভার্টেক্স বাফার
  • সূচক বাফার
  • ক্যামেরা (পাস এবং লক্ষ্য রেন্ডার দেয়)
  • উপাদান আইডি (শেডার, টেক্সচার এবং ইউবিও দেয়)
  • চোখের দূরত্ব
  • দৃশ্যমান

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

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

এমনকি বিভিন্ন উপকরণের আইডি-এর মধ্যে, শেডার পরিবর্তনের সংখ্যা হ্রাস করতে (মেটাল স্টেট-স্যুইচ ক্রিয়াকলাপগুলির মধ্যে সবচেয়ে ব্যয়বহুল) এবং দ্বিতীয়ত টেক্সচার বাইন্ডিং পরিবর্তনগুলির একটি উপ-অর্ডারিং করা যেতে পারে।

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

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

এবং পরিশেষে, আধুনিক হার্ডওয়্যার সহ, একটি খুব ব্যয়বহুল (বিকাশমান), তবে সম্ভাব্য উচ্চ ফলপ্রসূ পদক্ষেপটি হ'ল এপিআইটিকে ধাতব / ম্যান্টেল / ভলকান / ডিএক্স 12-স্টাইলে স্যুইচ করা এবং হাতে হাতে রেন্ডারিং কমান্ড প্রস্তুত করা।

একটি ইঞ্জিন যা রেন্ডারিং কমান্ড প্রস্তুত করে একটি বাফার তৈরি করে যা একটি "কমান্ড তালিকা" ধারণ করে যা প্রতিটি ফ্রেমে ওভাররাইট করা হয়।

সাধারণত ফ্রেমের একটি ধারণা "বাজেট" থাকে, একটি গেম সামর্থ করতে পারে। আপনাকে 16 মিলিসেকেন্ডে সবকিছু করতে হবে, সুতরাং আপনি স্পষ্টতই জিপিইউ সময় "লাইটপ্রি পাসের জন্য 2 এমএস", "উপাদানগুলি পাসের জন্য 4 এমএস", "পরোক্ষ আলোতে 6 এমএস", "পোস্টপ্রসেসেসের জন্য 4 এমএস" ভাগ করুন ...


1
এক মিলিয়ন আমার কাছে কিছুটা নিচু মনে হচ্ছে।
joojaa

কার্ডটি কতটি এমপোলি / গুলি সক্ষম তা কেবল গ্রহণ করুন এবং এটি এফপিএস যা এটি 1 মিলিয়ন রেন্ডার করবে। আমি কেবল একটি এটিআই 4800 এইচডি তে ভূখণ্ডের রেন্ডারারের জন্য একটি পরীক্ষা প্রত্যাহার করেছি। যদি আপনি এই তালিকা হরণ করে en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units তারা দিতে প্রান্তবিন্দু / সেকেন্ড তথ্য ইউনিফাইড স্থাপত্য যুগ থেকে শুরু করে না। তবে 10 বছরের পুরানো হার্ডওয়্যারটি 1 মিলিয়ন ত্রিভুজগুলির জন্য প্রায় 40 টি এফপিএস বিজ্ঞাপন বলে মনে হচ্ছে। আমার উত্তরে সিএফ সম্পাদনা করুন
v.oddou

@ ভি.ড্ডো হ্যাঁ, তবে এই সংখ্যার কাছাকাছি যেতে আপনাকে গতিশীল দৃশ্যের ক্ষেত্রে জ্যামিতির ব্যাচিং বা তাত্ক্ষণিকভাবে করা দরকার এবং আমি এটিই জিজ্ঞাসা করছি। কীভাবে নিজেকে হার্ডওয়্যার না করতে পারে তার দিকে 2% পথ কীভাবে আটকাবেন না।
লামেজেডন

@ লামাডেডন আঃ, আমি দেখছি, এটি আসলেই একটি প্রশ্ন। এটি সম্পর্কে আমি কী বলতে পারি তা আমাকে দেখতে দিন। (EDIT2)
v.oddou

উত্তরে গভীর উত্তর! আমি একজন মডারেটরের চেয়ে ব্যবহারকারী হিসাবে কয়েকটি ছোটখাট সম্পাদনা করেছি। আপনার উদ্দেশ্যটির সাথে মেলে না তবে যেকোনও / সমস্ত পিছনে ফিরে যেতে দ্বিধা বোধ করুন।
ট্রিকোপল্যাক্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.