ARKit:再现Project Point功能

2024-01-27

我正在尝试重现 ARCamera 的项目点函数,但由于某种原因,这些值没有正确匹配。我采用 ARCamera 的投影矩阵和视图矩阵,并应用基本的 CG 透视变换数学 (PV) * p,但 NDC 值与 ARCamera 的项目点函数给出的像素值不匹配。有任何想法吗?我是不是忘记了什么?

更多细节:

基本上,我试图通过单击按钮来获取 ARFrame,然后尝试复制https://developer.apple.com/documentation/arkit/arcamera/2923538-projectpoint https://developer.apple.com/documentation/arkit/arcamera/2923538-projectpoint。我正在尝试这样做https://developer.apple.com/documentation/arkit/arcamera/2887458-projectionmatrix https://developer.apple.com/documentation/arkit/arcamera/2887458-projectionmatrix and https://developer.apple.com/documentation/arkit/arcamera/2921672-viewmatrix https://developer.apple.com/documentation/arkit/arcamera/2921672-viewmatrix,确保两个部分的所有输入都匹配。 CG尺寸用于将坐标从NDC空间变换到图像空间。

编辑:找到解决方案,检查下面的评论。


问题原来是投影矩阵 https://developer.apple.com/documentation/arkit/arcamera/2887458-projectionmatrix有时无法正确找到设备方向。正确的方法是使用投影矩阵(对于:视口大小:zNear:zFar:) https://developer.apple.com/documentation/arkit/arcamera/2923539-projectionmatrix.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ARKit:再现Project Point功能 的相关文章

  • 如何从 .usdz 创建 SCNNode?

    我已经下载了Apple提供的 usdz模型 https developer apple com arkit gallery https developer apple com arkit gallery 但现在 我想使用这些模型之一创建一个
  • 如何保持 ARKit SCNNode 就位

    嘿 我正在想办法 如何保持简单节点的位置 当我在 ARKit 中绕着它走动时 Code func renderer renderer SCNSceneRenderer didAdd node SCNNode for anchor ARAnc
  • 使用捏合手势在运行时缩放 SCNNode

    我正在尝试使用捏合手势实时缩放和 SCNNode 这是我当前的代码 let pinchGestureRecognizer UIPinchGestureRecognizer target self action selector handle
  • 低端设备支持 ARKit 吗?

    在Apple的演示中 他们说如果不支持ARWorldTrackingConfiguration 我们可以使用较小的AROrientationTrackingConfiguration 以前称为ARSessionConfiguration 但
  • 在 RealityKit 中导入多个 .usdz 对象并为其设置动画

    我有一个简单的 RealityKit 场景 显示一头 USDZ 牛 我看到了这些问题的几个答案 但我无法将它们实现到我的代码中 如何播放此文件中内置的动画 我如何才能将第二个物体 比如说一匹马 带入场景中 此外 我可以做些什么来清理我的代码
  • SceneKit - 向场景添加新的 SCNNode 会导致严重的滞后

    我发现向场景中添加 SCNNode 使用 SCNGeometry 会导致严重的滞后峰值 根据时间分析器 它必须生成几何图形 至少函数 方法是这样调用的 它是在节点添加到场景时执行的 而不是在创建节点时执行的 因此 使用 SCNNode 创建
  • 通过 Swift 设置 ARKit 方向

    我正在开发一个 ARKit 应用程序OpenGL 因此直接使用 ARKit 而不是使用 SceneKit 默认情况下 ARKit 设置为横向 但我无法找到任何旋转为纵向的文档或示例 SceneKit 示例适用于纵向 但Metal示例仅适用于
  • SceneKit 修改 3D 对象并导出文件

    在我的应用程序中 我使用 SceneKit Framework 在 SCNView 中显示 3D 对象 并导出修改后的文件 并进行一些小的更改 如颜色 温度等 但在将其导出到文档文件夹后 我得到了原始文件 在这里我可以显示 3D 对象并对其
  • iOS 14 上的 Arkit/SceneKit 抛出新警告(金属)

    自从升级到 iOS14 以来 每当我向场景添加基本节点时 我都会收到金属警告 我不使用任何阴影 只使用标准材质 2020 09 24 18 51 04 548764 0100 Arvie AR 383 7987 Metal Compiler
  • ARImageAnchor 相对于 SCNNode 的方向

    我当前的代码库提供了方向 pitch yaw roll of an ARImageAnchor与世界的关系 我想要实现的是获得ARImageAnchor与启动会话后某个时间添加的节点相关的方向数据 func renderer rendere
  • 如何在 iOS 11 中使用 scenekit - ARKit 动态创建 3D 对象的注释?

    我正在努力使用创建注释overlaySKScene与此类似的东西 https sketchfab com models 1144d7be20434e8387a2f0e311eca9b1 https sketchfab com models
  • 如何获取相机相对于其方向的 SCNVector3 位置 ARKit Swift

    我试图在相机前面附加一个对象 但问题是它始终与初始相机方向相关 我如何调整 获取SCNVector3即使相机的方向是向上还是向下 将物体放在前面的位置 我现在就是这样做的 let ballShape SCNSphere radius 0 0
  • ARView 黑屏

    我正在尝试以编程方式实例化 ARView 这是我的视图控制器代码 import Foundation import UIKit import RealityKit class ARViewController UIViewControlle
  • 如何使用四元数在 SceneKit 中使用平移手势旋转相机

    我正在使用 iOS 构建 360 度视频查看器SceneKit https developer apple com library ios documentation SceneKit Reference SceneKit Framewor
  • swift 4.0:覆盖“prepare”必须与其覆盖的声明一样可用

    我试图将 Apple 的 ARKit 示例应用程序集成到我的应用程序中 由于ARKit只是一个附加功能 所以我需要支持较低版本的iOS 我向所有 ARKit 示例应用程序类添加了 available iOS 11 0 标签 它几乎可以工作
  • SceneKit 绘制曲线

    我想用 SceneKit 画一条贝塞尔曲线 并认为这可行 func drawCurvedLine let scene SCNScene let scnView self view as SCNView scnView scene scene
  • 在SCNNode中添加CIFilter使节点变成白盒

    我想添加一个CIGaussianBlur to a SCNNode正在 ARKit 中显示 然而 添加该过滤器会将节点变成 白盒 这是没有和有过滤器的节点 No CIFilter With CIFilter 这是相关代码 let gauss
  • 从基元创建自定义形状

    我正在尝试通过组合原始形状来创建自定义物理形状 目标是创建一个圆形立方体 合适的方法似乎是初始化 形状 变换 我在这里找到的https developer apple com library prerelease ios documenta
  • SceneKit unproject Z 文档解释?

    我正在经历一些 SceneKit 概念 而我试图在脑海中巩固的一个概念是 unprojectPoint 我知道该函数将获取 2D 中的一个点并返回 3D 中的一个点 因此具有正确的 Z 值 当我阅读文档时 我读到了以下内容 method u
  • 如何在 RealityKit 中录制视频?

    我在 Xcode 中有一个 RealityKit 项目 我想记录ARView 我考虑过ReplayKit 但那是为了屏幕录制 我只想录制ARView与它的相机饲料 我考虑过 AFathi 的开源项目 ARVideoKit 但它不支持 Rea

随机推荐

  • Beaglebone GPIO 输入不起作用

    我正在使用 beaglebone 通过 sysfs 接口访问特定引脚的数字输入 我可以更改输出状态 但不能更改输入 我所做的是 我有两个引脚 pinA 和 pinB pinA 我将其输出 pinB 我将其输入 将 pinA 连接到 pinB
  • 这个标准化功能如何工作?

    我正在做 Junit 教程 遇到了正在测试的标准化函数 它的定义如下 public static String normalizeWord String word try int i Class normalizerFormClass nu
  • 如何获取运行 C# 应用程序的服务器的 IP 地址?

    我正在运行一个服务器 我想显示我自己的IP地址 获取计算机自己 如果可能的话 外部 IP 地址的语法是什么 有人写了下面的代码 IPHostEntry host string localIP host Dns GetHostEntry Dn
  • 在 FakeRequest 中使用 MultipartFormData 进行框架测试

    我目前正在为 Play Framework 2 2 x 应用程序编写一些 Specs2 测试 该应用程序接受 MultipartFormData 提交作为其功能的一部分 我已经使用以下形式成功地使用文本和 JSON 主体编写了其他测试 re
  • 在 GHCi 中定义函数签名

    在 Haskell 的解释器 GHCi 中定义函数签名不起作用 复制一个例子这一页 https wiki haskell org Function Prelude gt square Int gt Int
  • 如何在android kotlin中使用一个复选框选择多个复选框?

    这是我的活动代码 class SelectCoursesActivity AppCompatActivity override fun onCreate savedInstanceState Bundle super onCreate sa
  • 如何检查php-fpm是否安装并正确运行?

    如标题 如何检查 php fpm 状态 正在运行吗 有多少请求服务 谢谢 Is ps ef grep php fpm第一部分的答案太简单了 您还可以使用可通过以下命令启用的 ping 功能ping path配置指令 http www php
  • JavaScript 文件加载顺序和依赖关系管理

    只是想知道这个 我有几个单独的 javascript 文件 它们都包含基于模块模式的代码 一些模块具有其他一些模块作为依赖项 如果我知道在加载页面之前不会在 HTML 上调用任何代码 那么文件加载的顺序仍然重要吗 模块代码位于立即函数内的事
  • popen 中整个字符串命令和字符串列表之间的区别

    我发现大多数程序员建议使用字符串列表来表示 popen 中的命令 然而 在我自己的项目中 我发现整个字符串在更多情况下都有效 例如下面的作品 subprocess Popen pgrep f run stdout subprocess PI
  • C ++生成(xyz)范围内的点

    有没有比这更好的方法来生成这样的点列表 就图书馆而言 我对任何基于特征的方法持开放态度 auto it voxels begin for auto i 180 i lt 90 i for auto j 80 j lt 70 j for au
  • 正确使用$@

    我正在尝试编写一个小脚本 它接受任意数量的命令行参数 打印出rwx文件 不是目录 的权限 我拥有的是 file if f file then ls l file fi 然而 这仅接受一个命令行参数 谢谢你的帮助 这是之间的一些差异的演示 a
  • 如何在Pubnub中的ngHistory中实现回调?

    当尝试检索历史消息时on事件 加载时间太长 微调器显示和隐藏速度太快 但该消息尚未加载 我们如何计算或获取加载历史记录的准确时间 scope limit 100 PubNub ngHistory channel scope channel
  • 设置开发服务器

    开发 PHP 应用程序时 最好有一个用于开发 测试的服务器 然后是一个实时服务器 一旦准备好就可以放置所有内容 好吧 但是怎么办呢 如果您通过托管公司进行托管 如何设置自己的开发服务器来测试模仿所有 LAMP 设置作为实时服务器 因为如果它
  • 如何对 GUI 进行单元测试?

    我的代码中的计算经过了充分测试 但由于 GUI 代码太多 我的整体代码覆盖率低于我的预期 有关于单元测试 GUI 代码的指南吗 这还有道理吗 例如 我的应用程序中有图表 我一直无法弄清楚如何自动测试图表 AFAIK 需要人眼来检查图表是否正
  • Corda 在终端中查看消耗状态

    有没有一种简单的方法可以使用 CordaRPCOps 界面查看终端中的消耗状态 似乎VaultQuery默认返回未使用的状态 我不知道如何使用vaultQueryBy或任何符合条件的东西 我知道应该有消耗状态 因为我可以用 H2 看到它们
  • 为什么我的 datumTokenizer 从未被调用?

    我在 datumTokenizer 函数中放置了一个断点 但它似乎从未被调用 为什么不 它适用于仅远程数据吗 var engine new Bloodhound datumTokenizer function d return Bloodh
  • es6箭头函数调试器语句

    如果我有这样的功能 param gt params 1 我需要放一个debugger函数体内的语句 添加括号是这样的 param gt debugger return params 1 唯一的选择 来自MDN https developer
  • 内联安装 Chrome 扩展程序时出现“未捕获无效的 Chrome Web Store 项目 URL”

    我创建了一个 Chrome 扩展程序 并将其发布到 Chrome Webstore 上的测试人员组 当我尝试从我的网站加载 添加 扩展程序时 出现错误 未捕获无效的 Chrome 应用商店项目 URL 论方法Installer protot
  • Android 中的 CTL(复杂文本语言)支持

    我正在尝试为亚洲语言开发 Android IME 需要复杂的渲染 例如更改字形形式 重新排序字符顺序等 在PC中 使用GTK Pango Graphite就足够了 在 Android 中 如何解决复杂文本语言的 Unicode 渲染问题 提
  • ARKit:再现Project Point功能

    我正在尝试重现 ARCamera 的项目点函数 但由于某种原因 这些值没有正确匹配 我采用 ARCamera 的投影矩阵和视图矩阵 并应用基本的 CG 透视变换数学 PV p 但 NDC 值与 ARCamera 的项目点函数给出的像素值不匹