0
votes

I'm using THREE.OrbitControls to dolly a THREE.OrthographicCamera. But, even thought the ortho camera renders correctly as repositioned, all that is updating on the orthographic camera is the 'zoom' property. Even after calling camera.updateProjectionMatrix(). Do I need to manually update the 'position' property of the camera based on the updated 'zoom' property? I want to display its position in my UI after dollying it.

(Note, this is a rewrite of my other question,THREE.js Orthographic camera position not updating after zoom with OrbitControl, in which I thought I was zooming with the OrbitControl but was actually dollying. Sorry about this).

1

1 Answers

0
votes

Dollying in/out with an ortho cam would have an unnoticeable effect. With ortho cams there is no perception of proximity because it has no perspective. All objects appear the same in size regardless of distance from the lens because the projection rays are all parallel. The only difference you'd notice is when the objects get clipped because they're past the near or far plane.

enter image description here

So, the decision was made that scrolling with OrbitControls would change the zoom of the camera, narrowing in/out of the center.

If you want to force the camera to move further/closer of its focus point, you could just translate it back/forth in the z-axis with: camera.translateZ(distance); A (-) distance would move it closer, and a (+) distance would move it further from its focus point.