ওপেনগিএলে বাফার অবজেক্ট ফাংশনগুলির ( glBufferData
, glBufferSubData
এবং সম্ভবত আরও কয়েকজন) একটি প্যারামিটার রেখেছেন usage
, যা ডকুমেন্টেশন দ্বারা অভিযুক্ত ব্যবহারের ইঙ্গিত হিসাবে বর্ণনা করা হয়েছে, সম্ভবত বাস্তবায়নটি আরও ভাল পারফরম্যান্সের ফলস্বরূপ সহায়তা করতে পারে।
ব্যবহার
ডেটা স্টোরের প্রত্যাশিত ব্যবহারের ধরণটি নির্দিষ্ট করে। সিম্বলিক ধ্রুবক হতে হবে
GL_STREAM_DRAW
,GL_STREAM_READ
,GL_STREAM_COPY
,GL_STATIC_DRAW
,GL_STATIC_READ
,GL_STATIC_COPY
,GL_DYNAMIC_DRAW
,GL_DYNAMIC_READ
, অথবাGL_DYNAMIC_COPY
।
[...]
ব্যবহারটি কীভাবে বাফার অবজেক্টের ডেটা স্টোর অ্যাক্সেস হবে তা জিএল বাস্তবায়নের ইঙ্গিত। এটি জিএল বাস্তবায়নকে আরও বুদ্ধিমান সিদ্ধান্ত নিতে সক্ষম করে যা বাফার অবজেক্টের কার্য সম্পাদনে উল্লেখযোগ্যভাবে প্রভাব ফেলতে পারে। এটি অবশ্য ডেটা স্টোরের আসল ব্যবহারকে সীমাবদ্ধ করে না।
উইকি একইভাবে অস্পষ্ট:
এগুলি কেবলমাত্র ইঙ্গিতগুলি all এটি স্ট্যাটিক বাফারটি তৈরি হওয়ার পরে সংশোধন করা বা স্ট্রিম বাফারটি কখনই সংশোধন না করা পুরোপুরি আইনী ওপেনএল কোড।
[...]
এগুলি এমন প্রশ্ন যা কেবল সাবধানতার সাথে প্রোফাইলিং দিয়ে উত্তর দেওয়া যায়। এবং তারপরেও, উত্তরটি কেবলমাত্র সেই নির্দিষ্ট হার্ডওয়্যার বিক্রেতার কাছ থেকে নির্দিষ্ট ড্রাইভার সংস্করণের জন্যই সঠিক হবে।
মোটামুটি, এই পরামিতিটি কতটা প্রাসঙ্গিক? ড্রাইভাররা কি এটিকে আসলে বিবেচনায় রাখে, এবং যদি সেগুলি করে, আপনার অভিজ্ঞতায় এটি অনুশীলনে পারফরম্যান্সকে কতটা প্রভাবিত করে? আপনার কাছে কি শেয়ার করার ডেটা আছে?
আমি একটি পাতলা গ্রাফিক্স API অ্যাবস্ট্রাকশন স্তরটি লিখেছি যার অর্থ বিদ্যমান এপিআইগুলির মধ্যে দুটি হিসাবে প্রয়োগ করা হবে, এবং এটি কেবলমাত্র এই পরামিতিটিকে পুরোপুরি উপেক্ষা করতে এবং উন্মুক্ত বিমূর্ততা থেকে এটি আড়াল করতে প্ররোচিত করে।