在场景包相机前投影uiview时的缩放问题

时间:2017-05-13 18:24:15

标签: ios swift scenekit 360-virtual-reality

内容

  • 首先我有一个360(equirectangular)图像查看器,将图像作为纹理应用到球体上,场景套件相机位于中心。
  • 然后我进入“绘画模式”,我可以用手指在透明的UIView上绘画
  • 当我完成后,我将绘图作为注释应用到我的球体

问题(使用视频示例)

问题出在第3步,比例未正确保存。

https://www.dropbox.com/s/a2l3vvx92sa3cgh/drawing_defect_trimmed_480p.mp4?dl=0

临时解决方案 我能够在预期的比例中添加一个幻数,这减少了缩放问题,但它仍然有点偏离,从技术角度来看显然不是最理想的。

e.g。 “scale_used = expected_scale + magic_constant”

实施细节

  • 我正在定制一个场景套件相机前面的UIView Scene Kit世界中的距离并试图让它成为新的 Scene Kit节点具有完全相同的视觉大小。

  • 方法是计算项目的透视投影, 使用相机位于drawingContentItem.distance的世界 zNear - “(screenHeight * distance / Float(zNear))”。

  • 然后我们假设场景工具包的可见世界的大小是-1000 到1000;视角为60度;并计算比率 UIView平面视图附近的场景工具包 - “(sceneScreenHeight / nearPlaneHeightInWorlCoordinates)”。

  • 给了我们世界坐标和绘图的最终高度 我们用它来计算比例。

  • 但似乎公式中存在一些错误并导致错误 需要神奇的数字。 :(

0 个答案:

没有答案