diff --git a/docs/getting-started/faq.md b/docs/getting-started/faq.md index e6d630b1..33a3aef9 100644 --- a/docs/getting-started/faq.md +++ b/docs/getting-started/faq.md @@ -14,7 +14,16 @@ useFrame((state) => console.log(state.camera.getWorldPosition(new Vector3()))) ## How can I change the camera position in XR? -In contrast to non-immersive 3D applications, the camera transformation in MR/VR/AR applications should never be directly controlled by the developer since the user's head movement must control the camera's transformation. Therefore, pmndrs/xr provides the XROrigin component, which allows to control where the session's origin is placed inside the 3D scene. The session origin is at the users' feet once they recenter their session. This allows to implicitly control the camera position but prevents the user from getting motion sick when their movement is not reflected in the camera's movement. +XR provides its own camera, which becomes the `default` one, once xr-session starts. + +In contrast to non-immersive 3D applications, the camera transformation in MR/VR/AR applications should never be directly controlled by the developer since the user's head movement must control the camera's transformation. + +Therefore, pmndrs/xr provides the `XROrigin` component, which allows to control where the session's origin is placed inside the 3D scene. The session origin is at the users' feet once they recenter their session. This allows to implicitly control the camera position but prevents the user from getting motion sick when their movement is not reflected in the camera's movement. + +> [!IMPORTANT] +> Hence: +> - don't touch the position/rotation of the XR camera +> - don't change its fov (it is handled by the device) ## Having problems accessing the camera position or rotation. @@ -73,4 +82,4 @@ WebXR is not supported on iOS Safari yet. The alternative is to use products suc ## XRSpace -If you are placing `` components outside of the `` while changing the transformation of the `` (e.g. by setting ``), the elements rendered inside of the `` will not be transformed with the origin. If the transformations of the origin should be applied to the ``, make sure to place those components inside the ``. Not placing `` components into the `` can be useful in scenarios where you want to move the `` independently from the ``. For instance, building a virtual elevator where your actual room is duplicated into the x-axis so that you can use the elevator to travel between multiple instances of your room. \ No newline at end of file +If you are placing `` components outside of the `` while changing the transformation of the `` (e.g. by setting ``), the elements rendered inside of the `` will not be transformed with the origin. If the transformations of the origin should be applied to the ``, make sure to place those components inside the ``. Not placing `` components into the `` can be useful in scenarios where you want to move the `` independently from the ``. For instance, building a virtual elevator where your actual room is duplicated into the x-axis so that you can use the elevator to travel between multiple instances of your room.