আমি কীভাবে ওপেনজিএলে অ্যান্টি-এলিয়জিং বাস্তবায়ন করব?


28

আমি ওপেনজিএলে ফুল-স্ক্রিন অ্যান্টি-এলিয়জিং করতে চাই এবং ওপেনজিএল নিজেই সরবরাহ করে এমন অ্যান্টি-এলিয়াসিং ব্যবহার করতে চাই না, যেহেতু আমি একটি গেম তৈরি করছি এবং এতে ভাল প্রভাব চাই want

আমি কিভাবে এগিয়ে যেতে হবে?


"জিএল নিজেই সরবরাহ করেছেন অ্যান্টি-এলিয়জিং" দ্বারা, আপনি কি পুরানো দুর্বল নামযুক্ত লাইন এবং বহুভুজনীয় মানের ইঙ্গিতগুলি উল্লেখ করেন যা "অ্যান্টিয়ালাইজিং" হিসাবে চিহ্নিত করা হয়, বা আপনি জিএলএক্স / ডাব্লুজিএল ভিজ্যুয়ালগুলির মাধ্যমে নিয়মিত এমএসএএ ব্যবহার করার কথা উল্লেখ করছেন?
লার্স ভিক্লুন্ড

উত্তর:


28

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

  • দ্রুত আনুমানিক অ্যান্টি-আলিয়াজিং (গিক্স 3 ডি) - বেশিরভাগ ক্ষেত্রেই ভাল। প্রয়োগ করা এবং বুঝতে খুব সহজ। খসড়াটি তীক্ষ্ণ, টেক্সচারে উচ্চ বিপরীতে শব্দটি কিছুটা ঝাপসা হয়ে যায়। সূক্ষ্ম হিসাবে 1/4 পিক্সেল হিসাবে প্রান্তগুলি MSতিহ্যবাহী এমএসএএ হিসাবে মৃত-নির্ভুল দেখাচ্ছে look এর চেয়ে কম খাড়া, এটি নির্ভুলতার কিছুটা হারায়।

  • নরমাল ফিল্টারড অ্যান্টি-আলিয়াজিং (গেমডেভ ) - এটি এখনও সঠিকভাবে পরীক্ষা করা যায় নি, তবে এটি বোঝা সহজ। সেরা ক্ষেত্রে এটি 16x এমএসএএ এর সাথে সাদৃশ্যপূর্ণ এবং সবচেয়ে খারাপ ক্ষেত্রে এটি 2x এমএসএএ এর মতো। এটি প্রান্ত এবং আপেক্ষিক কোণগুলি উপস্থাপনের জন্য একটি অস্থায়ী স্বাভাবিক মানচিত্র উত্পন্ন করে। আপনি লুমা পার্থক্য বা রঙের পার্থক্য সহ সাধারণ মানচিত্রের নমুনা করতে পারেন।

  • মরফোলজিকাল অ্যান্টি-আলিয়াজিং (আইরিওকু) - এসএমএএ-তে উন্নত করা হয়েছে - সাবপিক্সেল মফোলজিকাল এএ। এটি 4 পাসে বেশ জটিল, তবে আমি দেখেছি সেরা ফলাফলগুলি অর্জন করে। এটি প্রান্তের সাথে ধীরে ধীরে 1/100 থেকে 1/200 পিক্সেল খাড়া (!) হিসাবে প্রান্তগুলি তৈরি করে। স্যাম্পলিং লুমা-ভিত্তিক, রঙ-ভিত্তিক বা গভীরতা ভিত্তিক হতে পারে। টেক্সচারগুলি খুব খাস্তা এবং পরিষ্কার থাকে। (উদাহরণটি ডিএক্স 10 এবং এইচএলএসএল ভিত্তিক, এটি GLSL এ নির্ভুলভাবে পোর্ট করতে কিছুটা সময় নিতে হবে)

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

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


7

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

আর একটি উপায় হ'ল প্রসেসিং-প্রক্রিয়াকরণ অ্যান্টিয়ালাইসিং ব্যবহার করা, যেখানে আপনি দৃশ্যটি স্বাভাবিক হিসাবে রেন্ডার করেন এবং তারপরে এলিয়াসিত প্রান্তগুলি গোপন করার জন্য শেষের ফলাফলটিতে কিছু টার্গেট ঝাপসা করে। এর জন্য বিভিন্ন কৌশল রয়েছে তবে এই মুহূর্তে অন্যতম সেরা / সর্বাধিক জনপ্রিয় যাকে এফএক্সএএ (ফাস্ট অ্যাজেক্টিমিট অ্যান্টি-আলিয়াজিং) বলা হয়।

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

ওয়েবে এমএসএএ বা এফএক্সএএ দুটি প্রয়োগ করার বিষয়ে আপনি সুনির্দিষ্ট তথ্য সন্ধান করতে পারেন - কেবলমাত্র এই শর্তগুলির মধ্যে একটিতে গুগল।


2

আপনি কি নিজের জিএলএসএল শেডার কোড করতে রাজি? যদি তা হয় তবে এই টিউটোরিয়ালটি পরীক্ষা করে দেখুন।


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