Лінійний алгоритм Брезенхема - це спосіб малювання прямих, використовуючи лише швидкі цілі операції (додавання, віднімання та множення на 2). Однак він генерує в’язані лінії. Чи існує аналогічно швидкий спосіб намалювати протиалізійні лінії?
Лінійний алгоритм Брезенхема - це спосіб малювання прямих, використовуючи лише швидкі цілі операції (додавання, віднімання та множення на 2). Однак він генерує в’язані лінії. Чи існує аналогічно швидкий спосіб намалювати протиалізійні лінії?
Відповіді:
Чи існує аналогічно швидкий спосіб намалювати протиалізійні лінії?
Ні, тому що за визначенням антизадана лінія торкається більшої кількості пікселів. Такі алгоритми будуть повільнішими.
У програмному растеризаторі повсюдним способом малювання антиалійних ліній є алгоритм ліній Xiaolin Wu . Це не важко реалізувати, і все одно за цим посиланням є незвично якісний псевдокод.
У апаратній растровій трубі лінійку примітиву розширюють на квадратичний простір екрану за замовчуванням (або наданий користувачем) геометрію шейдера, а потім малюють у вигляді двох трикутників, які потім можуть бути антисексуальними звичайними способами.
У Raytracer є найрізноманітніші варіанти. Варто подумати про те, як ви насправді хочете намалювати 1D об’єкт. Може, як циліндр (ву-тіні!). Зауважте, що це вводить питання перспективи / скорочення, які можуть (а можуть і не бути) такими, якими ви хочете. Не існує чіткого узагальнення. Тоді, очевидно, що б ви не робили, ви просто переглядаєте це.