2

内容

  • 首先,我有一个 360(等角)图像查看器,方法是将图像作为纹理应用到一个球体上,并且以 scenekit 相机为中心。
  • 然后我进入“绘图模式”,我可以用手指在透明的 UIView 上绘图
  • 完成后,我将绘图并将其作为注释应用到我的球体

问题(带有视频示例)

问题出在第三步,秤没有正确保存。

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

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

例如“scale_used = expected_scale + magic_constant”</p>

实施细节

  • 我在 Scene Kit 世界中的某个自定义距离处将 UIView 投影到 Scene Kit 相机前,并尝试制作它,以便新的 Scene Kit 节点具有完全相同的视觉大小。

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

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

  • 这给了我们在世界坐标中绘制的最终高度,我们用它来计算比例。

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

4

0 回答 0