I am doing some game-related rendering with Silverlight, and when I attach a pixel shader to an image that has a (rotational) transformation, I am seeing a strange, fuzzy, pixelation effect.
Here is a screenshot of the problem. The image on the left has just a transformation. The image on the right has a transformation and a pixel shader.
(source: andrewrussell.net)
You can see this in action here on my blog (click the Silverlight control to add the pixel shader).
The pixel shader in question is the one from SilverSprite used to tint an image's colour. You can view its source code here.
The transformation I am applying is a MatrixTransform
(with a hand-calculated translate, scale, rotate matrix). The problem appears when rotating the image.
The element that both the shader and the transform are being applied to is an Image
that is added to a Canvas
in code. The Image's ImageSource
is a WriteableBitmap
but the effect also happens with a BitmapImage
.
My question is: what is causing this fuzzy pixelation? and what can be done to reduce or remove it?