問題タブ [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.
c++ - glOrtho と gluPerspective を切り替える
私は小さなOpenGL-GLUTプログラムで作業しています(私はまったく初心者です)、キー(「p」など)を押してgluPerspectiveとglOrthoを切り替えるのに多くの問題があります。
問題を説明するためにいくつかのスクリーンショットを撮りました... gluPerspectiveとglOrthoを使用して
そして、ここに私のコードがあります...
glOrthoビューに緑色の「床」が表示されるはずです...何が間違っていますか??
ps。モデル オブジェクトは、教師が提供する .obj ファイルです。
編集:
最後に、glOrtho は適切に機能します。しかし今...別の質問があります.どうすればウィンドウを最大化し、(glOrthoモードで)画像が変形しませんか??
changeSize() 関数では... gluPerspective を使用しているときは正常に動作しますが、glOrtho では動作しません!!
java - 3D PerspectiveCamera レンダリング深度 libgdx OpenGL ES 2.0
libgdx を正しくレンダリングするのに問題があるようです。頂点を使用して 2 つの色付きの三角形をレンダリングします。
三角形 1 (青): (-1.0f, 0.0f, -1.0f), (1.0f, 0.0f, -1.0f), (0.0f, 1.0f, -1.0f)
三角形 2 (赤): (0.0f, 0.0f, -3.0f), (1.0f, 1.0f, -3.0f), (2.0f, 0.0f, -3.0f)
三角形 2 は右にあり、三角形 1 の後ろにあるはずです。三角形 2 は右にあり、三角形 1 よりも小さいため、何が起こっているのかよくわかりませんが、三角形 1 の前にレンダリングされています。これを修正していただければ幸いです。Googleで検索してみましたが、役立つものが見つかりません。
android - 拡張現実アプリケーションでの Android の透視投影
現在、拡張現実アプリを作成していますが、画面にオブジェクトを表示するのに問題があります。AndroidデバイスでGPSポイントを対応するスクリーンポイントに変換できないことは、私にとって非常にイライラします。私は、stackoverflow に関する多くの記事や他の多くの投稿を読みました (既に同様の質問をしました) が、それでもあなたの助けが必要です。
ウィキペディアで説明されている透視投影を行いました。
結果のスクリーンポイントを取得するには、透視投影の結果をどうする必要がありますか?
opengl-es - lookAt での視点の Z 位置を計算するにはどうすればよいですか?
長方形を描き、画像のテクスチャでバインドしました。次に、回転、トランジション、スケーリングを行いました。正射影で完全に機能します。
今、私は透視投影を試みています。
たとえば、私の画像は 200*300 ピクセルです。私の四角形が iPad 画面上で 200*300 ポイントを超えないようにしたいです。だから私は適切にeyeZを計算する必要があります
eyeZ の計算方法を教えてください。
android-camera - 透視投影におけるデカルト座標系
拡張現実アプリケーションの透視投影をまだ実装しています。このスレッドで Aldream から説明されている、ビューポートの計算やその他のカメラに関する質問を既にいくつか行っています。
ただし、現時点では有用な値は得られません。これは、デカルト座標空間の計算に依存していると思います。
緯度、経度、高度をデカルト座標空間に変換する方法はいくつかありましたが、どれも正しく機能していないようです。現在、私はECEF(地球中心)を使用していますが、ハバーシン式と三角法(2点間の距離と方位からxとyを計算する)の組み合わせなど、さまざまな計算も試しました。
だから私の質問は:
デカルト座標空間は透視投影にどのように影響しますか? 単位をどこで「補正」する必要がありますか?(たとえば、メートルまたはセンチメートルを使用している場合)?
たとえば、カメラが (0,0,2m の高さ) にあり、ポイントが (10,10,0) にあるとします。これで、ウィキペディアで言及されている関数を簡単に使用でき、その後、他のスレッド (上記) で説明されている dx、dy、dz の変換を使用できます。私がまだ得ていないこと: この投影法は、座標系の単位が何であるかをどのように「認識」していますか? これは私が現在行っている間違いだと思います。座標系の単位を扱っていないため、投影から適切な値を取得できません。
単位がセンチメートルの座標系を使用している場合、透視投影のすべての値が増加しています。このユニットの問題をどこで「解決」する必要がありますか? カメラの幅と高さをピクセルからメートルに「変換」する必要がありますか? 座標系をピクセルに変換する必要がありますか? この状況を処理するには、どの座標系を使用する必要がありますか? 私の問題を理解していただければ幸いです。
編集:私はそれを自分で解決しました。 座標系を ecef から独自の座標系に変更し (haversine と方位を使用して x、y、z を計算)、適切な値が得られました。:)
css - CSS3 パースペクティブ: ビュー ピラミッドの視覚化
この記事を読むことから:
http://www.eleqtriq.com/2010/05/understanding-css-3d-transforms/perspective
プロパティが 3D 空間でピラミッドを作成するように視覚化される
方法を理解できます。
私があまり明確ではないのは、「立方体の側面が歪んでピラミッドに投影される」というフレーズと、「視点が高いほど、ピラミッドが急勾配になるため、変換されたオブジェクトのサイズがそれに近づく」というフレーズです。未変形サイズ。」
この図は、ライトが右側から照らされた場合に何が起こるかを示しているように見え、立方体の右側の正方形がピラミッドに歪んだ影を落としています。しかし、これはピラミッドの端、つまり私たちの視野の端にあるため、これが実際にどのように役立つのでしょうか?
そして、より高い視点がより急なピラミッドを作成することを理解していますが、なぜこれにより歪みの少ないオブジェクトが作成されるのでしょうか?
誰でもこれらの点を明確にすることができますか? ありがとうございました。
java - OpenGL パースペクティブは、z 軸に沿って予想以上にシーンを歪めます
私は LWJGL で作業しており、シーンの単純な 3D 表示を可能にするプログラムを作成するのにしばらく苦労しています。私が直面している主な問題は、パースペクティブを適用するたびに、シーンが z 軸で非常に遠くまで引き伸ばされることです。
真ん中の四角は正射影で描いた立方体です(ここでの立方体は「すべての辺が等しい」という意味です)。左下から中央に向かって垂れ下がった形も立方体ですが、透視投影で描きました!
明らかに、これは立方体のようには見えません。これが私のコードです(これは少し壁なので、分割しました):
これらはすべて別のクラスにあり、1 秒間に 30 回呼び出されます。
パースペクティブをオンにする機能です。これがおそらく問題の場所です。
これらの関数は変換に使用されます。関係ないかもしれませんが、入れて良かったと思います。
zNear と zFar をいじってみましたが、これまでに試した値では正しい投影が得られませんでした。
具体的な質問は次のとおりです: 2 番目の立方体がひどく歪んで見えるのはなぜですか? また、それを修正するにはどうすればよいでしょうか?
c++ - 楕円に透視変換を適用する方法は?
ポイントに適用できるマトリックス内の変換がある場合、同じ変換を楕円に適用する方法は? 最も一般的なパラメーターellipse
関数が受け入れるのは ですRotatedRect
。これは、パラメーター関数が受け入れるほど一般的ではありませんgetPerspectiveTransform
。したがって、長方形を四角形に変換すると、それに楕円を内接することができなくなります。
達成する方法は?
c++ - 回転角度からOpenCVの透視変換を計算するには?
オブジェクトまでの回転角度と距離から始めて、透視変換 (warpPerspective 関数の行列) を計算したいと考えています。
どうやってするか?
コードは OE のどこかにありました。サンプルプログラムは以下です。
しかし残念なことに、この変換は奇妙なことをします
なんで?上の画像のもう半分は何alpha>0
ですか? そして、他の軸を中心に回転する方法は? なぜdist
そんなに奇妙に動作するのですか?