Three.js – Largura de visão

Existe uma maneira de descobrir a largura de uma parte renderizada da cena?

Por exemplo, se tivermos uma malha de largura 100, mas renderizada com um certo nível de zoom … como posso calcular a largura da parte da malha que está sendo renderizada na canvas?

Você tem que ser preciso aqui.

Você pode calcular a região retangular visível, dado o campo de visão da camera.fov , camera.fov e uma determinada distância, dist , da câmera.

Como o object presumivelmente tem profundidade, você precisa escolher um plano através da malha e fazer o cálculo a essa distância.

Aqui está como calcular a height e a width visíveis para uma determinada distância dist da câmera.

 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