three.js - 如何在 webXR 上重置相机的 matrixWorld
问题描述
我camera.matrixWorld.decompose()
用来获取 AR 相机的当前矩阵,如下所示:
var position = new THREE.Vector3();
var quaternion = new THREE.Quaternion();
var scale = new THREE.Vector3();
camera.matrixWorld.decompose(position, quaternion, scale);
{x:0, y:0, z:0}
当我按下 AR 按钮时,它们被初始化为默认值(例如位置)。(https://threejs.org/examples/jsm/webxr/ARButton.js)
我想知道是否可以在应用程序运行时重置矩阵而无需返回并重新按下 AR 按钮。
更多详细信息: 我想知道是否可以将 AR 相机位置重置为 [0, 0, 0],就像重新启动 AR 会话一样。例如,如果我在将手机放在办公桌上时启动应用程序,则该位置将为 [0, 0, 0],我可以看到位于 [0, 0, -3] 的立方体。如果我搬到我的床上,我将不再看到我面前的立方体,因为它还在我的桌子上。如果我重新启动应用程序,那么我可以在我的床上看到立方体,因为默认位置 [0, 0, 0] 在我的床上。我想知道用户是否可以按下按钮将位置重置为 [0, 0, 0] 而无需重新启动应用程序。
解决方案
推荐阅读
- android - 使用双向数据绑定更改 ImageView 颜色
- java - 范围内的随机数生成
- c# - Flexibility vs performance considered good practice
- python - 如何提取特定类名的文本,后跟特定文本?
- php - 如何使用 if ..else 条件在 PHP 中选择文件夹
- symfony - 在 symfony 4 中将字符串转换为时间戳
- java - 为什么默认情况下不使用 intern() 创建新字符串?
- php - 使用 SQL datetime 默认 current_timestamp 和格式化
- mysql - 获取拍手的 SUM() 并同时在一个查询中计算书签
- java - 服务器不会连接到多个客户端(Java)