Насправді немає хорошого способу зробити це ефективно аналітично для всіх кутових справ. Більшість або всі комерційні 2D-рендері, які намагаються зробити аналітичний обчислення покриття, роблять передбачувані помилки, яких не мають мультисемплінг-методи.
Типовою проблемою є дві форми, що перекриваються, які мають однаковий край. Поширена ситуація полягає в тому, що альфа-канали доходять до занадто товстого краю альфа, який трохи псевдонімується. Або якщо форми по-різному забарвлені, система плутає, який колір тла. Це надзвичайно дратує.
Зображення 1 : Двигун візуалізації плутає покриття і робить тонкий білий контур там, де не має бути контуру.
По-друге, ідеальне покриття - це фільтрування коробки. Ми, звичайно, можемо зробити краще. Зважаючи на те, що існує стільки спеціальних кутових випадків, які потребують булевих операцій на фігурах, щоб зробити правильно, супер вибірка все ж перевершує. Насправді оцінки покриття можуть використовуватися для концентрації вибірки там, де це, швидше за все, потрібно.
Ситуацію можна спростити до багатокутників на рівні пікселів, тоді дискретне аналітичне рішення можна було б вирішити. Але це за рахунок гнучкості. Наприклад, це не викликає сумніву, що майбутні векторні системи можуть хотіти допускати розмиті лінії змінної ширини, що створюють проблему для аналітичних рішень, як і інші об'єкти зі змінним кольором.
Як це зробити аналітично
Зображення 2 : Припустимо, у вас є ця сцена, вибухнув вигляд справа
Тепер ви не можете просто зробити це аналітично, кожен фрагмент окремо, а потім об'єднати дані. Тому що це призводить до неправильних даних. Дивіться, що альфа-змішування дозволить синьому блиску прогалини, якщо ви це зробили.
Те, що вам потрібно зробити, - це розділити сцену так, щоб кожна фігура усувала те, що знаходиться під іншим:
Зображення 3 : Вам потрібно вирізати основи.
Якщо все непрозоре, то це все прямо. просто обчисліть площу кожного шматка і помножте їх на колір і підсумовуйте їх разом. Тепер ви можете використовувати що - щось на зразок цього .
Все це руйнується, якщо ваші індивідуальні форми не є непрозорими, але навіть це можна зробити на якомусь рівні.
Пам'ятайте:
- Розрахунок AA потрібно робити в лінійному кольоровому просторі та перетворювати назад, щоб використовувати простір.