টুকরা শ্যাডারে টেক্সচারের সমন্বয় গণনা করার সময় কেন টেক্সচার অ্যাক্সেস করা খুব ধীর হয়?


11

জিএলএসএলে টেক্সচার ব্যবহার করার সময়, ভার্টেক্স শ্যাডারে চূড়ান্ত টেক্সচারের স্থানাঙ্কগুলি গণনা করা এবং varyingএস ব্যবহার করে সেগুলি ফ্রেগমেন্ট শেডারে হস্তান্তর করা ভাল । Y স্থানাঙ্কে একটি সাধারণ ফ্লিপ সহ উদাহরণ:

// Vertex shader
attribute vec2 texture;
varying highp vec2 texCoord;
// ...
void main() {
    texCoord = vec2(texture.x, 1.0-texture.y);
    // ...
}

// Fragment shader
varying highp vec2 textureCoordinates;
uniform sampler2D tex;
// ...
void main() {
    highp vec4 texColor = texture2D(tex, texCoord);
    // ...
}

যদি y স্থানাঙ্কের মধ্যে ফ্লিপ হয়, বা vec2(0.5)টেক্সচারের স্থানাঙ্কে যোগ করার মতো আরও সাধারণ অপারেশনটি টুকরা শেডারে করা হয় তবে টেক্সচার অ্যাক্সেসটি খুব ধীর হয়। কেন?


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


1
আমার অনুমানটি হ'ল যে যদি ইউভি কর্ডগুলি ভিএস-তে গণনা করা হয় তবে টেক্সচার ইউনিট পিএস শুরু হওয়ার সাথে সাথে সেগুলি প্রিফেচ শুরু করতে পারে। যদি সেগুলি PS তে গণনা করা হয় তবে টেক্সচার ইউনিটটি প্রথমে অপেক্ষা করতে হবে।
রিচিস্যামস

2
Fww এটিকে "নির্ভরযোগ্য টেক্সচার রিড" বলা হয়, যদি এটি আপনার অনুসন্ধানে সহায়তা করে।
অ্যালান ওল্ফ

আপনার পারফেক্ট পার্থক্য দেখাচ্ছে এমন কিছু পরিমাপ আছে? আমি আসলে এখানে খুব বেশি পার্থক্য হওয়ার আশা করবো না; টেক্সচার আনার জন্য বিলম্বিত হওয়াতে কয়েকটি ALU অপসকে সোয়াম করা উচিত। বিটিডাব্লু, নির্ভরশীল টেক্সচার রিডগুলি যেখানে দুটি (বা আরও) টেক্সচার পড়ে সেখানে প্রথমটির আউটপুটের উপর নির্ভরশীল দ্বিতীয় সহ স্থানাঙ্ক সহ। দুটি টেক্সচার রিডের মধ্যে প্রয়োজনীয় কঠোর অর্ডারের কারণে এগুলি ধীর হয়।
নাথান রিড

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

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

উত্তর:


11

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

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


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