問題タブ [projection-matrix]
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.
r - 射影行列: 第 2 段階グループの移行行列と出生行列の組み合わせ
以下の情報を射影行列にどのように組み合わせるかをお聞きしたいです。私は遷移 ( T ) と受胎能 ( F ) 行列のデータを持っているので、射影行列 ( A ) はこれら 2 つの行列の和、つまりA=T+Fに等しくなります。
遷移行列の個体に関しては、単位時間単位が上に移動するか (1 時間単位が「古くなる」)、下に移動するか (その逆) のいずれかになります (つまり、遷移行列のエントリは下対角値または上対角値のいずれかです)。
問題は、T と F のエントリが重複する第 2 ステージ グループの A で T と F の値を組み合わせる方法です。つまり、ステージ 2 から 3 に移動する確率がたとえば 0.4 で、ステージ 2 からステージ 1 に移動する確率 = 0.1 の場合、F 値 - 3 と重複します (これは確率ではなく、別の単位です)。この情報を有意義に組み合わせる方法は?前もって感謝します。
問題を説明するために、以下のマトリックスを見つけてください。P(i) - あるステージから別のステージに移動する確率、および Z(i) - あるステージから別のステージに逆方向に移動する確率 (時間可逆性); F(i) - 出生率。
opengl - ウィンドウ全体を正方形で塗りつぶす
最新のOpenGLでウィンドウ全体を正方形で埋めるために必要な変換を決定するにはどうすればよいですか。たとえば、800 x 600 のウィンドウと、-1 と 1 から伸びる 2 つの三角形の頂点を持つ座標があるとします。OpenGL の座標は -1 から 1 に伸びるため、これらの座標は 800 x 600 のウィンドウを埋めます。ただし、標準の MVP 変換を使用したい場合はどうすればよいでしょうか? ウィンドウ全体を埋めるために何をする必要があるかを判断するにはどうすればよいですか。次のコードを検討してください。
同じ座標で。ウィンドウの真ん中のどこかに四角形が表示されます。射影行列を変更しないと仮定すると、View 行列と Model 行列にどのような変更を加える必要がありますか? 行列の計算は理解していますが、それがウィンドウ座標自体とどのように関係しているかはわかりません。
誰かがこれを理解するのを手伝ってくれますか?
opengl - オブジェクトをせん断するための OpenGL 射影行列の作成
近くの顔がディスプレイの隅に完全に位置合わせされたままのボックスをレンダリングしようとしていますが、残りは視差効果のように (遠近法で) せん断することができます。基本的にこれとまったく同じです。
射影行列にこのせん断行列を掛けると、正しい効果が得られることがわかりました。
ただし、ビュー ボリュームはボリュームの中心付近でせん断しているように見えるため、回転を開始するとすぐに、ボックスの前面が表示領域の外で揺れます。
モデルまたはビューポートを変換して補正できるかもしれませんが、それはごまかしのようです。これは正しい射影行列で行うことができますか、それともモデル ビュー行列に適用する必要がある他の変換を計算する良い方法はありますか?
java - LWJGL 射影行列 - 何も起こらない
現在、LWJGL で Camera クラスを作成しようとしていますが、射影行列で問題が発生しています。何らかの理由で、頂点に射影行列を掛けようとすると、画面に何も表示されません。
カメラクラス
メインクラス
頂点シェーダー
ShaderProgram クラス
これを実行すると、作成した VBO (三角形) は表示されませんが、頂点シェーダーの乗算から射影行列を除外すると、問題なく実行されます。何か不足していますか?
opengl - OpenGL: Framebuffer オブジェクトからレンダリングされたテクスチャをロードする
オブジェクトに 2 パス ブラーを適用していframebuffer
ます。FBO
で、ぼかしようとしている画像でシーン全体が覆われていることを確認します。これがプロセスです。
FBO
ぼかす必要がある画像の寸法を設定しました。次の関数を使用して をセットアップし
Orthographic Projection
ています ( と呼ばれますsetupOrtho(FBO's dimensions)
):glViewport(0, 0, w, h) glMatrixMode(GL_PROJECTION) glLoadIdentity() glOrtho(0,1,0,1,-1,1) glMatrixMode(GL_MODELVIEW) glLoadIdentity()
FBO
この射影を使用して に描画します。バインドを解除しますFBO
(画面に戻ります)。Perspective View
を呼び出し 、上記をsetupPerspective(window's dimensions)
に置き換えて に切り替えます。glOrtho
glFrustum
シンプルな白いクワッドを描画すると、ビューの切り替えが期待どおりに機能します。1 つの四角形が で描画されOrthographic Projection
、もう1 つの四角形が で描画されPerspective View
ます。からレンダリングされたテクスチャを取得しますFBO
(id を にしますRENDEREDTEXTURE
)。
メイン シーンでをバインドするRENDEREDTEXTURE
とOrthographic Projection
、ぼやけた画像が表示されます。これをメイン シーンの にバインドするとPerspective View
、以前に表示されていた白いクワッド ( で描画されたものPerspective View
) が消えます。
解決策:回答として投稿。
注: テクスチャを使用する場合は、MIPMAP の生成を忘れないでください。
ここで何が問題になる可能性がありますか?
FBO
では、処理したい画像のみが表示され(正射投影を行った)、メインシーンでは、処理された画像が画像ファイルからロードされた他のテクスチャと同じになるような代替手段を提案してください。.