Re[3]: Antialiasing.
От: McSeem2 США http://www.antigrain.com
Дата: 15.10.02 18:39
Оценка:
Здравствуйте Аноним, Вы писали:

А>Огромный thanx за исходники, но к сожалению нет сил и времени в них разбираться. Не могли бы вы объяснить — в идеале у нас есть например точка с float x, float y координатами, которой мы можем нарисовать любой примитив — line, circles, splines or anything else. Как сделать ее antianliasing'овой?


Нет ничего проще. Вычисляешь площадь части пиксела (в общем случае, площадь трапеции, в частном — площадь прямогугольного треугольника), занятую телом фигуры. Прзрачность пиксела устанавливаешь пропорционально этой площади. Точнее, не совсем пропорционально — как правило, требуется еще и гамма-коррекция. Одной точки здесь не достаточно — надо знать вектор, а так же, по какую сторону от него находится тело фигуры. Далее. Через один пиксел может проходить сколько угодно границ. Что делать в этом случае? Вершины полигонов тоже надо обработать корректно — там надо в общем случае вычислять площадь пяти- или шестиугольника, причем невыпуклого. Алгоритм, который я использую, отрабатывался в течение полугода совместно с автором FreeType (David Turner, http://www.freetype.org). Apple, Adobe и прочие монстры над этим вообще годами работают. Если нет сил и времени разбираться, но есть силы сочинить нечто подобное с нуля, то я снимаю шляпу
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.