增强现实/虚拟现实 | AR/VR
此类拼图可用于实现基于浏览器的WebXR(eXtended Reality on the Web)技术运行的增强现实(AR)和虚拟现实(VR)体验。
关于支持的AR和VR设备,以及开展最佳实践的详细介绍,请参见手册中的 对应章节。
内容
拼图参考
check VR mode(检查VR模式)
检查虚拟现实系统。如果成功,if available do 中的拼图会被触发。如果浏览器不支持VR或者没有找到VR硬件,if unavailable do 插槽中的拼图将被触发。
请查看以下 章节 了解使用Verge3D创建VR应用的详细信息。
enter VR mode(进入VR模式)
进入虚拟现实模式。在进入或退出VR模式时,放置在 on enter do 和 on exit do 插槽中的拼图会被触发。在无法建立VR会话时将触发放在 if unavailable do 插槽的拼图。
VR定位模式:
- sitting or standing
- 放置在离地面一定高度的不可移动的摄影机。世界坐标空间的中心位于用户脚下。此模式是推荐使用的,因为它与市场上最受欢迎的VR头戴设备兼容,如Meta Quest 1-3、HTC Vive等。
- looking around
- 位于零坐标处的不移动的摄影机。
- room
- 位于某些范围内(如房间)的移动摄影机。
- walking
- 无边界的移动摄影机。
- viewer locked
- 位于零坐标处的不移动的摄影机。所有内容都以视图为父节点。
为在VR模式下正确地控制摄影机,请确保在进入VR模式时,将其与一些空对象、虚拟对象或真实对象相对齐并设为父对象,在您选择的3D编辑器中进行定位。这一点很必要,因为VR会话对您的摄影机有完全的控制权,而您只能移动摄影机所依附的空对象或虚拟对象。
从Verge3D 4.3开始,您可以使用 camera control object(摄影机控制对象) 拼图代替手动创建控制对象。
check AR mode(检查AR模式)
检查增强现实系统(WebXR)。如果成功,if available do 插槽中的拼图会被触发。如果浏览器不支持AR或者没有找到AR硬件,else if unavailable do 插槽中的拼图将被触发。else if Apple USDZ do 插槽中的拼图在没有找到WebXR兼容硬件但系统支持基于USDZ的Apple AR Quick Look技术时被触发。
请查看以下 章节 了解使用Verge3D创建AR应用的详细信息。
enter AR mode(进入AR模式)
进入增强现实模式。在进入或退出AR模式时,放置在 on enter do 和 on exit do 插槽中的拼图会被触发。在无法建立AR会话时将触发放在 if unavailable do 插槽的拼图。
属性 allow HTML 用于在AR模式中显示HTML内容。如果指定,canvas container 元素的内容将被渲染在3D内容之上。此选项是实验性的。
AR定位模式:
- looking around
- 位于零坐标处的不移动的摄影机。此模式推荐用于典型的AR用例,例如在某个水平或垂直表面上定位模型。
- sitting or standing
- 放置在离地面一定高度的不可移动的摄影机。世界坐标空间的中心位于用户脚下。
- room
- 位于某些范围内(如房间)的移动摄影机。
- walking
- 无边界的移动摄影机。
- viewer locked
- 位于零坐标处的不移动的摄影机。所有内容都以视图为父节点。
detect surface AR(检测AR平面)
在AR模式下,通过向前投射一条射线来检测平面。当相交时,该射线会在 on intersection do 插槽中触发拼图。如果没有发生相交或者设备处于预热状态,拼图就会触发 if missed do 插槽。
参数 smooth 是用来平滑化AR标记的运动。指定值为0表示禁用平滑,接近1的值表示最大的平滑。
AR hit point(AR碰撞点)
由 detect surface AR(检测AR平面) 拼图检测到的表面点坐标。可以是 X、Y、Z 值,或 XYZ 矢量。
AR hit normal(AR碰撞法线)
由 detect surface AR(检测AR平面) 拼图检测到的表面法线向量。可以是 X、Y、Z 值,或 XYZ 向量。
camera control object(摄影机控制对象)
获取摄影机控制对象。通过偏移此对象(例如使用 set transform(设置变换) 拼图),您可以高效地在AR或VR模式下移动摄影机。这使您无需专门维护某个空对象来作为摄影机的父对象和捕捉目标,因为此对象在进入或退出WebXR时会自动创建或丢弃。
on session event(在会话事件...)
捕获一个由VR设备(例如头戴式显示器或控制器按钮)产生的VR会话事件,并触发在 do 插槽中指定的拼图。
事件:
- select — 当用户按下并释放主控制器按钮时触发。
- selectstart — 当用户按下主控制器按钮时触发。
- selectend — 当用户释放主控制器按钮时触发。
- squeeze — 当用户挤压并释放控制器时触发。
- squeezestart — 当用户挤压一个控制器时触发。
- squeezeend — 当用户取消挤压控制器时触发。
- connected — 当VR控制器连接时被触发,即进入VR会话时。使用这个事件来初始化任何控制器逻辑。
- disconnected — 当VR控制器断开连接时被触发。
traverse controllers(遍历控制器)
循环遍历所有连接的VR控制器,执行 do 插槽中指定的拼图。
get controller property(获取控制器属性)
获取控制器的属性。
属性:
- object — 一个代表控制器的空对象。
- ray/reticle — 控制器的射线或十字线对象。
- handedness — 控制器的惯用手,以下之一:"left"(左控制器),"right"(右控制器),"none"(未指定,可能是头戴式控制器)。
- target ray mode — 以下之一:"gaze"(用于注视类设备,即Cardboard类设备),"tracked-pointer"(用于普通的手持控制器),"screen"(该事件与画布输入有关,目前尚未实现)。
- profiles — 控制器配置文件名称的列表。
- gamepad index — 控制器的游戏手柄索引,可以传递给 get gamepad property(获取游戏手柄属性) 拼图,以便从您的控制器获取更多信息,比如按钮/轴的状态。
end AR/VR session(结束AR/VR会话)
结束一个虚拟现实或增强现实会话。
在使用拼图时遇到困难?
欢迎您随时在 论坛上提问!您还可以加入中文用户社区QQ群(171678760),在线寻求帮助。