Я выполняю рендеринг, связанный с игрой, с помощью Silverlight, и когда я присоединяю пиксельный шейдер к изображению, которое имеет (вращательное) преобразование, я вижу странный, размытый , эффект пикселизации.1003 *
Вот скриншот проблемы.Изображение слева имеет только преобразование.Изображение справа имеет преобразование и пиксельный шейдер.
http://andrewrussell.net/offsite/2010/stack-sites/cat-girl-pixels.png
Вы можете увидеть это в действии здесь, в моем блоге (щелкните элемент управления Silverlight, чтобыдобавить пиксельный шейдер).
Речь идет о пиксельном шейдере SilverSprite, который используется для тонирования цвета изображения.Вы можете просмотреть его исходный код здесь .
Я применяю преобразование MatrixTransform
(с вычисленным вручную преобразованием, масштабированием, поворотной матрицей).Проблема возникает при повороте изображения.
Элемент, к которому применяются и шейдер, и преобразование, - это Image
, который добавляется к Canvas
в коде.ImageSource
изображения - это WriteableBitmap
, но эффект также происходит с BitmapImage
.
Мой вопрос: что вызывает эту нечеткую пикселизацию? и что можетбыть сделано, чтобы уменьшить или удалить его?