いくつかのワールド ポイントの非正規化された射影 Z 値を見つけたいです。
現在、mrdoob がここに示していることを実行することで、射影 X、Y 値を取得できます: https://stackoverflow.com/a/11605007
この例は、射影 X,Y を非正規化する方法を示しています ([-1, 1] の範囲から実際の画面座標に取り込んでいます)。射影 Z を非正規化する方法は示していません。これらの射影 Z 値も [-1, 1] の範囲にありますが、非正規化する方法がわかりません。
上記の mrdoob の回答に基づいて、コードで質問を構成するには:
var width = 640, height = 480;
var widthHalf = width / 2, heightHalf = height / 2;
var projector = new THREE.Projector();
// this could be any point; using example from mrdoob's answer
var someWorldPoint = object.matrixWorld.getPosition().clone();
var vector = projector.projectVector(someWorldPoint, camera );
vector.x = ( vector.x * widthHalf ) + widthHalf;
vector.y = - ( vector.y * heightHalf ) + heightHalf;
// what does vector.z represent and how do I de-normalize vector.z?
ご協力いただきありがとうございます。私の用語のいずれかが正しくないか混乱している場合は、修正してください。