2012-11-12 10 views
14

シーンのレンダリング部分の幅を調べる方法はありますか?Three.js - 表示の幅

たとえば、幅100のメッシュがあり、一定のズームレベルでレンダリングされている場合、...レンダリングされるメッシュの画面の幅を計算するにはどうすればよいですか?

答えて

23

ここで正確にする必要があります。

カメラの視野がcamera.fovで、与えられた距離がdistの場合、カメラからの可視の矩形領域を計算できます。

オブジェクトには深さがあると考えられるため、メッシュを通して1つのプレーンを選択し、その距離で計算しなければなりません。

カメラから所定の距離distの可視のheightとを計算する方法は次のとおりです。

var vFOV = THREE.Math.degToRad(camera.fov); // convert vertical fov to radians 

var height = 2 * Math.tan(vFOV/2) * dist; // visible height 

var width = height * camera.aspect;   // visible width 

three.js r.87

+0

'カメラのプロパティのFAR値から値をdist'ていますか? –

+0

'dist'は' FAR'より小さくなければなりません。さもなければ場所は見えません。 – WestLangley

+1

trully ...私は誤解されています。「dist」は何から起こっているのですか?前のコードの定義を見ることはできません。記述してください、distは何ですか? Dtis = Far - 近くかどうか?ありがとう! –

関連する問題