Silverlight でゲーム関連のレンダリングを行っています。ピクセル シェーダーを (回転) 変換のある画像にアタッチすると、奇妙でファジーなピクセル化効果が発生します。
これが問題のスクリーンショットです。左の画像は変換だけです。右側の画像には、変換とピクセル シェーダーが含まれています。
(出典: andrewrussell.net )
この動作は、私のブログで確認できます(Silverlight コントロールをクリックして、ピクセル シェーダーを追加します)。
問題のピクセル シェーダーは、画像の色に色合いを付けるために使用される SilverSprite のシェーダーです。ソースコードはこちらでご覧いただけます。
私が適用している変換はMatrixTransform
(手動で計算された変換、スケーリング、回転マトリックスを使用)です。画像を回転させると問題が発生します。
シェーダーと変換の両方が適用される要素は、コード内で にImage
追加されるCanvas
です。画像ImageSource
は ですWriteableBitmap
が、効果は で発生しBitmapImage
ます。
私の質問は、このあいまいなピクセレーションの原因は何ですか? そして、それを減らすか取り除くために何ができるでしょうか?