У відстеженні променя променів / траєкторії одним із найпростіших способів анти-псевдоніму зображення є переосмислення значень пікселів та середнє значення результатів. IE. замість того, щоб знімати кожен зразок через центр пікселя, ви компенсуєте зразки на деяку кількість.
У пошуках Інтернету я знайшов два дещо різні методи для цього:
- Створюйте зразки, як вам потрібно, і зважте результат за допомогою фільтра
- Один із прикладів - PBRT
- Створіть зразки з розподілом, рівним формі фільтра
- Два приклади smallpt і Бенедикту Bitterli «s Вольфрам Renderer
Створіть і зважте
Основний процес:
- Створюйте зразки, як вам завгодно (випадкові, стратифіковані, з низькою невідповідністю і т.д.)
- Зсув промінь камери за допомогою двох зразків (x і y)
- Візуалізуйте сцену промінням
- Обчисліть вагу, використовуючи функцію фільтра та відстань вибірки по відношенню до піксельного центру. Наприклад, фільтр для коробки, фільтр для наметів, фільтр Гаусса тощо)
- Нанесіть вагу на колір із візуалізації
Створіть у формі фільтра
Основна передумова - використовувати вибір зворотного перетворення для створення зразків, які розподіляються відповідно до форми фільтра. Наприклад, гістограма зразків, розподілених у формі Гаусса:
Це можна зробити точно, або ввібравши функцію в дискретний pdf / cdf. smallpt використовує точний зворотний cdf фільтр для наметів. Приклади методу бінінгу можна знайти тут
Запитання
Які плюси і мінуси кожного методу? І навіщо ви використовувати одне над іншим? Я можу придумати кілька речей:
Згенерування та зважування здаються найбільш надійними, дозволяючи будь-яку комбінацію будь-якого методу відбору з будь-яким фільтром. Однак для цього потрібно відстежити ваги в ImageBuffer, а потім зробити остаточне рішення.
Генерування у формі фільтра може підтримувати лише позитивні форми фільтру (тобто немає Мітчелла, Катмулла Рома чи Ланцоса), оскільки у вас не може бути негативного PDF-файлу. Але, як було сказано вище, це легше здійснити, оскільки не потрібно відстежувати будь-яку вагу.
Хоча, врешті-решт, я думаю, що ви можете розглядати метод 2 як спрощення способу 1, оскільки він по суті використовує неявну вагу фільтру Box.