私はスタック オーバーフローが初めてで、3D グラフィックス プログラミングも初めてです。データを読み取り (現在は区切りテキスト ファイルから読み取りますが、最終的にはデータ配列から読み取ります)、データを 3D でグラフィカルに表示するアプリを作成するタスクが与えられました。データは、ログをスキャンしている 3D スキャナーから読み取った x、y、z 座標です。これらのログの 3D 表現を 4 つの異なる角度から画面に表示する必要があります。データを 2 次元の Point3D 配列に読み込み、それを使用して HelixViewport3D で 3D モデルを作成しています。ネストされた for ループを使用して、配列内のデータ ポイントが特定の x、Z 境界内にあることを確認します。範囲内にある場合は、そのデータから三角形を作成する必要があります。配列全体が渡されたら、Model3DGroup をビューポートの子に追加します。
topModel.Content = topGroup;
this.mainViewport.Children.Add(topModel);
これには約 8 秒かかり、画面上のすべてのデータ (約 500,000 の三角形) では、ズーム、パン、回転は非常に遅くなります。WPF 3D グラフィックスのパフォーマンスを向上させる方法はありますか? 実際には、完成したアプリでズーム/パン/回転できるようにする必要はありませんが、デバッグには役立ちます。最終的なアプリは、異なる側面から 4 つの異なる方法で静的に表示された同じモデルになります。ただし、データを読み込んでグラフィックを 1 ~ 5 秒で表示できるようにする必要があります。どんな助けでも大歓迎です。私の質問がかなり明確であることを願っています!
編集:頂点バッファリングをさらに掘り下げた後、これが私がする必要があることです。ポイント使いすぎ。C# での頂点/インデックス バッファリングに関する文献を誰かが教えてくれれば、大歓迎です!