問題タブ [frustum]

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 投票する
0 に答える
2023 参照

three.js - Three.js、シーン内のすべてのオブジェクトを表示する中央カメラ

次に、機械セットをダブルクリックして展開 (折り畳みと展開) できるアルゴリズムを作成します。

しかし、その後カメラを前後に動かして、視野内のすべてのオブジェクトを表示したいと考えています。フラスタムを使用してフラスタムとオブジェクトの交差を計算しようとしていますが、平面の使用方法がわかりません。OrthographicCamera を使用しています。

私がやること :

  1. すべてのフレームで、新しいフラスタムを再計算します (カメラの移動時):

    /li>
  2. 次に、シーン内のすべてのオブジェクトの 6 つの平面とバウンディング ボックスをループします。

    /li>

しかし、plane.isIntersectionLine(line)は常に false です。

あなたはなにか考えはありますか ?

ありがとう

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

c# - オブジェクトの OpenTK の不適切なカリング

最近、OpenTK を使用して C# と OpenGL でアプリケーションを作成しました。パフォーマンスを向上させるためにフラスタム カリング システムを統合しましたが、何らかの理由でオブジェクトが正しくカリングされません。つまり、すべての可視オブジェクトを適切に表示するのではなく、ランダムなオブジェクトをカリングし、カメラを回転させると、いくつかのオブジェクトが表示されたり消えたりするということです。私はそれが普通であることを知っていますが、私が彼らに会うべき時ではありません。実際のフラスタム カリング コードは、別の作業で使用されている C++/DirectXMath コードの C# ポートです。
6 つの錐台平面を作成する方法は次のとおりです。

そして、ここで球をカリングする必要があるかどうかを確認します。

他のいくつかの投稿で、人々がビューと射影の行列を手動で乗算しているのを見ましたが、それが問題の原因であるかどうかはわかりません。私は何を間違えましたか?ありがとう

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

opengl - ワールド空間で視錐台コーナーを計算する最も正確な方法

ワールド空間で視錐台のコーナーを計算しようとしています。FOVを使用し、平面の幅/高さといくつかのベクトル計算を使用して実装しました

ただし、多くの例では、(1,1,1) のような NDC コーナーを逆 viewProjection 行列で乗算できると単純に述べています。しかし、これを行うと、多少異なる結果が得られます。これは、私が現在テストに使用しているコードです。

これらの結果はどちらも [near,far] = [1, 10000] の正確な z 値を示していますが、x 値はかなりずれていますが、y 値はほぼ同じです。私は、どの方法が最も正確な方法なのか疑問に思っていました.

逆視投影

ここに画像の説明を入力

通常の計算

ここに画像の説明を入力

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

matrix - Unity3d トランスフォーム ビュー フラスタム

Unity3d カメラのビュー フラスタムを変換して、Plane を渡し、カメラのニア クリッピング プレーンがそのプレーンになるようにするにはどうすればよいですか? 平面は視線方向に対して垂直ではない可能性があります。私は Matrix4x4 に慣れていません。

画像

シーン内のすべてのオブジェクトにカスタム シェーダーを使用してマテリアルを適用するソリューションには興味がありません。

助けてくれてありがとう!

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

javascript - カメラを移動して、すべてのオブジェクトが錐台の内側に正確に収まるようにします - three.js

編集:同じ問題を抱えているユーザーを支援するために、質問を言い換えました。

いくつかの球体を追加した three.js シーンがあります。

すべてのオブジェクト (シーン内にランダムに配置されている) がユーザーの画面に「正確に収まる」まで、カメラを特定の方向に動かしたいと考えています。

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

opengl-3 - シェーダー使用時の効率的な錐台カリング

プログラム可能なパイプラインを使用してフラスタム カリングを行う最も効率的な方法を知りたいです。つまり、私が正しく理解していれば、ここで説明されている方法に従っていることを意味します:幾何学的アプローチ(ちなみに、ここで説明されている唯一の方法は、少し前に私のために働いていました)、 glGetFloatv(GL_MODELVIEW_MATRIX, ...) のような関数はもう有効ではありません。最終的な頂点位置は、シェーダー ステージで計算されます。レンダリング前に確認する必要があるバウンディング ボックスの変換ごとに、クライアント側でフラスタム プレーンを計算する必要がありますか?

ありがとう。