我正在使用 Silverlight 进行一些与游戏相关的渲染,当我将像素着色器附加到具有(旋转)变换的图像时,我看到了一种奇怪的、模糊的像素化效果。
这是问题的屏幕截图。左边的图像只是一个变换。右边的图像有一个变换和一个像素着色器。
(来源:andrewrussell.net)
您可以在我的博客上看到这一点(单击 Silverlight 控件以添加像素着色器)。
有问题的像素着色器是 SilverSprite 中用于着色图像颜色的像素着色器。你可以在这里查看它的源代码。
我正在应用的转换是MatrixTransform
(带有手动计算的平移、缩放、旋转矩阵)。旋转图像时出现问题。
着色器和变换都应用于的元素Image
是添加到Canvas
代码中的元素。图像ImageSource
是 aWriteableBitmap
但效果也发生在 a 上BitmapImage
。
我的问题是:是什么导致了这种模糊的像素化?可以做些什么来减少或消除它?