2011-01-25 19 views
1

私は数百万の線分を画面に描画したいと思います。 ほとんどの場合、ユーザーは「ユニバース」の特定の領域のみを表示しますが、ユーザーはすべての線分を一度に見るために「ズーム」することができます。何百万ものセグメントを画面上に描画する

私の理解では、プリミティブは「三角形」なので、線分を三角形で表現する必要があります。何百万という三角形。

XNAはこの仕事に適したツールですか、それとも遅すぎますか?

追加の詳細:

  1. これは、ゲームのために、いくつかのプロセスのモデリングプログラムのためではありません。
  2. 私が使用する言語を気にしない(XNAが私に勧められた)

P.S:あなたは追加の詳細が必要な場合は私に知らせてください。

+0

なぜ、たくさんの線を描きたいのですか?それはゲームのためですか? – BlackBear

+0

特定の言語をお使いですか? –

+0

質問が更新されました。 – drozzy

答えて

0

私の理解では、プリミティブ は「三角形」であるということですので、 は三角形としての私の線分を表現するために私が持っています。 数百万の三角形。

誤った、XNAは完全に次のようにしてあなたのための線を描くことができます(ライン1の終了頂点がLINE2の開始頂点である場合、またはPrimitiveType.LineStrip)

GraphicsDevice.DrawIndexedPrimitives(PrimitiveType.LineList, vertexOffset, 0, numVertices, startIndex, primitiveCount); 

XNAは、この仕事に適したツールです、または それは遅すぎるでしょうか?

XNAは "ツール"であり、多くの線を描画している場合、これはGDI +よりも高速で、Unmannaged D3Dと組み合わせたC++よりも実装が簡単です。線を描くことは非常に安価な操作です。 XNAをインストールして、同時に描画できる線の数を確認するためのプロトタイプを作成するだけです。 (私の推測は少なくとも100万である)。次に、他のポスターで説明されている高度な技術を本当に使用する必要があるかどうかを確認します。

またフェリーチェPollanoによって提案された「ポリライン簡素化」技術は、三角形だけで構成されたモデルのために、個々の行のために動作しません(パフォーマンスは向上しますが、ビジュアルを減少させるために、一度、いくつかの大きなのために小さな三角形の多くを交換することができますもしあなたがズームアウトされていれば、誰も気づかないでしょう)常に2つの三角形で構成されているので、「太い線」の場合は機能しません。 (曲げ線を許さない限り)。

0

詳細をズームすると、単純な境界ボックスで、目に見えないオブジェクトを描画しないように三角形が表示されているかどうかを確認します。ユーザーがすべてをズームするときは、ポリラインの簡略化アルゴリズムhttp://www.softsurfer.com/Archive/algorithm_0205/algorithm_0205.htmを適用して描画することを避けてください。

0

This guyが同じ問題を抱えており、thisが役立つ可能性があります(hereが原因です)。

+2

これは理論的に質問に答えるかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供することが推奨されます(http://meta.stackexchange.com/q/8259)。 –

0

はい、Feliceが指摘しているように、問題を単純化するのはゲームの名前です。ハードウェアとアルゴリズムには明らかな制限があります。したがって、「より多くのもの」を描く唯一の方法は、実際には「少ないもの」を描くことです。

シーンをOctTreeに分割するなどの手法を使用して、View Frustrum Cullingを行うことができます。あなたが描いているものをスケールアウトするためのテクニックがたくさんあります。私のお気に入りの1つは、詐欺師を使用して描画しやすい合成シーンを作成することです。ここで技術を説明した紙です: http://academic.research.microsoft.com/Paper/1241430.aspx

詐欺師は を表示するために必要な レンダリング時間を短縮するために*複雑な * ジオメトリを置き換える一般に使用 イメージベースのプリミティブです複雑なシーン。しかし、大きな問題 は、詐欺師のために大量のメモリが必要です。 本論文では、 所望のフレームレートの画像の品質が が常に満たされるように、同時に詐欺師 メモリの膨大な量を必要としない ながら、自動的にシーンに 詐欺師を配置 アルゴリズムを示します。新しい配置方法 によって、およびカリング 可視性および詳細幾何 レベルのような他の加速技術の同時使用を介して提供される 低いメモリ要件。

+0

あなたとFeliceは、ラインの断片に意味をなさないアルゴリズムとテクニックに飛びつきます:)。偽装画像の頂点の数は、線の場合の2倍にする必要があります。 –

関連する問題