2

多くの 3D ジオメトリを持つ WPF 3D アプリケーション (C# .NET 4.0) があります。次に、テクスチャを適用してこれらのジオメトリに色を付ける必要があります。テクスチャのソースは、次のような 1 つの大きな .PNG ファイルです。

結果ファイルの例

.PNG ファイルには繰り返しセクションが含まれています。Case、Deviation、Harmonic の組み合わせごとに 1 つのセクション。ケースには 1 つ以上の偏差 (nDev) があります。ケースには、1 つ以上の高調波 (nHarm) もあります。したがって、セクションの数は、各ケースの nDev * nHarm の合計に等しくなります。

セクション内のピクセルの各行は、正確に 1 つのジオメトリにマップされます。

ここに画像の説明を入力

エンドユーザーは、Case (トラフ コンボボックス)、Deviation (トラフ スライダー)、および Harmonic (トラフ スライダー) を選択できる必要があります。この組み合わせにより、セクション オフセットが発生します。基本的な考え方は、TranslateTransform を使用して、このセクション オフセットを使用して元の .png 上の「マッピング領域」を再配置できるということです。

今、私が直面している課題。通常の結果ファイルには次の内容が含まれます。 セクションごとに 200 ~ 400 行 32 ~ 64 倍音から 250 偏差まで 20 ~ 30 ケース

最大限のパフォーマンスを得るには、RenderCapability.MaxHardwareTextureSize境界内に収まるテクスチャを使用する必要があります。したがって、.png をケースごとに (必要に応じて偏差や高調波ごとに) 分割したいと考えています。

質問: 元の .png ファイルを複数のブラシに分割するにはどうすればよいですか? 最高のパフォーマンスを得るには、どのブラシを使用すればよいでしょうか? ImageBrush に固執する必要がありますか (最初の分割後は静的であるため)、または BitmapCacheBrush を使用する必要がありますか?

4

1 に答える 1

0

WPF ブラシの代わりにWriteableBitmapの使用を検討することをお勧めします。その後、ピクセル データ以外はキャッシュせずに、任意のピクセルを書き込むことができます。

于 2011-07-07T17:46:45.423 に答える