আমি একবারে কতগুলি টেক্সচার বাঁধতে পারি?


23

আমি একটি গেম ইঞ্জিন বিকাশ করছি এবং এটি কেবলমাত্র আধুনিক (শেডার মডেল 4+) হার্ডওয়্যারটিতে কাজ করবে। আমি অনুমান করি যে, আমি এটি শেষ করার পরে, এটি এমন অযৌক্তিক প্রয়োজন হবে না।

আমার প্রশ্ন: একটি আধুনিক গ্রাফিক্স কার্ডে আমি একবারে কতগুলি টেক্সচার বাঁধতে পারি? 16 যথেষ্ট হবে। আমি কি বেশিরভাগ আধুনিক গ্রাফিক্স কার্ডগুলি এই সংখ্যার টেক্সচার সমর্থন করতে পারি?

আমার জিটিএক্স 460 32 টি সমর্থন করে বলে মনে হচ্ছে তবে বেশিরভাগ আধুনিক ভিডিও কার্ডের প্রতিনিধি কিনা তা আমার কোনও ধারণা নেই।


আপনি কোন রেন্ডারিং এপিআই ব্যবহার করছেন?
আদম

2
অবশ্যই
ওপেনএল

উত্তর:


53

ওপেনজিএলে আবদ্ধ হতে পারে এমন টেক্সচারের সংখ্যা 32 বা 16 নয় । এটি আপনার সাথে যা হয় তা নয় glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &texture_units);। এই ফাংশনটি টুকরা শ্যাডারে অ্যাক্সেসযোগ্য টেক্সচারের সংখ্যা পুনরুদ্ধার করে ।

দেখুন, প্রতিটি শ্যাডারের এটি ব্যবহার করতে পারে এমন সংখ্যার নিজস্ব সীমা রয়েছে । তবে, টেক্সচারের মোট সংখ্যা রয়েছে যা ব্যবহার করা যায়, পিরিয়ড। এটি দ্বারা (ওপেনজিএল) সংজ্ঞায়িত করা হয় GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS

সুতরাং দুটি সীমা আছে: প্রতি-পর্যায়ে টেক্সচার এবং টেক্সচার-মোট-সীমাবদ্ধ।

ওপেনজিএল 3.x প্রতি-পর্যায় সীমা 16 হওয়ার জন্য সর্বনিম্ন সংখ্যা নির্ধারণ করে, তাই হার্ডওয়্যার প্রতি-পর্যায়ে 16 টির চেয়ে কম টেক্সচার থাকতে পারে না। এটির উচ্চতর সীমা থাকতে পারে তবে আপনি জানেন আপনি কমপক্ষে ১ get পেয়ে যাচ্ছেন 3..x টেক্সচার-সর্বমোট-সীমাবদ্ধ 48 টির জন্য সর্বনিম্ন সংখ্যা নির্ধারণ করে A একা: 16 * 3 স্তর। একইভাবে, জিএল 4.x সংখ্যাকে 16-টেক্সচার-প্রতি-পর্যায়ে এবং 96 টেক্সচার-মোট-সীমাবদ্ধ (অর্থাত: কমপিট শেডার সহ 16% 6 স্তর) হিসাবে সংখ্যার সংজ্ঞা দেয়।

আবার এগুলি ন্যূনতম সংখ্যা। হার্ডওয়্যার পৃথক হতে পারে (এবং না)।

নির্দিষ্ট হার্ডওয়্যার হিসাবে, আপনি যে কোনও ডিএক্স 10-শ্রেণীর হার্ডওয়্যার এই সংখ্যার সাথে মেলে আশা করতে পারেন। ডিএক্স 11 ক্লাসের হার্ডওয়্যারটির কিছু বৈকল্পিকতা রয়েছে; এনভিআইডিআইএ (জিফোর্স 4XX +) এবং উচ্চ-প্রকারের এএমডি চিপস (ওরফে: জিসিএন-কোর্স) প্রতি-পর্যায়ে 16-এর বেশি থাকতে পারে।


2
আমি আশা করি এটি গৃহীত উত্তর ছিল। এটি আমার 5 মিনিটের অর্থহীন পড়া বাঁচাতে পারত।
ফিবলস

3

আমি বিশ্বাস করি 32 বর্তমানে সর্বাধিক সংখ্যক টেক্সচারের সীমাবদ্ধ can যতদূর আমি বলতে পারি 8800 সিরিজের 32 টেক্সচার ইউনিট ছিল।

আমি যতদূর জানি, ওপেনজিএল 4.x সমর্থনের জন্য আপনার একটি ফার্মি বা আরও নতুন এনভিডিয়া কার্ড (বা এটিএমডি কার্ড সম্পর্কিত) প্রয়োজন হবে, উচ্চতর প্রান্তের মডেলগুলির 32 টি ইউনিট মনে হয়, যখন সর্বনিম্ন প্রান্তের কার্ডগুলি (জিটি 430, উদাহরণস্বরূপ) ) আছে 16. তবে, এএমডি স্পেশাল শিটগুলিতে তারা 80 বা 128 টেক্সচার ইউনিটগুলির মতো নম্বরগুলি তালিকাভুক্ত করে তবে 32 টি রঙিন আরওপি ইউনিট তালিকাভুক্ত করে যা মনে হয় প্রজন্ম ধরে চলমান রয়েছে।

অন্যদিকে জিটিএক্স 480 60০ টেক্সচার ইউনিট এবং ৪৮ টি আরওপি ইউনিট সহ তালিকাভুক্ত রয়েছে, অন্যদিকে 430 এর মতো নিম্ন প্রান্তের কার্ডগুলিতে কেবল 16 টেক্সচার ইউনিট এবং 4 আরওপি ইনাইট রয়েছে। সুতরাং সামগ্রিকভাবে আমি সত্যিই সেগুলির মধ্যে একটিরও নিশ্চিত নই যে আপনি প্রকৃতপক্ষে সন্ধান করছেন।

আপনি নন-ফিক্সড ফাংশন পাইপলাইন রেন্ডারিংয়ের জন্য উপলব্ধ টেক্সচার ইউনিটগুলির সংখ্যা পরীক্ষা করতে পারেন glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &texture_units);, তবে, যদি আপনার কিছু বিবিধ হার্ডওয়্যার অ্যাক্সেস থাকে তবে আপনি নিজেই পরীক্ষা করতে পারেন।

সম্পাদনা: এই সাইটটি আপনাকে সমস্ত প্রকারের ভিডিও কার্ডের ওপেনগিএল ক্ষমতাগুলির তুলনা করতে দেয়, এটি আপনাকে প্রয়োজনীয় নম্বরগুলি দেয়: http://feedback.wildfiregames.com/report/opengl/device/GeForce%20GTX%20580

পিএস: এএমডি এবং এনভিডিয়া সম্প্রতি "বাইন্ডলেস টেক্সচার" প্রবর্তন করেছে, (এএমডি এর আলাদা নাম রয়েছে) যা আপনাকে টেক্সট্রে ইউনিটগুলিতে আবদ্ধ না করে বিপুল সংখ্যক টেক্সচার ব্যবহার করতে দেয়, এই মুহূর্তে এটি কেবল ওপেনগিলে উপলব্ধ।


1
তারপরে, আসল উত্তরটি 'এইচডাব্লু'র যতটা প্রস্তাব দিতে পারে আপনার কাছে তার মতোই' ' অথবা, এটি অন্যরকমভাবে বলতে গেলে, যতটা সম্ভব দ্রুত চালানো উচিত। (এবং প্রায় প্রতিটি ক্ষেত্রকে কভার করে ওপেনলএল)।
ডার্কওংস

আমি মনে করি @ ডার্কওয়িংস, হার্ডওয়ারটি পরিচালনা করতে পারে তার চেয়ে বেশি টেক্সচার বাঁধাই সাধারণত একটি ত্রুটি বা ড্রাইভারের সময় নির্ধারণের দিকে পরিচালিত করে। আমি এটিও ভুলভাবে পড়েছি, তিনি বলেছিলেন শ্যাডার মডেল 4+ ওপেনগল 4+ নয়। প্রথম ডিএক্স 10 কার্ড (এক্স 2900 এবং কার্ডের 8800 পরিবার) দেখে তারা মনে হয় আপনার কমপক্ষে 16 টেক্সচার ইউনিট রয়েছে।

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

4
-১: এই উত্তরটি ভুল। আমার উত্তরটি কেন দেখুন (এখানে এটি ব্যাখ্যা করা খুব দীর্ঘ)।
নিকল বোলাস

1
যা অবিলম্বে সুস্পষ্ট নাও হতে পারে। প্রায় কেউই GL_TEXTURE n GLenums ব্যবহার করে না ; পরিবর্তে GL_TEXTURE0 + n ব্যবহার করুন, যেখানে n আবদ্ধ করার জন্য স্লট। GLenums কেবল 32 টি স্লট পর্যন্ত যায় তবে এর অর্থ ওপেনজিএল আপনাকে 32-তে সীমাবদ্ধ করে না The স্পষ্ট গ্যারান্টি দেয় যে তারা অনুক্রমিক হবে। এছাড়াও, আপনি যদি ডিএসএ ব্যবহার না করে থাকেন তবে আপনি বাইন্ড টু তৈরি / সংশোধন করার জন্য একটি স্লট সংরক্ষণ করতে ইচ্ছুক হতে পারেন, যাতে তৈরি / সংশোধন করার জন্য ব্যবহৃত রাষ্ট্রটি অঙ্কনের জন্য ব্যবহৃত রাষ্ট্রের সাথে কম ইন্টারঅ্যাকশন করে।
ম্যাক্সিমাস মিনিমাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.