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);
相关推荐
r***869839 分钟前
Plugin ‘mysql_native_password‘ is not loaded`
android·数据库·mysql
v***598343 分钟前
MySQL-mysql zip安装包配置教程
android·mysql·adb
不用89k1 小时前
Android无法区分USB摄像头是哪一个
android
ljt27249606612 小时前
Compose笔记(五十七)--snapshotFlow
android·笔记·android jetpack
花阴偷移3 小时前
kotlin语法(上)
android·java·开发语言·kotlin
Smart-佀3 小时前
Android初学必备:选Kotlin 还是Java ?
android·android studio·安卓
普通网友3 小时前
Android kotlin Jetpack mvvm 项目
android·开发语言·kotlin
大耳猫3 小时前
Android Kotlin 协程详解
android·kotlin·协程
Crogin3 小时前
快速简单入门Kotlin——基础语法(第一天)
android·开发语言·kotlin
国服第二切图仔3 小时前
Electron for鸿蒙PC实战项目之简易绘图板应用
android·electron·开源鸿蒙·鸿蒙pc