Layout cameras
LayoutCamera
and LayoutOrthographicCamera
allow us to involve React Three Fiber scenes in Motion's layout animations.
Usage
Motion's layout animations work via the transform
style. A drawback to animating width
and height
via transform
is imagery can become distorted.
When involving a React Three Fiber scene into a layout animation, we can use Motion's LayoutCamera
and LayoutOrthographicCamera
components to pre-distort a 3D scene so that when the CSS transform
is applied to the host canvas
element, it looks correct throughout the animation.
To implement a camera, we first nee to replace Canvas
from @react-three/fiber
with the MotionCanvas
component. Then, one of the camera components can be added anywhere within the scene:
LayoutCamera
provides a normal perspective camera:
Whereas LayoutOrthographicCamera
provides an orthographic view:
Props
Internally, LayoutCamera
renders a <motion.perspectiveCamera />
and LayoutOrthographicCamera
renders a <motion.orthographicCamera />
component, so they can accept all the usual React Three Fiber props like position
and zoom
, as well as motion
props like initial
and animate
.