diff options
Diffstat (limited to 'modules/webxr')
-rw-r--r-- | modules/webxr/doc_classes/WebXRInterface.xml | 2 | ||||
-rw-r--r-- | modules/webxr/webxr_interface_js.cpp | 12 |
2 files changed, 4 insertions, 10 deletions
diff --git a/modules/webxr/doc_classes/WebXRInterface.xml b/modules/webxr/doc_classes/WebXRInterface.xml index ba1750386f..0c18acbcb1 100644 --- a/modules/webxr/doc_classes/WebXRInterface.xml +++ b/modules/webxr/doc_classes/WebXRInterface.xml @@ -90,7 +90,7 @@ You can use both methods to allow your game or app to support a wider or narrower set of devices and input methods, or to allow more advanced interactions with more advanced devices. </description> <tutorials> - <link title="How to make a VR game for WebXR with Godot">https://www.snopekgames.com/blog/2020/how-make-vr-game-webxr-godot</link> + <link title="How to make a VR game for WebXR with Godot 4">https://www.snopekgames.com/tutorial/2023/how-make-vr-game-webxr-godot-4</link> </tutorials> <methods> <method name="get_input_source_target_ray_mode" qualifiers="const"> diff --git a/modules/webxr/webxr_interface_js.cpp b/modules/webxr/webxr_interface_js.cpp index 8485c62218..97b2eea4d7 100644 --- a/modules/webxr/webxr_interface_js.cpp +++ b/modules/webxr/webxr_interface_js.cpp @@ -347,9 +347,8 @@ Transform3D WebXRInterfaceJS::get_camera_transform() { ERR_FAIL_NULL_V(xr_server, camera_transform); if (initialized) { - float world_scale = xr_server->get_world_scale(); + double world_scale = xr_server->get_world_scale(); - // just scale our origin point of our transform Transform3D _head_transform = head_transform; _head_transform.origin *= world_scale; @@ -372,13 +371,8 @@ Transform3D WebXRInterfaceJS::get_transform_for_view(uint32_t p_view, const Tran Transform3D transform_for_view = _js_matrix_to_transform(js_matrix); - float world_scale = xr_server->get_world_scale(); - // Scale only the center point of our eye transform, so we don't scale the - // distance between the eyes. - Transform3D _head_transform = head_transform; - transform_for_view.origin -= _head_transform.origin; - _head_transform.origin *= world_scale; - transform_for_view.origin += _head_transform.origin; + double world_scale = xr_server->get_world_scale(); + transform_for_view.origin *= world_scale; return p_cam_transform * xr_server->get_reference_frame() * transform_for_view; }; |