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);
相关推荐
zhangphil2 小时前
HARDWARE 属性的Bitmap与普通Bitmap,GPU与RenderThread渲染与处理方式异同比较,Android
android
消失的旧时光-19434 小时前
Flutter 异步编程:Future 与 Stream 深度解析
android·前端·flutter
alexhilton4 小时前
Compose CameraX现已稳定:给Composer的端到端指南
android·kotlin·android jetpack
阿里云云原生6 小时前
移动端性能监控探索:可观测 Android 采集探针架构与实现
android
雨白6 小时前
玩转 Flow 操作符(一):数据转换与过滤
android·kotlin
二流小码农7 小时前
鸿蒙开发:web页面如何适配深色模式
android·ios·harmonyos
Renderbus瑞云渲染农场8 小时前
跨平台渲染不再难_瑞云渲染跨平台转移+克隆双功能上线,效率升级
3d·图形渲染
消失的旧时光-19439 小时前
TCP 流通信中的 EOFException 与 JSON 半包问题解析
android·json·tcp·数据
JiaoJunfeng9 小时前
android 8以上桌面图标适配方案(圆形)
android·图标适配
参宿四南河三9 小时前
Android Compose快速入门手册(真的只是入门)
android·app