three.js - texture - three js rotation
¿Cómo puedo poner límites a OrbitControl-Three.js? (2)
En caso de que alguien necesite una respuesta más sólida con la altura del terreno y el ajuste del objetivo de la cámara:
Encontrará el ángulo relativo al objetivo de los controles y la posición en el suelo de la cámara (independientemente de la altitud) y asignará el maxPolarAngle. Ajuste para su eje ascendente, el mío era Y. Dentro del evento de cambio de controles:
var centerPosition = controls.target.clone();
centerPosition.y = 0;
var groundPosition = camera.position.clone();
groundPosition.y = 0;
var d = (centerPosition.distanceTo(groundPosition));
var origin = new THREE.Vector2(controls.target.y,0);
var remote = new THREE.Vector2(0,d); // replace 0 with raycasted ground altitude
var angleRadians = Math.atan2(remote.y - origin.y, remote.x - origin.x);
controls.maxPolarAngle = angleRadians;
¿Hay una manera de poner límites a los OrbitControls.js? Imagina que estoy creando algo por encima del suelo, no me gustaría que la cámara se hundiera, ¿entiendes lo que quiero decir? Las mismas cosas van para acercar y alejar. ¿Hay una manera de establecer algunas variables para limitar eso? Porque no quiero que la cámara se acerque o se aleje demasiado.
Muchas gracias. =)
Ampliar reducir
this.minDistance = 0;
this.maxDistance = Infinity;
Dónde detener la rotación:
this.minPolarAngle = 0; // radians
this.maxPolarAngle = Math.PI; // radians
No dejes que descienda por debajo del suelo.
controls.maxPolarAngle = Math.PI/2;