অ্যান্টি-এলিয়াসিং / রে ট্র্যাকিংয়ে ফিল্টারিং


20

রে ট্রেসিং / পাথ ট্রেসিং-এ, অ্যান্টি-ওরফে ইমেজটির সহজতম উপায়গুলির মধ্যে একটি হল পিক্সেল মানকে নমুনা দেওয়া এবং ফলাফলগুলি গড় করা। অর্থাৎ। পিক্সেলকে কেন্দ্র করে প্রতিটি নমুনার শুটিংয়ের পরিবর্তে আপনি কিছু পরিমাণে নমুনাগুলি অফসেট করেন।

ইন্টারনেটের সন্ধানে, আমি এটি করার জন্য দুটি ভিন্ন পদ্ধতি পেয়েছি:

  1. আপনি চান স্যাম্পল তৈরি করুন এবং একটি ফিল্টার দিয়ে ফলাফল ওজন
  2. ফিল্টার আকারের সমান বন্টন সহ নমুনা তৈরি করুন


উত্পন্ন এবং ওজন

প্রাথমিক প্রক্রিয়াটি হ'ল:

  1. আপনি চান স্যাম্পলগুলি তৈরি করুন (এলোমেলোভাবে, স্তরযুক্ত, স্বল্প-তাত্পর্যপূর্ণ ক্রমগুলি ইত্যাদি))
  2. দুটি নমুনা (x এবং y) ব্যবহার করে ক্যামেরা রে অফসেট করুন
  3. কিরণ দিয়ে দৃশ্যটি রেন্ডার করুন
  4. ফিল্টার ফাংশন এবং পিক্সেল কেন্দ্রের উল্লেখ করে নমুনার দূরত্ব ব্যবহার করে ওজন গণনা করুন। উদাহরণস্বরূপ, বক্স ফিল্টার, তাঁবু ফিল্টার, গাউসিয়ান ফিল্টার ইত্যাদি) ফিল্টার আকার
  5. রেন্ডার থেকে রঙে ওজন প্রয়োগ করুন


একটি ফিল্টার আকারে উত্পন্ন করুন

প্রাথমিক ভিত্তি হ'ল ফিল্টারের আকার অনুযায়ী বিতরণ করা নমুনা তৈরি করতে ইনভার্স ট্রান্সফর্ম স্যাম্পলিং ব্যবহার করা । উদাহরণস্বরূপ, গাউসির আকারে বিতরণ করা কোনও নমুনার একটি হিস্টগ্রাম হবে:
গাউসিয়ান হিস্টোগ্রাম

এটি হয় সঠিকভাবে করা যেতে পারে, বা একটি পৃথক পিডিএফ / সিডিএফ মধ্যে ফাংশন বিন্যাস দ্বারা। ছোট্ট একটি তাঁবু ফিল্টারের সঠিক বিপরীত সিডিএফ ব্যবহার করে। বিনিং পদ্ধতির উদাহরণগুলি এখানে পাওয়া যাবে


প্রশ্নাবলি

প্রতিটি পদ্ধতির কি কি? এবং কেন আপনি একে অপরকে ব্যবহার করবেন? আমি কয়েকটি বিষয় চিন্তা করতে পারি:

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

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

যদিও, শেষ পর্যন্ত, আমি অনুমান করি যে আপনি পদ্ধতি 2টিকে 1 পদ্ধতির 1 সরলকরণ হিসাবে ভাবতে পারেন, কারণ এটি মূলত একটি অন্তর্নিহিত বক্স ফিল্টার ওজন ব্যবহার করে।


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

হতে পারে? কিছুটা
হলেও এর

1
ঠিক আছে, আপনি যদি ফাংশনের শূন্যগুলি ট্র্যাক করেন তবে আপনি আউটপুটটিকে পিডিএফ-এ আবদ্ধ করতে পারবেন। তারপর নমুনা দেওয়ার সময় আপনি নেতিবাচক কিনা তা পরীক্ষা করতে পারেন। নমুনা কোড এখানে: gist.github.com/RichieSams/aa7e71a0fb4720c8cb41
রিচি স্যামস

উত্তর:


9

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

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

কাগজে, তারা মিচেল ফিল্টার নিয়েও পরীক্ষা করেছিলেন, ফিল্টারটির অ্যাবস () থেকে নমুনা তৈরি করে এবং তারপরে @ ট্রাইকোপ্লেক্সের পরামর্শ অনুসারে প্রতিটি নমুনাকে +1 বা −1 দিয়ে ওজন করে তোলেন। তবে এটি ইতিমধ্যে প্রকরণটি বাড়িয়েছে এবং পদ্ধতি 1 এর চেয়ে খারাপ হচ্ছে, সুতরাং তারা সিদ্ধান্তে পৌঁছে যে 2 পদ্ধতিটি কেবল ইতিবাচক ফিল্টারগুলির জন্য ব্যবহারযোগ্য।

বলা হচ্ছে, এই কাগজ থেকে প্রাপ্ত ফলাফল সর্বজনীনভাবে প্রযোজ্য হবে না এবং এটি কিছুটা দৃশ্যনির্ভর হতে পারে যা স্যাম্পলিংয়ের পদ্ধতিটি আরও ভাল। আমি এই প্রশ্নটি অনুসন্ধান করে একটি ব্লগ পোস্ট লিখেছিস্বাধীনভাবে ২০১৪ সালে সম্পূর্ণ রেন্ডারিংয়ের পরিবর্তে একটি সিন্থেটিক "চিত্র ফাংশন" ব্যবহার করে এবং উচ্চতর বিপরীতে প্রান্তগুলি আরও সুন্দরভাবে স্মুথ করার কারণে আরও দৃষ্টি আকর্ষণীয় ফলাফল দেওয়ার জন্য পদ্ধতি 1 পেয়েছে। বেনিডিক্ট বিটারলিও তার পোস্টারটির সাথে তাঁর রেন্ডারারের সাথে একই ধরণের সমস্যার প্রতিবেদন করার বিষয়ে মন্তব্য করেছিলেন (পদ্ধতি 2 ব্যবহার করার সময় আলোর উত্সগুলির চারপাশে অতিরিক্ত উচ্চ-ফ্রিকোয়েন্সি শব্দ)। এর বাইরেও, আমি পদ্ধতির মধ্যে প্রধান পার্থক্যটি পেয়েছি ফলাফলের শব্দের ফ্রিকোয়েন্সি: পদ্ধতি 2 উচ্চতর ফ্রিকোয়েন্সি দেয়, "পিক্সেল আকারের" শব্দ দেয়, যখন পদ্ধতি 1 শব্দের "শস্য" দেয় যা 2-3 পিক্সেল জুড়ে, তবে শব্দের প্রশস্ততা উভয়ের জন্য একই ছিল, তাই কোন ধরণের শব্দ কম খারাপ লাগে সম্ভবত ব্যক্তিগত পছন্দের বিষয়।


ধন্যবাদ! এগুলি দুর্দান্ত সম্পদ। সুতরাং, শেষ পর্যন্ত, 3 টি পদ্ধতি আছে? 1. স্প্ল্যাটিং দিয়ে জেনারেট করুন এবং ওজন করুন 2. স্প্ল্যাটিং না করে উত্পন্ন করুন এবং ওজন করুন 3. ফিল্টার আকারে উত্পন্ন করুন
রিচিস্যামস

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

2
@ রিচিস্যামস আমি জানি না যে আপনি "স্প্ল্যাটিং না করে উত্পন্ন এবং ওজন" কেন ব্যবহার করতেন, বাস্তবে - মনে হয় ফিল্টার গুরুত্বের নমুনার চেয়ে এটি যে কোনও ক্ষেত্রে খারাপ হতে পারে। আমি ধরে নিচ্ছিলাম যে "উত্পন্ন এবং ওজন" স্প্ল্যাটিংকে বোঝায়। আমার মাথার উপরের দিক থেকে স্প্ল্যাটিংয়ের সমান্তরালকরণের জন্য, একটি উপায় হ'ল চিত্রটিকে টাইলগুলিতে বিভক্ত করা, তবে প্রতিটি টাইলকে টাইলের প্রান্তটি অতিক্রমকারী স্প্ল্যাটগুলি ধরার জন্য 2-3 পিক্সেল সীমানা দেওয়া উচিত। তারপরে একটি চূড়ান্ত পাসে, জোড় করে সীমানা টাইলসকে চূড়ান্ত চিত্রের সাথে একত্রিত করুন।
নাথন রিড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.