問題タブ [occlusion-culling]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1018 参照

c# - XNA、オクルーシング カリングと衝突検出

作成中の XNA ゲームのエンジンで衝突検出とオクルージョン カリングをテストするために、quadtree/BSP ハイブリッド プロトタイプを作成しました。

私が理解しているように、ハードウェア アクセラレーションが提供する最適化の 1 つは、頂点とインデックスのリストをカードに保存する機能です。これにより、関連付けられたジオメトリを描画するための呼び出しで、各フレームのモデル データを送信する必要がなくなります。

ジオメトリが多いレベルでは、これを XNA でどのように管理しますか? たとえば、私が OpenGL で作業していた場合、カードの内容のリストを維持し、更新が必要なものだけを送信します。ただし、XNA フレームワークの高度な抽象化レベルは、それをカプセル化して管理できないほどのレベルにあるようです。

なぜ私が間違っているのか、なぜ心配する必要がないのか教えてください。

0 投票する
3 に答える
9232 参照

c++ - C++、OpenGL Z バッファー プリパス

私は単純なボクセル エンジン (Minecraft を考えてください) を作成しており、現在、遮蔽された顔を取り除いて貴重な fps を得る段階にあります。私は OpenGL であまり経験がなく、glColorMask マジックがどのように機能するかをよく理解していません。

これは私が持っているものです:

これはある程度機能しますが、カメラの位置を変更すると、世界が消え始め、線が少なくなり、まったく見えなくなります。

0 投票する
2 に答える
1440 参照

opengl - OPENGL ARB_occlusion_query オクルージョン カリング

特定の数のクエリが実行されるオクルージョン カリングのために GPU GEMS 1 で提案されている方法に興味があります。説明されている方法を使用して、個々のボックスを相互にテストすることはできないため、次のことを行う必要がありますか?

テスト ボックス A -> レンダリング ボックス A

テスト ボックス B -> レンダリング ボックス B

テスト ボックス C -> レンダリング ボックス C

等々...

0 投票する
2 に答える
8482 参照

math - ビュー錐台面の抽出(Gribb&Hartmann法)

私はしばらくの間、錐台面を抽出するグリブ/ハートマン法に取り組んできましたが、ほとんど成功していません。シーンをカリングするためのカメラビュー錐台を構築したいと思います。

私は右手の座標系で列メジャー行列を使用しています。(OpenGLスタイル-私はC#とPlaystation Mobileを使用していますが、計算は同じである必要があります)

飛行機をWorld-Spaceに配置したいので、View-Projection Matrix(つまり、projectionMatrix * viewMatrix)から錐台を構築します。ビューマトリックスは、カメラのワールドトランスフォームの逆です。

問題は; 何を微調整しても、正しい錐台が得られないようです。明らかな何かが欠けているのではないかと思います。

z軸を見下ろしながらカメラを左または右に「ストローフィング」すると、飛行機の法線が変化し、常にシーンの原点を指すようになります。これにより、飛行機は世界空間にないように見えます。 ..。。

0 投票する
1 に答える
1755 参照

opengl - レンダリングにおける最先端のカリングおよびバッチ処理技術

私は現在、OpenGL レンダリング エンジンのアップグレードと再構築に取り組んでいます。このエンジンは、建築データの大規模なシーン (インテリアのある建物) を視覚化するために使用され、オブジェクトの量がかなり大きくなる可能性があります。どの建物でもそうであるように、壁の中に遮られたオブジェクトがたくさんあり、同じ部屋にあるオブジェクト、または外にいる場合は外にあるオブジェクトしか見えません。これにより、オクルージョン カリングとフラスタム カリングによってオクルードされるべき多数のオブジェクトが残ります。

同時に、レンダーバッチでバッチ処理できる反復ジオメトリが多数あり、インスタンス化されたレンダリングでレンダリングできるオブジェクトも多数あります。

私の見方では、レンダーバッチ処理とカリングを最適な方法で組み合わせるのは難しい場合があります。同じ VBO であまりにも多くのオブジェクトをバッチ処理すると、そのバッチのレンダリングをスキップするために CPU 上のオブジェクトを選別することが難しくなります。同時に、CPU でのカリングをスキップすると、多くのオブジェクトが見えない間に GPU によって処理されます。CPU をより簡単に選別するためにバッチ処理を完全にスキップすると、不要な大量のレンダー コールが発生します。

これらの問題が現代のグラフィックスでどのように解決されるかについて、既存の技術と理論についていくつかの調査を行いましたが、具体的な解決策を見つけることができませんでした。同僚と私が思いついたアイデアは、バッチを互いに比較的近いオブジェクトに制限することでした。たとえば、部屋内または半径 n 人以内のすべての椅子です。これは、oct-tree を使用することで簡素化および最適化できます。

最先端のグラフィックエンジンでシーン管理、カリング、バッチ処理などに使用される手法へのポインターはありますか?

0 投票する
1 に答える
125 参照

graphics - 回転球データセットのオクルージョン カリング

私は現在、球体データセット用の CPU のみのラスタライザーを実装する必要がある課題に取り組んでいます。データセットは静的であるため、セット全体がカメラの前で回転できる場合でも、実行時に変更されません。

現在のアイデアは、オクルージョン カリング メソッドを実装して、カメラの視点から他の球体によってオクルージョンされた球体がラスタライザーの次の段階に進まないようにすることです (Z バッファーとピクセルのシェーディングに対するテスト)。 CPU 時間。

これを達成するための可能な方法を検討してきました。最初に、シーン モデルを octree で維持する階層型 Z バッファリングの実装について考えました。ただし、データセットが回転するため、フレームごとに octree を再計算する必要があり、かなりコストがかかる可能性があります。私は正しいですか?

このシナリオでは、球体データセットの階層構造を計算するための空間ハッシュまたは安価な方法がより有益であるかどうかはわかりません。これについて何か考えはありますか?これは CPU に完全に実装する必要があることに注意してください。

0 投票する
1 に答える
924 参照

algorithm - 最速のシャドーアルゴリズム (CPU のみ) は?

3D モデルがあるとします。

ここに画像の説明を入力

モデルは、頂点、面 (すべての三角形)、および法線ベクトルの形式で与えられます。モデルには、穴や透明部分がある場合があります。

無限遠に任意に配置された光源の場合、次のことを決定する必要があります。

  • [必須] 他の三角形によって (部分的に) 陰になっている三角形

次に、部分的に陰になっている三角形の場合:

  • [おまけ] 三角形の面積の何割が影になっているのか
  • [ superbonus ] 影の形状を正確に表現する新しいメッシュを考え出す

私の最終的なアプリケーションは、ヘッドレス マシンで実行する必要があります。つまり、GPU がありません。したがって、OpenGL、OpenCL などのすべての標準的なものは、最良の選択ではない可能性があります。

この制限を考慮して、これらのことを決定するための最も効率的なアルゴリズムは何ですか?