【问题标题】:What's the best way to apply barrel distortion to a SCNView? [duplicate]将桶形失真应用于 SCNView 的最佳方法是什么? [复制]
【发布时间】:2016-04-19 04:41:38
【问题描述】:

我有一个带有左右 SCNView 的场景,当它在 Google Cardboard 中显示时,可以提供很好的立体视图。我想在我的两个视图中添加桶形失真,以校正 Cardboard 中的不同镜头。

有人对我如何使用 SCNView / Metal / SceneKit 提供一些好的建议吗?我不想掉入 OpenGL 并弄乱渲染器。

我的想法是对SCNView 应用转换可能会很好。

提前致谢,

J.

【问题讨论】:

  • @rickster 这是使用 OpenGL 的一种老方法。就像我在我的问题中提出的那样,我希望看到 SCNView / Metal 的解决方案。它不是重复的。

标签: ios 3d scenekit metal


【解决方案1】:

MDLCamera 类具有 barrelDistortion 属性。我不知道这是否对你有用;您可能需要反向桶形失真? MDLCamera 桥接到SCNCamera,但您必须import SceneKit.ModelIO(如您的OBJ import answer 中所述。

一旦运行起来,听起来就像一篇很酷的博客文章!

【讨论】:

  • 模型 I/O 被设计为一种可用于导入和导出资产的格式。虽然 SceneKit 提供了用于加载表示为模型 I/O 对象的资产的实用程序,但并不是模型 I/O 可以表示的所有内容都受 SceneKit 支持。 SceneKit 不支持MDLCamera 的许多属性,barrelDistortion 就是其中之一。
  • 如果我创建的 MDLCamera 具有 SceneKit 中不存在的属性会怎样?我得到的是尽力而为的翻译,还是完全库存的 SCNCamera,或者结果未定义? SCNCamera 焦距参数是否反映 MDLCamera 光圈/镜头/等。 ?
  • Model I/O 在某种意义上是一种交换格式规范。它描述场景图和资产的各个方面,但除了描述之外什么都不做。阅读描述并尽其所能使用它取决于更高级别的工具。在 SceneKit 的情况下,可以安全地假设,如果您导入某种 MDL 对象作为相应的 SCN 类,则只会导入该 SCN 类具有 API 的功能。
猜你喜欢
  • 2010-09-16
  • 1970-01-01
  • 2016-08-29
  • 2011-10-22
  • 2010-09-05
  • 1970-01-01
  • 1970-01-01
  • 2021-10-03
  • 1970-01-01
相关资源
最近更新 更多