WriteableBitmapピクセルをピクセル単位で更新する最良の方法を誰かが知っていたのかどうかは疑問に思っていました...私は色で取り込めるPixels.SetValueメソッドを見ることができます単一の場所。しかし、確かに速くオプションが...一度にすべてのSetValue(theArray)、その後、最初にこのような何かを、アレイを設定することです...WriteableBitmap SetValueパフォーマンス/ Texture2D SetData
Int32[] pixels = bmp.Pixels;
for(Int32 y = 479; y > 0; y--)
for (Int32 x = 0; x < 480; x++)
{
pixels[x + (y * 480)] = 0;
}
bmp.Pixels.SetValue(pixels);
しかし、そのオプションがあるように見えるdoesntの?
objviouslyここで私は黒にすべてを設定しています...しかし、私はより多くをしたい場合は...
だから基本的には、イムはちょうどピクセルでビットマップのピクセルを作成/操作するための最良の方法は何か尋ねます最高のパフォーマンスを得るには?
編集:私はちょうどそのTexture2D.SetData <Int32>(theArray)がこの機能を持っていることに気づいた、誰もがこの性能についてコメントすることができますか?またはこれを行うためのより良い方法をお勧めしますか?
私はビットマップと素晴らしいパフォーマンスが進むとは思わない。画面全体を60fpsでリフレッシュしますか? – Dykam
配列を渡すだけでメソッドが魔法的に速くなるわけではありません。 WriteableBitmap.Pixelsは配列であり、WriteableBitmapから実際のイメージを生成しようとすると処理が行われます。したがって、Pixels配列内のすべての値を自分で書くか、またはPixels配列内の配列の内容をコピーするメソッドを呼び出すことは、パフォーマンスに関しては同じです。 –
Iveはわずかに変更されました。UpdateIntervalはTimeSpan(60000)に設定され、Int32 [] _pixels = new Int32 [230400]を操作し、描画イベントではmyTexture2D.SetDataを呼び出します(_pixels) ...私はまだデバイス上でそれをテストhavent ... –
Wacka