1

球の内側に適用されたパノラマの正距円筒テクスチャがあります。カメラは球体の中心に配置され、ユーザーはマウスをクリックしてドラッグすることでカメラを回転させて周りを見ることができます。ただし、ユーザーがクリックしてドラッグしない場合は、画面座標をテクスチャ上の座標に変換できるようにしたいと考えています。ユーザーがクリックしたワールド座標の位置が指定された場合、テクスチャ上の位置を特定できましたが、Three.js のドキュメントを調べても、これをどのように行うかわかりません。

最終的に問題となるのは、特定のスクリーン ポイントからの光線とテクスチャリングされた球との交点を取得するために光線クエリを作成するにはどうすればよいかということです。

4

1 に答える 1

0

three.js の例のディレクトリには、この例がたくさんあります。例: http://mrdoob.github.com/three.js/examples/canvas_interactive_cubes.html

グーグルで検索したいパターンは次のとおりです。

var vector = new THREE.Vector3( ( event.clientX / window.innerWidth ) * 2 - 1, - ( event.clientY / window.innerHeight ) * 2 + 1, 0.5 );

projector.unprojectVector( vector, camera );

var ray = new THREE.Ray( camera.position, vector.subSelf( camera.position ).normalize() );

var intersects = ray.intersectObjects( objects );
if ( intersects.length > 0 ) {
    console.log( intersects[ 0 ].point );
}

これは、キャンバスがフル ブラウザーの場合に機能します。また、objects配列です。

three.js r.53

于 2012-12-19T15:10:17.187 に答える