OpenXR Reference Space浅析

在OpenXR中space也是一个重要的模块,这里参考Monado的代码分析一下。

入口是oxr_xrLocateSpace -》oxr_space_locate,

其中分两个大部分,一是先获取原始的space pose,

cpp 复制代码
	XrResult ret = get_pure_space_relation(log, spc, baseSpc, time, &pure);

二是和space的pose,以及baseSpace的pose,合到一起。

cpp 复制代码
	// Combine space and base space poses with pure relation
	struct xrt_space_relation result;
	struct xrt_space_graph graph = {0};
	m_space_graph_add_pose_if_not_identity(&graph, &spc->pose);
	m_space_graph_add_relation(&graph, &pure);
	m_space_graph_add_inverted_pose_if_not_identity(&graph, &baseSpc->pose);
	m_space_graph_resolve(&graph, &result);

可以概括成这样计算的: Inverted(baseSpace.pose) * purePose * Space.pose

其中两个transform相乘,C = A * B,计算公式:

cpp 复制代码
C.orientation = A.orientation * B.orientation;

C.position = A.position + (A.orientation * B.position);
相关推荐
Zender Han4 小时前
Flutter 新版 Google Sign-In 插件完整解析(含示例讲解)
android·flutter·ios·web
来来走走8 小时前
Android开发(Kotlin) LiveData的基本了解
android·开发语言·kotlin
。puppy8 小时前
MySQL 远程登录实验:通过 IP 地址跨机器连接实战指南
android·adb
dongdeaiziji9 小时前
深入理解 Kotlin 中的构造方法
android·kotlin
风起云涌~9 小时前
【Android】浅谈Navigation
android
游戏开发爱好者89 小时前
iOS 商店上架全流程解析 从工程准备到审核通过的系统化实践指南
android·macos·ios·小程序·uni-app·cocoa·iphone
QuantumLeap丶12 小时前
《Flutter全栈开发实战指南:从零到高级》- 18 -自定义绘制与画布
android·flutter·ios
.豆鲨包12 小时前
【Android】 View事件分发机制源码分析
android·java
花落归零12 小时前
Android 小组件AppWidgetProvider的使用
android
弥巷12 小时前
【Android】常见滑动冲突场景及解决方案
android·java