問題タブ [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.
opengl - GLM - 射影行列から錐台を計算する
GLM は、射影行列を宣言する方法を提供します。
projectMatrix = glm::perspective(45.0f, 4.0f / 3.0f, 0.1f, 1000.f);
これから、境界ボックスが錐台にあるかどうかを確認できるようにしたいと考えています。投影行列からこれを計算するために必要なフラスタム平面または何かを取得するにはどうすればよいですか? これは正しい方法ですか?
c++ - OpenGL/GLM-錐台の問題の計算
錐台を計算して、いくつかの簡単なバウンディングボックステストを実行しようとしています。
これが私の関数です:
誰かが私が列/行の順序が間違っていると言う前に、私は運が悪かったので両方を試しました。
次のように行列を取得する固定関数モードから切り替えました。
実際に行列を渡すこと。この時点でレンダリングしているのはワールド頂点だけです。問題は、バウンディングボックスの位置が、ワールド内の現在の位置のオフセットを考慮していないことだと思います。
これが私のマトリックスの作成です:
現在レンダリングしているのは絶対位置を持つグローバル頂点だけなので、モデル行列は何にも使用しません。
私の箱と錐台のコードは正しいと確信しています。誰かが私の計算コードにエラーを見つけたり、実際にバインディングボックスの頂点を変換する必要があることを知っていますか?
ありがとうございました。
view - 3D ビュー フラスタム カリング、レイ キャスティング
ビューフラスタムカリングの実装方法をよりよく理解するには、ビューフラスタムカリングに関する追加の理論が必要です。どのオブジェクトが前にあるかを把握するためにレイキャスティングが関与していることを理解しています。したがって、どのオブジェクトをレンダリングしないかを判断します。
CPU使用率が気になります。私が理解していることから、カメラの幅×高さでレイをキャストする必要があり、カメラが見える距離に応じてレイの量を増やす必要があります。さらに、これにシーン内のオブジェクトの量を掛けて、どれがレイに最も近いかを確認する必要があります。
この概念に対する私の理解は正確ですか? これをより効率的に行うにはどうすればよいですか?
編集:
目標は、oct-tree を使用して世界を細分化できるある種のボクセル エンジンを実現することです。数十万の立方体で構成されている可能性があります。
c++ - OpenGL - フラスタムがファー プレーンを超えてポリゴンをカリングしない
錐台カリングを実装し、錐台平面との交差の境界ボックスをチェックしています。錐台の更新を一時停止する機能を追加しました。これにより、錐台のカリングが正しく機能しているかどうかを確認できます。一時停止した後に振り向くと、後ろには何もレンダリングされず、左側と右側には何もレンダリングされず、期待どおりに先細りになります。クリップの距離 (ファー プレーン) を超えても、それらはレンダリングされますが、フラスタムの更新またはバウンディング ボックスのチェック コードに問題があるのか、それとも間違ったマトリックスを使用しているのか、または何を使用しているのかわかりません。距離を 3000.0f の射影行列に入れると、バウンディング ボックスがまだ錐台内にあることが示されますが、そうではありません。
モデルビュー マトリックスを作成する場所は次のとおりです。
Z 方向に -1 でスケーリングする理由は、レベルが DirectX でレンダリングされるように設計されているため、Z 方向を逆にするためです。
錐台を更新する場所は次のとおりです。
最後に、バウンディング ボックスをチェックします。
webgl - three.js を使用して、近距離場と遠距離場の間のシーンにビューポートを配置できますか
three.jsを使用して達成しようとしていることが可能かどうかはわかりません
私が目指しているのは、ビューポートを錐台内に配置することです。ビューポートとカメラの間にオブジェクトが表示される 3D 環境を作成したいと考えています。したがって、カメラを動かすと、オブジェクトが画面の前で 3D でレンダリングされているように見えます。つまり、生成された視差により、物が動くと画面から投影されたような印象を与えます。
私はそれを行う方法を見つけることができません。何年も前にフラッシュでやったと確信しています。three.jsとwebGLを試してみようと思いました。
unity3d - Unity Frustum カリングの問題
オフセンター プロジェクションを利用したゲームを作成しています。私は自分のゲームをクラスターでレンダリングされる CAVE にセットアップしました。8 台以上の PC があり、これらの PC のうち 4 台がそれぞれの目に使用されています (これにより立体効果が生まれます)。CAVE での位置合わせを支援するために、オフセンター プロジェクション クラスを実装しました。
このクラスは、カメラの左上隅、左下隅、右下隅が何であるかを単純に伝えます。ここから、プレイヤーの世界の左右を示す新しい射影行列を作成します。ただし、Unity のエディター内では、カメラはまだ前方を向いているため、Unity 内のカリングでは、左右の画面に表示される画像の半分がレンダリングされません。
Unityでカリングをオフにする方法、または射影行列の問題を修正する方法を見つける方法を知っている人はいますか?
math - ビュー錐台面の抽出(Gribb&Hartmann法)
私はしばらくの間、錐台面を抽出するグリブ/ハートマン法に取り組んできましたが、ほとんど成功していません。シーンをカリングするためのカメラビュー錐台を構築したいと思います。
私は右手の座標系で列メジャー行列を使用しています。(OpenGLスタイル-私はC#とPlaystation Mobileを使用していますが、計算は同じである必要があります)
飛行機をWorld-Spaceに配置したいので、View-Projection Matrix(つまり、projectionMatrix * viewMatrix)から錐台を構築します。ビューマトリックスは、カメラのワールドトランスフォームの逆です。
問題は; 何を微調整しても、正しい錐台が得られないようです。明らかな何かが欠けているのではないかと思います。
z軸を見下ろしながらカメラを左または右に「ストローフィング」すると、飛行機の法線が変化し、常にシーンの原点を指すようになります。これにより、飛行機は世界空間にないように見えます。 ..。。
c - 透視図の座標系を設定しますか?
錐台表示システムの背後にある概念を理解しています。ピラミッドのような形をしており、オブジェクトが中央に近づくにつれて、最終的に切り取られるまで小さくなります。ただし、OpenGL(ヘッドアップ:非推奨の機能は使用しません)などの表示投影を使用する場合は、次のように座標系を設定します。
オルソ例(左、右、下、上、近く、遠く);
それはすべて問題ありませんが、視点に関して言えば、物事は少し奇妙になります。
PerspectiveExample(field_of_view_y、aspect、near、far);
このような機能で座標系を設定するにはどうすればよいですか?!?左、右、下、上などを指定することはできません。遠近法は錐台投影のバリエーションにすぎないことを私は知っています...
opengl - glViewport と glFrustum の間の接続は正確には何ですか?
次の線を描きたいとします。
ここで、ratio = zFar/zNear で、それ以外はすべて glFrustum パラメーターです。
Frustum パラメーターの選択の行を表示する必要はありませんか、それとも glViewport に依存していますか?
私は今それらを見ていないので、その理由を理解できません。
ありがとうございました。
opengl - OpenGLでMODELVIEWマトリックスを定義する方法
私はカメラキャリブレーションを行っていますが、内因性と外因性のパラメーターがあります。私は仮想カメラをほとんど持っておらず、それぞれに錐台を描く必要があります。射影行列(m [int] * m [ext] =射影行列)を見つけて、ほぼ解決しましたが、Modelview行列を見つける方法がまだわかりません...現在の角度錐台を見つけるために必要です。また、カメラのローカル座標系を描画します。