Я пытаюсь визуализировать некоторые примитивы, используя Diret2D (SharpDX), но результат для меня неудовлетворителен — все эллипсы размыты (см. Ниже). Есть ли варианты сделать эллипсы более плавными? Я отрисовываю геометрию для BitmapRenderTarget, затем получаю растровое изображение и делаю DrawBitmap для WindowRenderTarget.
Три года спустя ответа до сих пор нет, так что здесь идет:
Установка сглаживания в AntiAliasMode.PerPrimitive позволит рисовать линии, которые не являются вертикальными или горизонтальными, без пикселизации или неровностей. Это решает проблему для эллипсов, но не предотвращает размытость прямых.
OP относится к размытости, которая возникает, когда узкие линии не выровнены с позициями пикселей, поэтому не могут быть нарисованы идеально. Классическое наблюдение состоит в том, что с AntiAliasMode.PerPrimitive
сетка со всеми строками, указанными толщиной в один пиксель, появится с некоторыми линиями шире, а некоторые — с AntiAliasMode.None
некоторые строки могут полностью исчезнуть.
Для вертикальных и горизонтальных линий это можно решить, добавив или вычтя ширину 0,5 пикселя в положение каждой линии. Эта настройка заставит линии привязываться к точным точкам расположения пикселей, чтобы можно было правильно нарисовать линию ширины.
Других решений пока нет …