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);
相关推荐
北京阿法龙科技有限公司15 小时前
AR 巡检与普通巡检有哪些区别,有哪些优势|阿法龙XR云平台
ar·xr
android_xc15 小时前
Android Studio适配butterknife遇到的坑
android·ide·android studio·butterknife
2501_9159184115 小时前
uni-app 项目 iOS 上架效率优化 从工具选择到流程改进的实战经验
android·ios·小程序·uni-app·cocoa·iphone·webview
00后程序员张15 小时前
如何在不同 iOS 设备上测试和上架 uni-app 应用 实战全流程解析
android·ios·小程序·https·uni-app·iphone·webview
米豆同学17 小时前
SufraceFlinger图像合成原理(3)-SurfaceFlinger中Layer的创建和销毁
android
米豆同学17 小时前
SufraceFlinger图像合成原理(2)-SurfaceFlinger与应用进程间的通信
android
用户20187928316717 小时前
uses-library:系统应用报NoClassDefFoundError问题
android
叽哥17 小时前
Kotlin学习第 4 课:Kotlin 函数:从基础定义到高阶应用
android·java·kotlin
mg66817 小时前
安卓玩机工具----安卓“搞机工具箱”最新版 控制手机的玩机工具
android·智能手机
诺诺Okami17 小时前
Android Framework- Activity启动2
android