ওপেনজিএল অপ্টিমাইজেশন টিপস [বন্ধ]


26

ওপেনজিএলকে আরও দক্ষ করে তোলার বিষয়ে আপনার কাছে কী টিপস বা কৌশল রয়েছে?

উত্তর:


16

GlStart () / glEnd () এর চেয়ে VBO ব্যবহার করুন। এটি জিপিইউর স্মৃতিতে ডেটা স্থানান্তর করতে চক্র সাশ্রয় করে।


7
এর চেয়ে আরও বেশি, গ্লোবেগিন এবং গ্ল্যান্ড পরবর্তী সংস্করণগুলিতে অবনতি হয়েছিল এবং সংস্করণ 3.x এবং তারপরে সম্পূর্ণরূপে অপসারণ করা হয়েছে (এবং তাই এটি কাজ করবে না)। আপনি যদি ওপেনজিএল 3.x প্রসঙ্গে অনুরোধ করেন তবে আপনি সেগুলি সম্পূর্ণরূপে ব্যবহার করতে পারবেন না।
510

ডাইরেক্টএক্স আসলে এটি আপনার উপর চাপিয়ে দেয়, এর সমতুল্য নেই glStart()/glEnd()
নাইট 666

পছন্দ করেছেন আমি বুঝতে পারি নি যে এটি হ্রাস করা হয়েছে।
মিঃ ভালডেজ

3
@ সাঃচ্যান্ডলার: এটি স্তন্যপান! আমি আমার সমস্ত অঙ্কন glBegin () এবং glEnd () দিয়ে শিখেছি। Noooo !!!

8

সরঞ্জামগুলির সামান্য ভিন্ন হলেও প্রোফাইল, প্রোফাইল, প্রোফাইলের স্ট্যান্ডার্ড টিপটি ঠিক এখানে প্রয়োগ হয়।

gdeBugger হুডের নীচে কী চলছে তা আপনাকে দেখতে সহায়তা করতে দুর্দান্ত। যদিও এটি ব্যয়বহুল।


2
কেবল যোগ করতে চেয়েছিলেন এটি এখন বিনামূল্যে free
DMan

8

এগুলি ওপেনজিএলে অ্যাপলের ডকুমেন্টেশন রেফারেন্স থেকে এসেছে তবে প্রতিটা কিছুটা ঠিক সাহায্য করে? ;)

ওপেনজিএল পারফরম্যান্স অপটিমাইজেশন: ওএস এক্স-এ ওপেনজিএল ডেটা থ্রুপুটটি অপ্টিমাইজ করা হচ্ছে

(এই শেষটি একটি নমুনা অ্যাপ্লিকেশন)
ভার্টেক্স অপটিমাইজেশন

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

আপনি ভিডিওগুলি এখানে পেতে পারেন । এগুলি দেখতে আপনার আইটিউনস এবং একটি অ্যাপল অ্যাকাউন্ট প্রয়োজন (তবে তারা নিখরচায়!: ডি)


7

ঠিক আছে, এটি সত্যিই নির্ভর করে আপনি যা করার পরিকল্পনা করছেন তার উপর নির্ভর করে তবে এখানে বেসিকগুলি রয়েছে:

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

  • শেডারে আপনার আলোকসজ্জা করুন। এটি কেবল আপনার বিচক্ষণতা বজায় রাখতে সহায়তা করবে না, তবে এটি আপনাকে খুব শীতল জিনিস যেমন টুন শেডার এবং মুলতুবি আলোতে সহায়তা করে

  • কণা স্তন্যপান। এমনকি ওপেনএল পয়েন্ট স্প্রিট ব্যবহার করার সময়ও।


6

আপনার রাষ্ট্র পরিবর্তনগুলি হ্রাস করুন। প্রচুর প্ল্যাটফর্মে প্রতিটি রাজ্য পরিবর্তন সম্ভাব্যভাবে পাইপলাইনটি ফ্লাশ করে। একই রকম আইটেম একসাথে ব্যাচ করা এবং একবার রাষ্ট্র পরিবর্তন করা আরও ভাল।


4
glEnable(GL_CULL_FACES);

সাধারণ একটি লাইনার যা পিছনে মুখের ক্লুলিং প্রয়োগ করে। বহুভুজ গণনাটি ছাঁটাই করার জন্য এটি দুর্দান্ত। পলি গণনা হ্রাস করার জন্য ফ্রাস্টাম / অবলোশন কুলিংয়ের দিকেও নজর দিন।

আরেকটি বিষয় সন্ধানের জন্য হ'ল আপনার ভেক্টর এবং কোয়ার্টেরিয়নের সিমড (বেশিরভাগ ক্যামেরা ঘূর্ণায় ব্যবহৃত হয়)। আপনি যদি এএসএমের সাথে জগাখিচুড়ি করতে না চান তবে libSIMD যা সি তে সিমডি পরিচালনা করার জন্য একটি দুর্দান্ত গ্রন্থাগার এটি পরীক্ষা করে দেখুন


4

আপনি যখন স্থানীয় ভেরিয়েবল অ্যাক্সেস করতে পারবেন তখন গ্লগেট * ব্যবহার করবেন না eg

  • ওপেনগেল থেকে টেক্সচারের আকারটি জিজ্ঞাসা করবেন না, এগুলি ভেরিয়েবলগুলিতে লোড করার জন্য সংরক্ষণ করুন
  • আপনি যখন নিজের অ্যাপ্লিকেশনটির পরিবর্তনগুলি সংরক্ষণ করতে পারেন তখন ওপেনগিএল থেকে লাইন প্রস্থ / পয়েন্ট আকারগুলি জিজ্ঞাসা করবেন না

এই কলগুলি সত্যই ধীর

অব্যবহৃত স্টাফটি glBegin এর বাইরে নিয়ে যান - গ্ল্যান্ড এন্ড ক্লজ (এটি গ্লোরালার বা গ্লনোরমাল বা অন্য যে কোনও কিছু হোক) যদি এটি ভিতরে না পরিবর্তন হয়। ওপেনজিএল একটি রাষ্ট্রীয় মেশিন, এটি সর্বশেষ মানটি ব্যবহার করে।


3

মিনিমাইজ করুন ওপেনএল কমান্ডগুলি কী। সুতরাং আপনাকে অবশ্যই সমস্ত অঙ্কন কমান্ড ব্যাচ করতে হবে। 2 ডি গেমসের জন্য, আলটাস টেক্সচার ব্যবহার করা এবং একই স্পষ্টতাকে একটি ওপেনগল কমান্ডে ভাগ করে নেওয়া সমস্ত স্প্রিট আঁকাই ভাল ধারণা।


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

3

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

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