2009-03-27 8 views
7

オクルージョンアルゴリズムは、CADおよびゲーム業界で必要です。私が思う2つの業界では違います。私の質問は次のとおりです:オクルージョンアルゴリズムコレクション

  1. 2種類のインダストリーズにそれぞれどのようなオクルージョンアルゴリズムが適用されていますか?
  2. とは何ですか?

私はCADソフトウェアの開発に取り組んでいます。私たちが採用したオクルージョンアルゴリズムは次のとおりです。 - オブジェクト識別子をその色(整数)に設定してから、シーンをレンダリングします。可視オブジェクト。パフォーマンスはあまり良くないので、私はここでいくつかの良いアイデアを得たいと思っています。ありがとう。


anwsersを読んだ後、私はここに閉塞アルゴリズムということを明確にしたいが、「オクルージョンカリング」を意味 - パイプラインにそれらを送信する前に、目に見える表面またはエンティティを見つけます。

Googleでは、gamasutraにアルゴリズムが見つかりました。他の良いアイデアや結果はありますか?ありがとう。

+0

アイテムバッファを使用しているようです。http:// stackoverflow。com/questions/498601/what-is-the-the-best-approach-efficient-the-first-intersection-a/570861#570861 これは悪いアルゴリズムではありませんが、ビジュアルエッジで問題が発生します。 –

答えて

3

それは答えのほとんどはこれまでのところ唯一の画像次の閉塞を議論することを私に立ち往生。 私はCADについて完全にはわかりませんが、BSPツリー、oct木、および/またはポータルレンダリングを使用して、より高いレベルでゲームのオクルージョンが開始され、視錐台内に表示されるオブジェクトをすばやく特定します。

+0

+1。 DirectX/OpenGLは、あなたが見たものだけを(Zバッファを介して)描画するための、まともな仕事をしています。より良いパフォーマンスを得るためにレンダリングするものの量を制限したい場合は、これらのアルゴリズムの1つを調べる必要があります。 –

+0

はい。ピクセルベースのオクルージョンとは別に、D3DもOpenGLもシーングラフ「マジック」を行います。クリッピングとカリングは、レンダリングデバイスに既知のすべてのポリゴンを送信することを正当化するには十分ではありません。 –

5

ゲームでは、2つの3Dライブラリ(DirectXまたはOpenGL)のいずれかを使用してシーンの背後でオクルージョンが行われます。具体的にするために、閉塞はZ bufferを使用して行われます。各点にはZ成分があり、より離れたより近い閉塞点である点があります。

通常、オクルージョンアルゴリズムは、DirectXまたはOpenGL関数を実装する専用の3Dグラフィックス処理チップによってハードウェアで実行されます。 DirectXまたはOpenGLを使用するゲームプログラムは、3D空間にオブジェクトを描画し、投影およびオクルージョンを考慮してOpenGL/DirectXライブラリでシーンをレンダリングします。

2

検索する用語はhidden surface removalです。

リアルタイムレンダリングでは、通常、単純な隠面消去方法を利用しています。バックフェールのカリングです。各ポリは、サーフェスから設定された距離で事前計算される「サーフェスノーマル」ポイントを持ちます。カメラに対するサーフェス法線の角度を調べることで、サーフェスが向いていることが分かります。レンダリングする必要はありません。

ここにいくつかの対話型のflash-based demos and explanationsがあります。

+0

このプロセスは必要ですが、十分ではありません。凹面のあるオブジェクトでも、サーフェスを正しい順序でレンダリングする必要があります。一方のオブジェクトが別のオブジェクトの前に表示される場合は、簡単なバックフェールのカリングは役に立ちません。 –

+0

Zバッファリングが既に言及されているので、私はバックフェイスカリングという名前を付けました。もし私がこれ以上書いたら、私はリンクされたWikipediaのページをほとんど反復しています。 – spoulson

1

ハードウェアピクセルZバッファリングははるかに簡単な手法ですが、高密度のオブジェクトシーンでは同じピクセルを複数回レンダリングしようとすることがありますが、状況によってはパフォーマンス上の問題が発生する可能性があります。 - 表示されていない数千ものオブジェクトをマッピングしテクスチャリングしていないことを確認する必要があります。

私は現在、私は、これはいくつかのアイデアを刺激見つけた、私のプロジェクトの一つで、この問題を考えている: http://www.cs.tau.ac.il/~dcor/Graphics/adv-slides/short-image-based-culling.pdf