問題タブ [occlusion]

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 に答える
4966 参照

2d - 2D オクルージョン カリングの最適なソリューション

私の 2D ゲームには、静的オブジェクトと動的オブジェクトがあります。複数のカメラが存在する可能性があります。私の問題:現在のカメラのビュー四角形と交差するオブジェクトを決定します。

現在、私はすべての既存のオブジェクトを反復処理し (動的か静的かは気にしません)、それらのカメラ ビュー rect で AABB チェックを実行します。これは、非常に動的なオブジェクトには受け入れられるようですが、数万のオブジェクトが存在する可能性がある静的オブジェクト (シーン全体に散在する静的レベルのジオメトリ) には受け入れられないようです。

私の問題を解決できる複数のデータ構造を調べました。

  • 四分木

これは私が最初に検討したことでしたが、問題はシーンが固定サイズになることです。(静的オブジェクトには使用できますが、動的オブジェクトには使用できません)

  • 動的 AABB ツリー

良さそうに見えますが、リバランスのオーバーヘッドが多くの動的オブジェクトにとって大きすぎるようです。

  • 空間ハッシュ

ここでの主な問題は、カメラでズームアウトすると、ほとんど存在しない膨大な数の空間ハッシュ バケットをクエリする必要があり、パフォーマンスが低下することでした。

一般に、この問題を適切に解決するための私の基準は次のとおりです。

  • 動的サイズ: ソリューションによってシーン サイズが制限されたり、サイズ変更のために大量の再計算が必要になったりしてはなりません。

  • 良好なクエリ パフォーマンス (カメラの場合)

  • 非常に動的なオブジェクトの適切なサポート: 位置が絶えず変化するオブジェクトを処理するために必要な計算は適切である必要があります。

ゲーム内で一度に正常に動作する動的オブジェクトの最大数は、おそらく 5000 です。すべてのオブジェクトがフレームごとに位置を変えることを考慮してください。フレームごとにオブジェクトの AABB をカメラと比較するよりも、頻繁な挿入と削除を考慮して、高速化できるデータ構造さえありますか?

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

actionscript-3 - フラッシュ/フレックスで隠された(オーバーラップした)ディスプレイオブジェクトのマウスイベントを処理するにはどうすればよいですか?

私の質問は、このようなオーバーラップしたスプライト/ムービークリップについて以前に尋ねられたいくつかの質問と少し似ています。しかし、私の要件はそれらとは少し異なります。

ステージ上のすべてのスプライト(背後に隠れている(またはオーバーラップまたはオクルージョンされている)スプライトを含む)のマウスイベントを処理したいのですが、主な条件は、オクルードされたスプライト(他のスプライトの背後に隠れているスプライト)を処理することです。たとえば、ステージ上にsprite1とsprite2があり、スプライトをクリックするたびにドラッグを開始し、もう一度クリックした後にドラッグを停止したいとします。

これは簡単に行うことができますが、問題と私の主な要件は、sprite1をドラッグしてsprite2の真上にドロップすると、sprite2がsprite1の後ろに隠れてしまうことです。sprite1を最初に移動しないとsprite2をドラッグできません。 。Facebookでzyngaの帝国とallaisゲームをプレイしたことがある場合、それは別々に処理されます。それはそのゲームでどのように機能するかです。マウスよりも1つのスプライトをオーバーラップする2つのスプライトがある場合、オーバーラップするスプライトの背後にあるスプライトでマウスイベントがトリガーされます。イベントは、オーバーラップしているスプライトが1つだけであるか、2つまたは3つであるかに関係なく、前のスプライトではなく最後のスプライトでトリガーされます。これは、不規則な形状のスプライト(長方形だけでなく)に発生します。

誰かがzyngaがこれをどのように実装したかについて私に打撃を与えるか、それを達成する方法を見つけるのを手伝ってくれるなら、それは大きな助けになるでしょう

ありがとう

0 投票する
0 に答える
1098 参照

opengl-es - OpenGL ES 2.0パイプラインオブジェクトがビューに隠されているかどうかを照会するiPhone iOS5...「オクルージョン」

EXT_occlusion_query_boolean は OS5.0 で新しく、

インターネット全体で、これらの新しい拡張機能について投稿したり、このコードを使用したりした人は一人もいないようです....

ここでそれらは適切に設定されています...私が知る限り、どこにも文書化されていません...この小さなsudoコードからコードにどのように入るか想像できます:

うまくいけば、ここの一部がこのコードを使用できます。私はそれをテストして動作しますが、GLKit にバグがあるようです。self.effect2 = [[GLKBaseEffect alloc] init]; 通常の GLES2.0 パイプラインではなく、オブジェクトをレンダリングするための GLKit コードのタイプでは、クエリは正しい答えを提供できません... (非表示になることはありません) GLKBaseEffect オブジェクトを非表示にするパイプライン オブジェクトをテストしましたが (失敗します)そのため、2 つのタイプを混在させるだけでバグが発生する可能性があります。逆に GLKBaseEffect オブジェクトでパイプライン オブジェクトを非表示にすると、正しい答えが得られます。まだテストしていません。

問題は、これをさらに進めて、頂点/フラグメントシェーダーで衝突検出を何らかの方法で作成できると思います...私が見つけたこのコードは、開始のように見えます...これら2つのsudoコードが与えられた場合、誰かが私を手に入れることができますか? 「パーツ」が別のパーツの中に完全に入ったときにトリガーされる衝突検出に近いですか? ポジティブがトリガーされる前に、オブジェクト全体を別のオブジェクトの中に隠すことが、より簡単で最初のステップになる可能性があります。これは素晴らしいスタートです。何かアイデアはありますか?

http://ucv.academia.edu/RhadamésCarmona/Papers/743483/Volume-Surface_Collision_Detection

http://ucv.academia.edu/RhadamésCarmona/Papers/743483/Volume-Surface_Collision_Detection

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

actionscript-3 - アクション スクリプト 3 - マウスが画像部分をクリックしたときにのみクリック イベントをトリガーすることは可能ですか?

私には問題があり、潜在的な解決策があります。しかし、私の問題を解決する簡単で簡単な方法があるかどうかを確認したかった.

アプリの種類:

等尺性ゲーム

問題文:

フラッシュ アプリに画像を読み込んでいて、マウス イベントが添付されています。

読み込む画像は、乗り物、木、建物などのプロップ画像で、すべて透明です。

例: 赤いボール アセット(問題を説明するために適用した黄色の背景は無視してください)

レッドボールアセット

実際の画像領域 (赤で表示) をクリックすると、すべてが完璧に機能します。

空の画像部分 (または黄色で表示されている透明な領域) をクリックしたときに、mouseevent をトリガーしたくありません。

フラッシュでマスクを作成する方法が 1 つあります。Flash アセットの代わりにイメージ アセットをロードし、すべてのアセットに対して新しいマスク アセットを作成したくないため、それが最後の選択肢でない限り、やりたくありません。

Bitmap の getPixel メソッドを使用して採用しようとしていた別の方法があります。ここで議論されているもの。

しかし、この方法には別の問題があります。

アセットの空の部分をクリックするとクリック イベントを無視できるかもしれませんが、同じ場所の画像の背後に他のアセットがある場合は、遮られた画像のクリック イベントを処理する必要があります。

さて、この問題の解決策を考えると、遮られたアセットをスキャンできるgetObjectsUnderPointにたどり着きます

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

r - ggplot2:プロットの隔日を透過的にシェーディングする方法

ここで何が間違っているのですか?毎日24時間の長方形を透明な灰色で交互にシェーディングしようとしています。ただし、forループの最後の長方形のみが描画されます(?!?)forループではなく手動で実行すると、正常に機能します。

これをベクトル化してforループを回避する方法はありますか?(そして、qplotでそれを行うことができますか?)私はggplot2に不慣れで、はい、Hadleyのサイト、本、および例を読みました。

2番目の問題:美学のアルファ設定は、長方形が背景を遮るのを防ぎません。透明性を得る方法は?

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

algorithm - 重複または欠如による 1D ラインのグループ化

編集: 階層は、ここでの私の目標とはうまくいきません。元のリクエストのままですが、コアリクエスト(重複/非重複ルール)を満たすものを以下に回答しました。

1D 行のセットがあり、それぞれが 2 つの unsigned ints: start と end (start < end) で記述されているとします。重複するかどうかに基づいてグループを作成したいのですが、重複しない行をグループに含めたくありません。ラインが複数のグループに属している場合、グループ内のグループ内のグループを追跡するために、ある種の階層構造が必要になると思います...

ルールは次のとおりです。

  • 重複する行は、階層のできるだけ低い位置にグループ化する必要があります。
  • 重ならない行は同じグループにできません。

とにかく、ここに例の写真があります:

行

Line Aざっと見て、 and Line Cform Group 0Line Hand Line Iform Group 1、 and Line Bisと言えますGroup 2。と、と、とLine Dはこれらの 3 つのグループすべてに含まれています。したがって、ここには 2 つの層のグループ化がありますが、問題の複雑さによっては、N が存在する可能性があると確信しています。また、私の例が表していないいくつかの問題があることも確信しています。Group 1Group 2Line EGroup 0Group 1Line FLine G

これを処理するための典型的なアルゴリズムは何ですか?

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

c++ - DirectX シェーダーが正しく動作しない?

わかりましたので、アンビエント オクルージョン用にこのシェーダーを用意しました。ワールドに正しくロードされますが、すべてのモデルが白で表示されます。何故かはわからない。モデルのレンダリング中にシェーダーを実行しているだけですが、正しいですか? または、レンダー ターゲットなどを作成する必要がありますか? もしそうなら、どのように?私はC++を使用しています。これが私のシェーダーです。

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

audio - XAudio2 オクルージョン処理

私は自家製のゲームエンジンに取り組んでおり、現在オーディオエンジンの実装に取り​​組んでいます。これは主に独学上の理由によるものです。必要に応じて、または必要に応じて OpenAL、XAudio2、またはその他のプラットフォームを切り替えることができるように、一般的なオーディオ処理用のインターフェイス ラッパーを作成したいと考えています。また、このコードを再利用できるようにしたいので、できるだけ完全なものにして、さまざまなシステムにできるだけ多くの機能を実装させようとしています。当面は XAudio2 の実装に集中しており、後日 OpenAL の実装に移行する可能性があります。

過去数か月間、3D 処理 (リスナー/エミッター)、環境効果 (残響)、排除、閉塞、妨害、および直接音に関する多くの記事を読みました。これらのエフェクトをオーディオ再生で使用できるようにしたいと考えています。できる限りトピックを調査しましたが、オクルージョン (直接および反射信号の消音)、妨害 (直接信号の消音)、または除外 (反射信号の消音) が実際にどのように実装されているかについての例は見つかりません。MSDN のドキュメントを読むと、オクルージョンへの受動的な参照のように見えますが、実装については直接的なことは何もありません。私が見つけた最高のものは、一般的な「ローパスフィルターを使用する」ことですが、あまり役に立ちません

私の質問は次のとおりです。XAudio2 を使用して、オーディオ反射信号の消音 (除外) とオーディオ直接信号の消音 (障害) または両方 (閉塞) をどのように実装しますか? オーディオ グラフはどのように表示され、残響環境効果とどのように関連するのでしょうか?

編集 2013-03-26 :
グラフについてさらに考えてみると、正しい視点からグラフを見ていない可能性があることに気付きました。
グラフは次のように表示されます: ソース → エフェクト (サブミックス) → マスタリング
-または-
グラフは一般的に次のように表示されます。

2 番目のグラフは、除外と障害を別々に計算できるようにグラフを分割します。私の混乱の一部は、それらが独立して処理される方法でした.
その場合、3D オーディオ DSP 構造のリバーブ設定が反射パスに適用されると思います。ドップラーは、直接パスのみ、または直接パスと反射パスの両方に適用されます。また、リバーブの環境効果は反射パスのみに影響します。これは正しいオーディオ グラフ モデルに近づいていますか?

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

opencv - オクルージョンとフラグメンテーションの処理方法

私はユニ プロジェクトのコンピューター ビジョンを使用して人数カウント システムを実装しようとしています。現在、私の方法は次のとおりです。

  1. MOG2 を使用したバックグラウンド減算
  2. ノイズを除去するモルフォロジー フィルター
  3. ブロブの追跡
  4. 指定した領域 (ライン) を通過するブロブを数える

問題は、人々がグループで来た場合、私の方法では 1 人だけをカウントすることです。私の読書から、これはオクルージョンと呼ばれるものだと思います。もう 1 つの問題は、人物が背景に似ている場合 (暗い服を着て、黒い柱/壁を通過する)、実際には 1 人の人物であるにもかかわらず、ブロブが分離されることです。 ここに画像の説明を入力

私が読んだことから、検出器とトラッカーを実装する必要があります(たとえば、HOGを使用して人間を検出します)。しかし、私の検出結果は貧弱です (たとえば、50% のヒット率で 50% の誤検知; OpenCV 人間検出器と私自身の訓練された検出器を使用)。この投稿を読んでくれてありがとう!