ওপেনজিএলের টেক্সেলফ্যাচ এবং টেক্সচার কীভাবে আলাদা?


18

আমি মধ্যে মূল পার্থক্য বুঝতে texelFetchএবং texture, কিন্তু বিবরণ সম্পর্কে কিছু প্রশ্ন আছে:

  • না texelFetchএকটি কার্যকারিতা শাস্তি জড়িত? যেমন একটি ক্যাশে ব্যবহার না বা যেমন?
  • হয় texelFetchএবং textureবিনিমেয় যখন ব্যবহার GL_NEAREST?

1
আপনি একটি পরীক্ষার কেস লিখতে এবং দেখতে পারেন ...
ThorinII

1
আপনি কোনও উত্তর গৃহীত হিসাবে চিহ্নিত করতে ভুলে গেছেন, বা এটি এখনও একটি মুক্ত বিষয়?
আনকো

উত্তর:


23

texelFetchথেকে বেশ আলাদা texture

textureআপনার সাধারণ টেক্সচার অ্যাক্সেস ফাংশন যা ফিল্টারিং এবং নরমালাইজড ( [0,1]) জমিনের স্থানাঙ্কগুলি পরিচালনা করে। texelFetchঅস্বাভাবিক স্থানাঙ্ক ব্যবহার করে টেক্সচারে সরাসরি কোনও টেক্সেল অ্যাক্সেস করে (কোনও ফিল্টারিং হয় না) (যেমন (64,64)128x128 টেক্সচার বনাম (.5,.5)সাধারণ স্থানাঙ্কের মধ্যে মিডল ইশ টেক্সেল )।


4
+1 আমি যুক্ত করতে চাই যে টেক্সেলফ্যাচটি ডেটা অ্যাক্সেসের জন্য বোঝানো হয় যখন টেক্সচারটি কোনও চিত্র হিসাবে প্রদর্শিত হয় না, তবে অন্যান্য ধরণের ডেটা, টেক্সচারের বিপরীতে যা টেক্সটগুলিকে চিত্র হিসাবে ব্যবহার করার উদ্দেশ্যে বোঝানো হয়, এ কারণেই এটি ফিল্টারিং ইত্যাদি ব্যবহার করে -
ধারণা 3d

পারফরম্যান্সে কি কোনও পার্থক্য রয়েছে?
লেনার হোয়েট

1
@ এমসিবি: সম্ভবত, তবে আমি এটি খুব বড় হওয়ার আশা করবো না, এবং এটি সম্ভবত হার্ডওয়্যার বিক্রেতার দ্বারা অনেক আলাদা হবে। পারফরম্যান্স হ'ল এই ফাংশনগুলির মধ্যে কোনটি চাওয়ার সিদ্ধান্ত নেওয়ার সময় ব্যবহার করা একেবারে ভুল মেট্রিক: আপনার অবস্থার জন্য সঠিক একটি ব্যবহার করুন (আপনাকে হার্ডওয়ারের ফিল্টারিং textureপ্রয়োজন হয় এবং তাই ফিল্টারিং না করার জন্য আপনার হার্ডওয়ারের প্রয়োজন হয় এবং তাই অবশ্যই ব্যবহার করা উচিত texelFetch)।
শান মিডলডিচ

3
@ সানমিডলিচ এই ক্ষেত্রে পারফরম্যান্সটি কীভাবে ভুল মেট্রিকের হয়? যদি texelFetchদ্রুত হয় এবং নিকটতম প্রতিবেশী ফিল্টারিংয়ের পক্ষে যথেষ্ট পরিমাণ থাকে তবে আপনি যে কোনও কারণেই প্রসঙ্গে এনএন ফিল্টারিংয়ে পরিবর্তন করতে পারবেন না, এটিকে পছন্দ করা যুক্তিসঙ্গত হবে texture
লেনার হোয়েট

@ এমসিবি: texelFetchএবং textureমৌলিক উপায়ে ভিন্নভাবে কাজ করুন। ইনপুটগুলিও দেখুন: টেক্সচার কোঅর্ডিনেট বনাম সাধারণ স্থানাঙ্কগুলি। তারা বিভিন্ন উদ্দেশ্যে পরিবেশন। একটি কেবল অপরের অপ্টিমাইজেশন নয়।
শান মিডলডিচ

6

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

টেক্সেলফ্যাচ টেক্সচারটিকে একটি চিত্র হিসাবে বিবেচনা করে, তাই আপনি পিক্সেলের সামগ্রীটি হুবহু অ্যাক্সেস করতে পারেন। আপনি সাধারণত যখন সেই বিষয়বস্তুটি প্রয়োজন ঠিক তখনই করেন যা খুব কম তবে ব্যবহার্য উপলক্ষে:

  • কিছু নির্দিষ্ট পোস্ট প্রসেসিং ফিল্টার (গাসিয়ান ব্লার টেক্সচারের নমুনা বিরক্তি কাজে লাগায় এবং তাই এটি টেক্সেলফ্যাচ ব্যবহার করতে পারে না)
  • যখন শীর্ষগুলি টেক্সচার থেকে ডেটা পড়তে হবে এবং এটি 2 স্থানাঙ্কের উপর নির্ভর একটি অপারেশন

টেক্সট 2 ডি টেক্সচারটিকে টেক্সচার হিসাবে বিবেচনা করে। আপনি পিক্সেলের সঠিক সামগ্রীটি চান না, তবে আপনি সবচেয়ে বাস্তব ফলাফল চান istic একটি স্ট্যান্ডার্ড টেক্সচার রিড একটি খুব জটিল অপারেশন এবং এতে এক বা একাধিক মিপম্যাপ স্তর থেকে ইন্টারপোলটেড ডেটা পড়া জড়িত এবং তারপরে এটি আবার ইন্টারপোলিট হয়। এই সমস্ত ব্যয়বহুল অপারেশন হ'ল ভিজ্যুয়াল আর্টিক্টস এড়ানো।

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

একটি ক্ষেত্রে রয়েছে যেখানে টেক্সট 2 ডি (প্রায়) টেক্সেলফেটের মতোই কাজ করে:

  1. ফিল্টারটি GL_NEAREST
  2. আপনি 1 স্তরের একটি অসম্পূর্ণ মিপম্যাপ পিরামিড ব্যবহার করছেন
  3. আপনার ইউভিগুলি ভার্টেক্সের উপাদানগুলিকে সাধারণীকরণ করা হয় না (তবে আপনাকে সেগুলি শেডারে স্বাভাবিক করতে হবে)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.