Estoy tratando de averiguar cómo obtener las coordenadas rectas de una malla para la proyección 2D.
Necesito X, Y, Ancho y Alto.
Después de leer muchas publicaciones de SO y varios blogs, parece que ninguno de ellos funciona con el último Three.JS moderno y la documentación no tiene una función para ello.
¿Cómo se logra esto?
Actualmente, estoy considerando usar un Box3 y luego proyectar el Box3 en la pantalla.
ACTUALIZAR Mi código se ve así
rect(mesh, camera, w, h){ var bbox = new THREE.Box3().setFromObject(mesh); bbox.min.setFromMatrixPosition(mesh.matrixWorld); bbox.max.setFromMatrixPosition(mesh.matrixWorld); bbox = { min: bbox.min.project(camera), max: bbox.max.project(camera) } var to2D = which => { bbox[which] = { x: (bbox[which].x + 1) * w / 2, y: -(bbox[which].y - 1) * h / 2 } } to2D('min') to2D('max') return { x: bbox.min.x, y: bbox.min.y, w: bbox.max.x - bbox.min.x, h: bbox.max.y - bbox.min.y } } return rect }La salida es básicamente un punto único sin ancho/alto recto.