問題タブ [perspectivecamera]
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.
three.js - three.js TextGeometry: 回転を再設定した後、テキストの配置が乱れる
THREE を作成しました。TubeGeometry を使用し、THREE.TextGeometry を使用して、作成したチューブにテキストを追加しました。その後、チューブがシーンに追加されます。また、テキストの回転をカメラの回転に設定しました。コードスニペットは以下のとおりです
私のアプリケーションには、チューブ ジオメトリの元の位置をリセットできるボタンがあります。内部的には、これはカメラを元の位置にリセットすることによって行われます。
最初に、ページが読み込まれると、チューブとテキストが適切に配置され、ユーザーに面します。しかし、チューブを回転させて元の位置にリセットすると、チューブは適切に元の位置に戻りますが、テキストはランダムに任意の方向を向いています。
私の基本的な要件は、テキストが常にユーザーに面している必要があるということです。別の関連するクエリに記載されている手順に従いました。
しかし、提案されたのと同じ方法でコーディングしましたが、上記の問題に直面しています。私が欠けているものを指摘してください?
注: パースペクティブ カメラを使用しています。
opencv - 1 台のモノ校正カメラを使用した人間の身長の推定
ビデオで検出された人の身長を推定するアルゴリズムに取り組んでいますが、立ち往生しています。
私が取り組んでいる部分は、HoG アルゴリズムを使用した人物の検出であるため、フレーム内のすべての人物の境界ボックスがあります。また、カメラのキャリブレーションを行ったので、固有および外部のカメラ パラメーターが得られました。
問題は、オブジェクトの高さとオブジェクトからカメラまでの距離の2 つの未知数を持つ透視投影の式が得られたことです。人を検出するために 1 つのモノラル Web カメラを使用しているため、オブジェクトからカメラまでの距離に関する情報はありません。高さは私が推定しようとしているものなので、それも持っていません。
距離を取得するために kinect またはステレオ カメラを使用すれば、この問題を解決できることはわかっていますが、モノラル Web カメラは 1 つだけに制限されています。
この問題にアプローチする方法について誰か考えがありますか? 参照オブジェクトの使用について読んだことがありますが、それらを使用して問題を解決する方法がわかりません。
opengl - gluPerspective は隅に消失点があります。OpenGL
私は pyglet: http://www.pyglet.org/を使用して opengl を操作しています。しかし、私にはいくつかの問題があります。
私の消失点は、画面の隅 (0,0) の左下隅に表示されます。次の画像はこれを示しているはずです: http://i.imgdiode.com/0wu5E0.png
左側にあるのは、私が今見ている立方体です。右側は、それがどのように見えるべきか (どのようにしたいのか) です。どうすればそのようにできますか?
また、マトリックスモードについて少し読んだところ、GL_PROJECTIONがgluPerspectiveで使用されることになっているようです。しかし、それらを一緒に使用すると、遠近効果がなくなります。GL_MODELVIEW でのみ gluPerspective が機能します。どうしてこうなったのか不思議です。
以下は、オブジェクトを表示するために使用するコードです。
rotation - Direct3D9 で切り取った立方体の回転
Direct3D9 で回転する立方体を表示しようとしています。正常に描画できますが、回転中に一部のピクセルが描画されません。回転中に立方体のすべての部分を表示したいと思います。各面のサイズは 0.5f で、ポイント 0、0、0 から Pitch Yaw Roll で回転しています。Z バッファを無効にするか、ビューポートの Z 値を高く設定しようとしましたが、成功しませんでした。何かアドバイス?あ、ワイヤーフレームモードでレンダリングしてます。
編集: 問題が Z Buffer にあることを確認しました。Z 軸の間で立方体を変換しようとしましたが、ビューが 0.0 と 1.0 の間であることは明らかですが、SetViewport はそれを変更せず、理由がわかりません...
編集:ZBUFFERを無効にしても、頂点はまだカットされています。パラメータ(m、90、800 / 480、-0.1、100)を使用
して、この実装( http://pastebin.com/EVCRG6f7 )で新しい射影行列を設定しようとしましたが、問題は解決しません。
編集: Direct3D9 で使用したのと同じ頂点とビュー マトリックスを OpenGL で試したところ、キューブが正しく描画されました。これらの値で初期化しています:
python-2.7 - y/z 平面への透視投影
したがって、このウィキペディアのページでは、3D 空間の点を x/y 平面に透視投影する方法を示しています。y / z平面で同等のことを行う方法を知っている人はいますか? これは私が今していることです(ウィキペディアのページのものだけです。):
すべてのコードはgithub repoで確認できます。特に、これが入っているファイルは shape.py です。
opengl - LWJGL プロジェクション ビュー エラー?
したがって、現在抱えている問題を説明する方法がよくわかりませんが、立方体を描画するためのモデル/ビュー/投影マトリックスが関係していることはわかっています。ブレンダーから立方体をインポートしましたが、さまざまな角度から表示するカメラ システムを作成しようとしています。最初にスケーリング、回転、平行移動をキューブに適用し、このマトリックスを頂点シェーダー クラスに送信しました。キューブは正しいサイズで本来あるべき場所に表示され、指定した方向に回転します。次のステップはカメラ ビューの設定でした。そのため、キューブの現在のワールド座標にビュー マトリックスを掛けて、「カメラ」を動かしてさまざまな方向から見ることができるようにしました。これで、カメラ座標が得られ、すべてが正常に見えます。キューブはまだ回転しており、「カメラ」を変更すると キューブは本来あるべき方向に回転します。最後に、射影行列をシェーダーに追加すると、すべてが機能しているように見えます...最初は. しかし、立方体が正しく見えなくなっていることに気付きました。カメラを回転/移動できるようになりましたが、立方体がモーフィングされており、一部の面が正方形ではありません。不思議なことに、立方体に近づくと、外側の色がすべて内側に入り、完全な立方体の形が見えるようになります。おそらく理解するのが本当に難しいので、これが何をしているのかへのリンクです:しかし、立方体は変形しているように見えますが、一部の面は正方形ではありません。不思議なことに、立方体に近づくと、外側の色がすべて内側に入り、完全な立方体の形が見えるようになります。おそらく理解するのが本当に難しいので、これが何をしているのかへのリンクです:しかし、立方体は変形しているように見えますが、一部の面は正方形ではありません。不思議なことに、立方体に近づくと、外側の色がすべて内側に入り、完全な立方体の形が見えるようになります。おそらく理解するのが本当に難しいので、これが何をしているのかへのリンクです: http://youtu.be/QHY7ZVADeiQ . 以下は、立方体を変換するために使用するコード (ModelTransformation)、カメラ クラスのコード、頂点シェーダーの設定方法です。どんなアイデアでも大歓迎です。そして、膨大なコードブロックについてお詫び申し上げます。
ModelTransformation クラス:
カメラクラス:
頂点シェーダー:
編集:役立つ可能性のあるクラスをいくつか追加し、タグを追加しました
RenderUtility クラス:
ゲームクラス:
coordinates - JavaFX JDK 8: カメラを回転させると、座標系は回転しますが、マウス座標は回転しません。
私は自分のアプリに非常に行き詰まっており、誰かが私と同じことをしている例は見当たりません。 https://www.dropbox.com/sh/lqzoegg5v8drzog/nLxDuIVAh0
3D ワールドがあり、STL ファイルから TriagleMesh オブジェクトを 3D ワールドにロードします。3D ワールドは、xforms を使用した Oracle の多くの例を使用して作成されます。カメラを 3D ワールドの周りに向けることができ、すべて問題ありません。
3D ワールドの X+ が右にあり、マウスでオブジェクトを右に移動すると、オブジェクトは実際に右に移動します。X+ が左になるように世界を回転させると、マウスを右に動かすとオブジェクトが左に移動します
アプリケーションは現在、MouseEvent のドラッグされたイベント ハンドラで getScreenX と getScreenY を使用しています。getSceneX と getSceneY を試しましたが、同じように動作します。getX と getY を使用すると、オブジェクトが飛び回り、getX と getY から返される座標が絶えず変化します。これは、オブジェクトが移動しており、getX および getY 座標が移動前のオブジェクトに対するマウスの位置に戻っていることが原因であると考えられます。getX と getY を使用し、オブジェクトを回転すると、座標系が変化するとします。右に X+ があれば、左になります。したがって、オブジェクトを右に移動しようとすると、左に移動します
getScreenX/Y を使用して、カメラの回転に応じてマウス座標を何らかの方法で変換する必要があると考えています。JavaFXでそれを行うにはどうすればよいですか?
編集 1 ソート済み
このjiraで次のコードが与えられましたhttps://javafx-jira.kenai.com/browse/RT-35178
私がしたことは、ドラッグ検出コードを Gizmo オブジェクトに配置することでした。ギズモは、MouseTransparent を true に設定し、FullDrag を開始します。次に、GizmoViewer を呼び出して、GizmoViewer が mousePlane MouseTransparent を設定できるようにします。これにより、Gizmo ではなく mousePlane によってドラッグが検出されます。また、GizmoViewer dragJustStarted = true; にフラグを設定しました。次にドラッグを開始し、OnMouseDragOver が mousePlane で起動すると、mouseOldX、mousePosX、mouseOldY、mousePosY の値が設定され、ドラッグが初めて実行されたことを検出すると終了します。ドラッグが再び実行されると、すべての正しいマウス値が得られ、笑顔でドラッグできます
マウスプレーンのセットアップ
ギズモ/画面オブジェクトのドラッグが検出されました
ギズモ マウスがリリースされました (この問題にとって重要な方法の始まりにすぎません)
ギズモビューア