Алгоритм линий Брезенхема - это способ рисовать прямые линии, используя только быстрые целочисленные операции (сложение, вычитание и умножение на 2). Тем не менее, он генерирует псевдонимы. Есть ли такой же быстрый способ рисовать сглаженные линии?
Алгоритм линий Брезенхема - это способ рисовать прямые линии, используя только быстрые целочисленные операции (сложение, вычитание и умножение на 2). Тем не менее, он генерирует псевдонимы. Есть ли такой же быстрый способ рисовать сглаженные линии?
Ответы:
Есть ли такой же быстрый способ рисовать сглаженные линии?
Нет, потому что по определению сглаженная линия затрагивает больше пикселей. Такие алгоритмы будут медленнее.
В программном растеризаторе повсеместным способом рисования сглаженных линий является алгоритм линий Xiaolin Wu . Это не сложно реализовать, и в любом случае по этой ссылке присутствует необычно высококачественный псевдокод.
В аппаратном растровом канале линейный примитив расширяется до квадрата экранного пространства стандартным (или предоставляемым пользователем) геометрическим шейдером, а затем рисуется в виде двух треугольников, которые затем могут быть сглажены обычными способами.
В raytracer есть множество вариантов. Стоит подумать о том, как на самом деле вы хотите нарисовать одномерный объект. Может быть, как цилиндр (Ву тени!). Обратите внимание, что это приводит к проблемам перспективы / ракурса, которые могут (или не могут) быть тем, что вы хотите. Нет четкого обобщения. Тогда, очевидно, что бы вы ни делали, вы просто пробуете это.