問題タブ [perspective]
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.
graphics - 正投影レンダリングだけで 3D「カード」をシミュレートする
直交投影の観点からテクスチャ化された四角形をレンダリングしており、UV と四角形の 4 つのポイント (左上、右上、左下、右下) の頂点位置を変更して「深さ」をシミュレートしたいと考えています。
左上隅と右下隅の y 位置を同じにすると、線形の「ゆがみ」が得られず、上部の三角形 (クワッドを構成する) を覆うテクスチャが歪んでいるように見えることがわかりました。下の三角形のテクスチャは正常に見えますが、押しつぶされます。
四角形の 4 つのポイントのいずれかである UV を変更できます (ただし、2D 空間でのみ、いずれにせよ正射投影であるため、3D 空間はあまり重要ではありません)。基本的に、私は正投影で2次元クワッドの遠近法をシミュレートしようとしていますが、何かアイデアはありますか? 数学的にも可能/実行可能ですか?
理想的には、関数を介して x/y 回転と仮想 z '位置' (z 深さをシミュレートする) を設定し、位置/UV を内部的に計算して 3D 効果を作成することができる状況です。 . クワッドの各コーナーに一連の 2D 変換を適用して深さをシミュレートできる場合、これはすべて数学的であるように思われますが、それを実現する方法がわかりません。三角法か何かが必要だと思います。数学を処理しようとしていますが、あまり進歩していません。
これが私が意味することです:
左上はちょうどカード、中央は X 度の y 回転を持つカード、一番右は異なる角度の x と y 回転を持つカードです。
image-processing - ドキュメント画像の遠近法推定用のHMM、アルゴリズムを理解できません
これが論文です。テキストといくつかのノイズまたは非テキストオブジェクトを含むバイナリイメージの遠近法を推定することについてです。
アルゴリズムは隠れマルコフモデルを使用します。実際には2つの条件T-テキストB-背景(つまりノイズ)
アルゴリズム自体を理解するのは難しいです。問題は、隠れマルコフモデルについて読んだことがあり、それが既知でなければならない確率を使用していることを知っているということです。しかし、このアルゴリズムでは、HMMを使用している場合、どのようにしてそれらの確率(S1から別の状態(たとえばS2)に状態を変更する確率)を取得するのか理解できません。
その論文でもそこでの訓練については何も見つかりませんでした。ですから、誰かがそれを理解しているなら、教えてください。また、状態変化の確率を知らなくてもHMMを使用することは可能ですか?
編集:HMMパラメーター(確率)を知らなくても、何らかの推定を使用している可能性があります
math - 遠近法の 3D オブジェクトの 2D 角度の計算
建物の顔が強調された写真を想像してみてください。
建物の正面が長方形で、角が 90 度であるとします。ただし、写真なので遠近法が関係し、顔の平行なエッジが地平線に収束します。
このような長方形の場合、それに直角な面のエッジのベクトルの 2D での角度をどのように計算しますか?
下の画像では、青が写真にマークされた顔であり、他の顔の赤い線の 2D ベクトルを計算する方法を考えています。
例 http://img689.imageshack.us/img689/2060/leslievillestarbuckscor.jpg
では、写真をしばらく無視して線に集中すると、顔の輪郭の 1 つに十分な情報 (内角など) があり、コーナーの反対側にある顔のパスを知ることができますか? 式はどうなりますか?
どちらも長方形であること、つまり各角が直角であること、そしてそれらが互いに直角であることはわかっています。では、最初の面の位置に関する知識だけを使用して、2 番目の面のベクトルをどのように決定するのでしょうか?
perspective - 視点のゆがみ
与えられた 2D 画像の 3D アナグリフ画像を作成する予定です。
このために、指定された 2D 画像を左目ビューと見なし、右目ビューを作成する必要があります。
遠近の回転、遠近のゆがみ、遠近の歪みなどがあることを知りました。右目ビューを作成します。
画像内で、いくつかのオブジェクトがカメラに非常に近く、一部がカメラから非常に遠い場合、画像は次のようになるはずです。
つまり、中央から、上部は右に回転/傾斜し、下部は左に回転する必要があります。
そして、画像内で、オブジェクトの一部がカメラから離れた場所にあり、一部が非常に離れている場合、変換は次のようになるはずです。
つまり、上部のみが右に回転/傾斜し、下部はそのままのはずです。
このような視点のゆがみや回転の変換行列を見つけることはできますか?
4 点透視回転とは何ですか? また、どのように機能しますか?
前もって感謝します
wpf - WPF 3D パースペクティブ カメラの質問
私は、水平方向、垂直方向に反転でき、任意のサイズと正方形または長方形の形状を持つことができる 3D フリップ コントロールに取り組んでいます。
動作している間に、遠近法カメラで非常に奇妙な問題に遭遇しました。MeshGeometry3D を作成するときは、コンテンツの適切な比率にスケーリングします。幅 > 高さの場合、すべて問題ありません。ただし、高さ > 幅の場合、3D メッシュのサイズが小さすぎます。
これを修正した唯一のことは、(高さ > 幅の場合) 遠近法カメラの UpDirection を 0 1 0 から 1 0 0 に変更し、90 度の回転変換を適用することでした。これを行うと、すべてが完璧に見えます。
これがなぜなのか知っている人はいますか?パースペクティブ カメラは、メッシュのサイズを変更するときに幅のみを考慮しますか?
ありがとう!
3d - 3Dシーンに合うようにカメラを移動します
ビューポート(私の場合はDirectXシーン)内にバウンディングボックスを収めるアルゴリズムを探しています。正投影カメラでバウンディング球を中心に配置するためのアルゴリズムについては知っていますが、バウンディングボックスと遠近法カメラでも同じことが必要になります。このアプリはユーザーが編集可能な変数としてFOVを持っているため、FOVを変更することはできません。そのため、カメラを移動する必要があります。
私はほとんどのデータを持っています:
- カメラのアップベクトルがあります
- バウンディングボックスの中心点があります
- カメラポイントからボックスの中心までのルックアットベクトル(方向と距離)があります
- カメラに垂直な平面にポイントを投影し、最大/最小のX座標とY座標が表示平面の内側または外側にあることを表す係数を取得しました。
私が抱えている問題:
- バウンディングボックスの中心は、必ずしもビューポートの中心にあるとは限りません(つまり、投影後のバウンディング長方形です)。
- 視野が投影を「歪める」ので(http://en.wikipedia.org/wiki/File:Perspective-foreshortening.svgを参照)、カメラを動かすためのスケールファクターとして係数を単純に使用することはできません。これは、オーバーシュートするためです。 /目的のカメラ位置をアンダーシュートします
ビューポートを可能な限り完全なピクセルで満たすようにカメラの位置を見つけるにはどうすればよいですか(アスペクト比が1.0から遠く離れている場合を除き、画面軸の1つを埋めるだけで済みます)。
私は他のいくつかのことを試しました:
- バウンディング球と接線を使用して、カメラを移動するための倍率を見つけます。これはうまく機能しません。なぜなら、透視投影が考慮されていないためです。次に、平面と長いジオメトリがたくさんあるため、球は私の使用には不適切なバウンディングボリュームです。
- 関数の呼び出しを繰り返して、カメラの位置のエラーをどんどん小さくしていきます。これはある程度機能しましたが、カメラの位置がオーバーシュートしすぎてエラー係数が増加するという奇妙なエッジケースに遭遇することがあります。また、これを行うとき、外接する長方形の位置に基づいてモデルを再センタリングしませんでした。それを確実に行うための確実で堅牢な方法を見つけることができませんでした。
助けてください!
math - 2D/3D 変換が完全に機能しました。遠近法を行う方法
この質問の文脈は 2d/3d ゲームの作成に関するものですが、私が抱えている問題は数学に要約されます。2.5D の世界ですが、この質問ではちょうど 2D のふりをしましょう。
xDistX と yDistX は x 軸の角度を決定し、xDistY と yDistY は投影の y 軸の角度を決定します (グリッドのサイズも決定しますが、簡単にするために 1 ピクセルと仮定します)。
このような「通常の」座標系
したがって、x 方向のすべてのステップは、右端から 0 ピクセル下への 1 ピクセルへの投影になります。投影の y 方向の各ステップは、右に 0 ステップ、下に 1 ピクセルになります。正しい xDistX、yDistX、xDistY、yDistY を選択すると、任意の三量体または二量体システムを投影できます (これが私がこれを選択した理由です)。
ここまでは順調ですが、これを描くとすべてがうまくいきます。「自分のシステム」と考え方が明確になったら、視点に移りましょう。このグリッドにパースペクティブを追加したかったので、次のようなエクストラを追加しました。
ここで、本当に難しい部分です...投影で (xa,ya) 点を取得し、元の点 (x,y) を計算したい場合はどうでしょう。最初のケース(遠近法なし)では、逆関数を見つけましたが、遠近法を使用した式に対してこれを行うにはどうすればよいですか。数学のスキルは、これを解決するための課題に完全に対応していない可能性があります.
(漠然と覚えていますが、ずっと前から mathematica はいくつかの特殊なケースに対して逆関数を作成できました...この問題を解決できますか?誰かが試してもらえますか?)
eclipse - Ubuntu がクラッシュした、Eclipse が .metadata を失った、Java Perspective がなくなった、見つからない、失われた
Ubuntu 10.04 LTS で Eclipse Galileo を実行しています。今日、Ubuntu がクラッシュしました。再起動した後、Eclipse が Java パースペクティブを完全に失い (パースペクティブのようなもので、関連するすべてのビューが存在しませんでした)、ワークスペースの .metadata ディレクトリが version.ini を除いて空であることがわかりました。
どうしたの?なぜそれが起こったのですか?どうすれば防ぐことができますか?どうすれば回復できますか?
eclipse - 単一の Eclipse パースペクティブと設定をエクスポートする
特別な Latex パースペクティブ用に Eclipse をカスタマイズし、このパースペクティブを「MyLatex」として保存しました。texlipse の設定にショートカットを追加して、"tab"+strg+space と入力してテーブルを挿入できるようにしました。
今、私はこれを友達に提供したいと思います。Export->General->Settings を使用できることがわかりましたが、これはすべてのパースペクティブをエクスポートします。
パースペクティブ "myLatex" と texlipse エディター テンプレートのみをエクスポートする方法はありますか?
よろしくフィリップ
java - 透視図/変換マトリックス
Java でパースペクティブ ビューの変換を行うにはどうすればよいですか? 私が理解しているように、FOV、アスペクト比、および近距離と遠距離の表示距離を決定するために使用できる魔法の 4 次元マトリックスがいくつかありますが、そのマトリックスを作成する方法がわかりません。
Java で「PerspectiveTransform」を実装できますが、次を使用しても効果がありません。
一番下の「1」は「d」が距離である 1/d である必要があるかもしれないことは理解していますが、どのような数値を試しても効果がありません。他の数値を変更しても効果はありますが、試してみるまでどのような効果があるかはわかりません (無限に推測することはできません)。私は認識しており、「quadToQuad」関数を機能させることができましたが、使用する「quad」を推測する必要があります。
そのため、FOV、アスペクト比、距離などに基づいて必要なマトリックスを作成する方法を説明するリソースが必要です。「Interactive Computer Graphics」第 5 版の関連部分を読みました。エドワード・エンジェルによって、それを理解していません。
私がやろうとしているのは、鳥瞰図の画像を人間の視点の画像に変換することです。この例は、Google Earth を使用するときに見ることができます。
ありがとう