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);
相关推荐
allk552 分钟前
Android ANR 深度起底:从系统埋雷机制到全链路治理体系
android
满天星83035773 分钟前
【Linux】信号(下)
android·linux·运维·服务器·开发语言·性能优化
2501_915918414 分钟前
提升 iOS 应用安全审核通过率的一种思路,把容易被拒的点先处理
android·安全·ios·小程序·uni-app·iphone·webview
Kapaseker5 分钟前
一万四千字重温 Android 四大组件
android·kotlin
00后程序员张15 分钟前
APP如何快速上架Apple Store:完整上架流程与常见问题解析
android·小程序·https·uni-app·iphone·webview
傻啦嘿哟18 分钟前
Appium实现Android应用数据爬取:从环境搭建到实战优化
android·appium
jian1105838 分钟前
android java转kotlin,kotlin转java
android·java·kotlin
俩个逗号。。38 分钟前
android 后台应用申请音频焦点失败
android·音视频
summerkissyou198742 分钟前
Android-车机高通蓝牙电话-音频收发流程
android·音视频
TheNextByte143 分钟前
如何导入和导出Android联系人(4 种可行方法)
android·gitee