問題タブ [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.

0 投票する
2 に答える
2714 参照

xna - XNAを使用したレイトレーシングの世界観投影マトリックスの質問に関して混乱しています

そこで、XNAフレームワークを利用して、C ++で記述された古いレイトレーサーをC#で書き直すことにしました。

私はまだ古い本を持っていて、メモに従うことができますが、いくつかのアイデアについて混乱していて、誰かがそれをうまく表現できるかどうか疑問に思いました。

上記のコードでは、u'とv'は、特定のカメラに対して計算された通常の基準です(同じ名前で混乱することはわかっています)

私がその本をたどって、それが表現する方法でそれをするならば、それはうまくいきます。ただし、XNAを活用しようとしていて、同じアクションを実行する方法について混乱していますが、マトリックスを使用しています。

だから私は次の手順をXNAコードに置き換えようとしました

この時点で、任意のピクセル(x、y)の方向ベクトルを取得するために適用することになっている操作の順序が混乱していますか?

私の頭の中で考えているのは:(u、v)= ProjectionMatrix * ViewMatrix * ModelToWorld * Vertex(モデル空間内)

したがって、それは理にかなっています

頂点(ワールド空間内)= Inverse(ViewMatrix)* Inverse(ProjectionMatrix)* [u、v、0]

また、ビューマトリックスは正規直交であるため、転置および反転する方法についても思い出しました。

0 投票する
3 に答える
3857 参照

opengl - OpenGL - gluPerspective / glFrustum - zNear & zFar の問題

私は宇宙探査アプリケーションを書いています。単位は光年に決め、星間の距離を正確にモデル化しました。いじり回したり、多くの骨の折れる作業 (主にロープの学習) を行った後、宇宙を横断する宇宙船の視点からカメラが正しく機能するようになりました。

最初は、惑星オブジェクトに取り組むまで、gluPerspective () の zNear パラメーターに注意を払いませんでした。私の目盛りは光年単位なので、zNear が 1.0f であるため、そのような天体を見ることができないことにすぐに気付きました。実験の後、私はこれらの数字にたどり着きました:

これは、太陽系 (位置 0,0,0) を巡航し、惑星の近くまで移動することができたという点で非常にうまく機能します。ただし、他のシステム (位置 0,0,0 ではない) は、オブジェクトが異常な方法でカメラから遠ざかるため、通過するのがはるかに困難でした。

しかし、宇宙をクルージングしているときに、奇妙な視覚的な不具合が発生し始めていることに気付きました。Y 方向に 180 度スイングすると、後ろのオブジェクトが「ラップアラウンド」して前方に表示され、元の場所にも表示されます。そのため、宇宙をワープするとき、ほとんどの星は正しく視差しますが、一部の星は現れて反対方向に移動します (控えめに言っても邪魔です)。

zNear を 0.1f に変更すると、これらのすべての不具合が即座に修正されます (ただし、太陽系のオブジェクトも解決されません)。だから私は立ち往生しています。また、glFrustum を使用してみましたが、まったく同じ結果が得られます。

私は以下を使用して世界を表示します。

関連するカメラ コードを使用して、必要に応じて向きを合わせます。カメラ機能を無効にしても何も変わりません。gluLookAt() も試してみましたが、同じ結果が得られます。

極端な zNear / zFar 値が使用されている場合、gluPerspective() には制限がありますか? 射程距離を縮めようとしたが無駄だった。すべてを拡大し、より大きな zNear 値を使用することで、世界の単位を光年からキロメートルに変更しました。ヘルプ!

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

c++ - gluLookAt() は空白の画面を作成します

私は OpenGL の経験があまりありません。ティーポットを描き、カメラをティーポットの周りに動かそうとしています。この目的のために、gluLookAt 関数を使用しています。問題は、gluLookAt を呼び出すと、画面が空白になり、ティーポットが表示されないことです。

gluLookAt() が画面を空白にするのはなぜですか? これを修正するにはどうすればよいですか? camera() が呼び出されない場合、コードは期待どおりに動作します。ティーポットが展示されています。

0 投票する
2 に答える
13410 参照

opencv - 特徴点からの OpenCV 外部カメラ

これらの各カメラのビューからオブジェクトの写真がある場合、OpenCV を使用して各カメラの回転行列、平行移動ベクトル、およびおそらくいくつかのスケーリング係数を取得するにはどうすればよいですか? すべての写真について、いくつかの特徴点の画像座標があります。すべての写真にすべての特徴点が表示されているわけではありません。オブジェクトの特徴点の計算された 3D 座標をわずかに異なるオブジェクトにマッピングして、2 番目のオブジェクトの形状を最初のオブジェクトに揃えたいと考えています。

使えると聞いたのですがcv::calibrateCamera(...)、なかなか使いこなせません...

誰かがそのような問題を経験したことがありますか?

0 投票する
2 に答える
3867 参照

java - Android で libgdx を使用したキューブ メッシュ

libgdx でメッシュを作成しましたが、メッシュを色で塗りつぶそうとしています。

どのレンダリング パラメータを使用すればよいですか? パースペクティブカメラを使用しています。

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

java - libgdx: PerspectiveCamera で SpriteBatch が表示されない

私は OpenGL の基本的な知識を持っていますが、libgdx から始めたばかりです。

私の質問は、まったく同じコードを使用しているのに、 OrthographicCamera から PerspectiveCamera に切り替えるだけで、 SpriteBatches が表示されなくなるのはなぜですか?

私が使用するコードは次のとおりです。

create() メソッド:

そして render() メソッド:

ここで、 resize(int width, int height) メソッドの場合、次のようにカメラをセットアップします。

私はこれを得る:

ここに画像の説明を入力

しかし、カメラの種類を変更すると:

私はこれを得る:

ここに画像の説明を入力

私が尋ねている理由は、OpenGL でテキスト (フォント) を描画する libgdx の組み込み機能が本当に気に入ったからです。しかし、彼らの例では、Font インスタンスにパスする SpriteBatch を使用し、常に Ortho Camera も使用しています。SpriteBatch と Font の描画機能が PerspectiveCamera で動作するかどうかを知りたいです。

0 投票する
2 に答える
6130 参照

java - joglでgluPerspective()を使用するにはどうすればよいですか?

メソッドがあり、レンダリングinit()を作成しようとしています。Perspective以下は私がこれまでに持っているコードですが、私が渡した数字gluPerspective(fovy, aspect, zNear, zFar)は間違っています。fovy視野(60度)、アスペクト比(幅/高さ)だと思いaspectますが、何なのかわかりません。zNearzFar

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

c# - サンプル コードを探しています Silverlight 3d c#

下の画像のように、カメラを動かして数百または数千の小さな円形オブジェクトを表示できる地震の視覚化を作成したいと考えています。 これが私が作成したいものです . 私がオンラインで見つけることができるすべてのデモは、回転する単一のオブジェクトを示しています-既知の世界でカメラを回転させたいです。

私の世界は上の画像の地図の長方形のようになり、私のデータ(円)はその上/下に表示されます。

したがって、Lat/Lng を次のように使用する場合、私の世界は言うべきです

172、-40 から 179、-45 で、Z (深さ) を持っているか、23000、14000 から 29000、19000 にすることができます。

私の画像は、Zが0の座標に表示されます

それを行うためのデモまたはサンプルコードを誰かに見せてもらえますか?

乾杯

クリス

0 投票する
2 に答える
1660 参照

matlab - 同じ射影行列からの異なる基礎行列

2 つの射影行列 P1 と P2 を使用し (たとえば、恐竜データセットを使用しています)、基礎行列 F を計算する必要があります。したがって、2 つの Matlab 関数を使用します。

  • Peter Kovesi の関数: www.csse.uwa.edu.au/~pk/Research/MatlabFns/Projective/fundfromcameras.m
  • ジッサーマン: www.robots.ox.ac.uk/~vgg/hzbook/code/vgg_multiview/vgg_F_from_P.m

これらの関数は同じことを行うはずですが、私は異なる F 値を持っています! それはどのように可能ですか?適切な関数はどれですか?

X1 と X2 の 2 点が 2 つの異なる画像で "同じ" である場合、X2^T*F*X1 = 0 ... そこで、SURF を使用して 2 つの回転した画像 (5 度) から 2 つの対応する点を見つけましたが、X2^T *F*X1 は、この 2 つの関数でゼロになることはありません。何か案は?

代わりに、一致するポイントから F を計算するこの関数を使用すると、次のようになります。

私はそれを持っています X2^T*F*X1 = 0 ....明らかに、Fは他の2つの関数で持っていた2つのFIとは異なります...

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

matlab - 予想される点がエピポーラ幾何で正しくありません

射影行列P1P2を持つ 2 つのカメラ (カメラ 2 はカメラ 1 に対して変換しています) があります。彼らは、I1 (カメラ 1) とI2 (カメラ 2) 512x512 の画像を撮影しました。

基本行列 F を計算します。

次に、 RANSAC point1point2を使用して、SURF で 2 つの画像間の一致点を見つけました。

私はエピポーラ線を計算しようとしましたが、それはpoint2を通過します

そのため、 point2 は、エピポーラ ジオメトリを使用して計算された、I2 の予想される点 epoint非常に似ているはずです(SURF は多くの近似を使用するため)。

8.2ページでわかるように。Hartley & Zisserman の本の223 、

ここで、 x' はepointで、 x はpoint1です。

私のは:

したがって、ポイントは次のとおりです。

画像サイズが 512x512 であるため、epoint.xが画像の外側にあることを覚えています...

私の質問は、なぜですか?どこで間違いを犯しましたか?

ありがとう