সুতরাং আমি। ডানেক্ট নীচে শার্পডএক্স ব্যবহার করে কিছু ডাইরেক্টএক্স বিকাশ করছি (তবে ডাইরেক্টএক্স / সি ++ এপিআই সমাধান প্রযোজ্য)। আমি ডাইরেক্টএক্স ব্যবহার করে অরথোগোনাল প্রজেকশন (উদাহরণস্বরূপ বৈজ্ঞানিক অ্যাপ্লিকেশনগুলির জন্য 2 ডি লাইন অঙ্কন সিমুলেট করে) লাইনগুলি রেন্ডার করার দ্রুততম উপায় খুঁজছি।
আমি যে ধরণের প্লট রেন্ডার করতে চাইছি তার একটি স্ক্রিনশট নীচে:
এই ধরণের প্লটের জন্য কয়েক মিলিয়ন খণ্ডের সাথে পরিবর্তনশীল বেধের লাইন থাকা, প্রতি-লাইনে অ্যান্টিএলাইজিং (বা সম্পূর্ণ স্ক্রিন এএ চালু / বন্ধ) বা ছাড়াই লাইন থাকা অস্বাভাবিক নয়। আমাকে লাইনগুলির জন্য খুব ঘন ঘন আপডেট করতে হবে (যেমন 20 বার / সেকেন্ড) এবং জিপিইউতে যতটা সম্ভব অফলোড।
এখন পর্যন্ত আমি চেষ্টা করেছি:
- সফ্টওয়্যার রেন্ডারিং, যেমন জিডিআই + আসলে খারাপ পারফরম্যান্স নয় তবে স্পষ্টতই সিপিইউতে ভারী
- ডাইরেক্ট 2 ডি এপিআই - জিডিআই এর চেয়ে ধীর গতিতে, বিশেষত অ্যান্টিয়েলাসিং চালু রয়েছে
- ডাইরেক্ট 3 ডি 10 এই পদ্ধতিটি ব্যবহার করে এএ অনুকরণ করতে সিপিইউয়ের পাশে ভার্টেক্স রঙ এবং টেসেললেশন ব্যবহার করে । এছাড়াও ধীর গতিতে (আমি এটির প্রোফাইল দিয়েছি এবং ৮০% সময় ভার্টেক্স পজিশনের জন্য ব্যয় করা হয়)
তৃতীয় পদ্ধতির জন্য আমি জিপিইউতে একটি ত্রিভুজ স্ট্রিপ প্রেরণ করতে এবং ভার্টেক্স বুফার্স ব্যবহার করছি এবং প্রতি 200 মিমিগুলিকে নতুন শীর্ষকোনা দিয়ে আপডেট করছি। আমি ১০,০০,০০০ লাইন বিভাগের জন্য প্রায় 5FPS এর রিফ্রেশ রেট পাচ্ছি। আমার আদর্শ লক্ষ লক্ষ দরকার!
এখন আমি ভাবছি যে দ্রুততম উপায়টি জিপিইউতে টেসেলেশন করা যেমন, জ্যামিতি শেডারে। কোয়াডস তৈরি করতে আমি একটি লাইন-তালিকা হিসাবে একটি টেক্সচারে প্যাক এবং জ্যামিতি শেডারে আনপ্যাক হিসাবে পাঠাতে পারি। অথবা, কেবল একটি পিক্সেল শেডারে কাঁচা পয়েন্টগুলি প্রেরণ করুন এবং ব্রেসনহাম লাইন অঙ্কনটি সম্পূর্ণ পিক্সেল শেডারে প্রয়োগ করুন। আমার এইচএলএসএল 2006 থেকে মরিচা, শেডার মডেল 2 যাতে আধুনিক জিপিইউগুলি যে ক্রেজি করতে পারে তা আমি জানি না don't
সুতরাং প্রশ্নটি হ'ল: - এর আগে কি কেউ এই কাজ করেছে, এবং চেষ্টা করার জন্য আপনার কাছে কোনও পরামর্শ আছে? - দ্রুত জ্যামিতি আপডেট করার সাথে কার্যকারিতা উন্নত করার জন্য আপনার কোনও পরামর্শ আছে (উদাহরণস্বরূপ প্রতি 20 মিমিগুলিতে নতুন ভার্টেক্স তালিকা)?
21 শে জানুয়ারী আপডেট করুন
আমি লাইনস্ট্রিপ এবং ডায়নামিক ভার্টেক্স বাফার্স ব্যবহার করে জ্যামিতির শেডার ব্যবহার করে উপরে পদ্ধতি (3) প্রয়োগ করেছি। এখন আমি 100k পয়েন্টে 100FPS এবং 1,000,000 পয়েন্টে 10FPS পাচ্ছি এটি একটি বিশাল উন্নতি তবে এখন আমি ফিল-রেট এবং গণনা সীমাবদ্ধ তাই অন্যান্য কৌশল / ধারণা সম্পর্কে আমি ভাবনা পেয়েছি।
- একটি রেখাংশের জ্যামিতির হার্ডওয়্যার ইনস্ট্যান্সিং সম্পর্কে কী?
- স্প্রাইট ব্যাচ সম্পর্কে কি?
- অন্যান্য (পিক্সেল শেডার) ওরিয়েন্টেড পদ্ধতি সম্পর্কে কী?
- আমি কি জিপিইউ বা সিপিইউতে দক্ষতার সাথে কুল রাখতে পারি?
আপনার মন্তব্য এবং পরামর্শ অনেক প্রশংসা!