問題タブ [raycasting]
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.
javascript - 正投影カメラとレイキャストによるオブジェクトの選択
raycaster を使用して正投影カメラでオブジェクトを選択するのに少し苦労しています。とはいえ、パースペクティブ カメラを使用する場合は問題ありません。2つを切り替えるときに変更しているのは、タイプカメラだけです。
正射投影ビューで面を選択できますが、画面上のどこをクリックしているかは大まかにしか関係ありません。オブジェクトから遠く離れたところをクリックしても、中心近くのオブジェクトに当たったかのように戻ってきます。
ここで何が欠けているかについてのアイデアはありますか?
私はコードの多くをこの例に基づいており、私のコードから非常によく似た結果を得ることを望んでいます。(私が参照しているこの例では、遠近法カメラを使用しています)
どんな助けでも大歓迎です
私はまだ知らない単純なものであることを願っています。
three.js r60
c++ - OpenGL 2を使用したマウスからのレイキャスティング
飛行機との衝突点を見つけるという最終的な目標を持って、マウス クリックでレイ キャスティングを実行しようとしています。ただし、レイを作成できません。世界は、フラスタムとカメラとして使用している別のマトリックスを使用して、フラスタム * カメラ * vertex_position の順序でレンダリングされます。画面の左上を 0,0 にすると、クリックの X,Y をピクセル単位で取得できます。次に、以下のコードを使用してこれを光線に変換します。
view_frustum マトリックス:
「カメラ」マトリックスが 0,0,0 の場合、期待どおりの結果が得られますが、別の場所の固定カメラ位置に変更すると、返される結果はまったく正しくありません。固定された「カメラ」マトリックス:
私がオンラインで見つけた多くの例は、そのような方法でカメラを実装していないため、この場合に役立つ多くの情報を見つけることができません. 誰かがこれについての洞察を提供したり、より良い方向に向けたりすることはできますか?
c++ - SFML 描画ピクセル配列
インターネットでこのチュートリアル ( http://lodev.org/cgtutor/raycasting.html )を見つけて興味を持ち、自分で作成したいと思いました。私はそれを SFML でやりたかったのですが、それを拡張して 3D バージョンを作成したかったので、プレイヤーが歩けるさまざまなレベルが存在する可能性がありました。したがって、ピクセルごとに 1 つの光線が必要になるため、各ピクセルを個別に描画する必要があります。これを見つけました ( http://www.sfml-dev.org/tutorials/2.1/graphics-vertex-array.php) チュートリアルで、配列を個々の頂点にするのは簡単に思えました。まず、光線から返されたピクセルを読み取って画面に描画できるクラスを作成するのが最善の方法であると考えました。VertexArray を使用しましたが、何らかの理由で機能しませんでした。問題を切り分けようとしましたが、ほとんど成功しませんでした。画面の一部を埋める緑色のピクセルだけの単純な頂点配列を書きましたが、まだ問題があります。ピクセルには、コードと写真のみが表示されます。私が意味することの。
}
これは、上位 10 行を緑で埋めるだけのつもりでしたが、どうやらそれは私がやったことではないようです... これが機能しない原因を突き止めることができれば、おそらく主な問題を修正できると思います. また、代わりにこれを行うためのより良い方法があると思われる場合は、お知らせください:)
ありがとう!
c++ - 3D スクリーンスペース レイキャスティング/ピッキング DirectX9
特定の深度に基づいて、2D マウス座標を 3D 世界座標に変換する必要があります (レイキャスティング用です)。私は C++ で DirectX を直接使用しているわけではなく、独自の言語を使用していますが、C++ または疑似コード (C++ を推奨) で回答をいただければ、変換できます。
世界行列、ビュー行列、射影行列、およびさまざまな行列操作関数にアクセスできます。
vector4 を matrix4 で乗算する必要がある場合、vector4 と matrix4 の両方を使用できる唯一の関数は ですtransformVector4(vector4Source,matrix4Source)
。それが重要な場合、どの順序でそれらを乗算するかわかりません。
どんな助けでも大歓迎です:)私はこれに何時間も取り組んできましたが、3D数学が得られません...
matrix - 3D 空間で変換されたサーフェス上の 3D ポイントの相対位置を見つける方法
うまくいかないように見える数学/ベクトル/行列の質問があります。
サーフェスの境界を表す 3D 空間に 4 つのポイントがあります。
3D シーンの四角形に対するマウスの「光線」の交差位置を取得するために、レイキャスト アルゴリズムを作成しました。
シーン内の四角形には回転行列と平行移動行列が適用されているため、シーン内のどこにでも移動できます。私のレイキャスト システムは、サーフェス上のレイ ヒット位置を正しく取得します。
私の問題は、ワールド空間にあるレイ ヒットの位置を取得し、ヒットが四角形の 2D サーフェスのどこにあるかを調べる必要があることです。
これを行う方法がわかりません。
three.js - THREE.Raycaster は CSS3DObject オブジェクトの交差チェックを実行しますか?
マウス座標からレイキャストを実行し、3 つの CSS3DObject オブジェクトのグループの交差をチェックする必要があります。
関数は次のとおりです。
objects 引数は の配列ですcss3dobjects
。同様の関数を使用して、シーン上のドロップを正しいマウス位置に向けることができるので、ワールド空間でのマウス ポイントの計算は正しいと思います。これにより、Raycaster は の交差をチェックしないと考えるようになりましたcss3dobjects
。
私の css3dobjects は通常、その要素として div を使用して構築されます。
私のシーンはこの関数を介して作成されます
レイキャスティングを有効にするために必要なすべての要素がシーンに含まれていますか?
css3dobjects
でレイキャスティングを実行することは可能css3drenderer
ですか?
ご協力ありがとうございました
c# - Unity 実行時にマテリアルを置き換える
選択したタグに基づいて、実行時にオブジェクトのマテリアルを変更しようとしています。ただし、マテリアルを置き換える代わりに、Unity はターゲット マテリアルのインスタンスを追加し、それをオブジェクトに追加しています。
コードを介して既存の素材を削除し、対象の素材に置き換える方法はありますか?
これは、これを処理する現時点でのコードです。