相关疑难解决方法(0)

如何使用SceneKit在场景中找到鼠标点?

我在SceneKit中设置了一个场景,并发出了一个命中测试来选择一个项目.但是,我希望能够在场景中沿着平面移动该项目.我继续接收鼠标拖动事件,但不知道如何将这些2D坐标转换为场景中的3D坐标.

我的情况很简单.摄像机位于0,0,50并指向0,0,0.我只想沿z平面拖动我的对象,其z值为0.

命中测试就像魅力一样,但是如何将拖动事件中的鼠标点转换为我拖动的3D对象的场景中的新位置?

opengl 3d mouse-picking scenekit

13
推荐指数
1
解决办法
6681
查看次数

SceneKit unproject Z 文档解释?

我正在研究一些 SceneKit 概念,而我试图在脑海中巩固的一个概念是 unprojectPoint。

我知道该函数将在 2D 中取一个点并在 3D 中返回一个点(所以一个具有正确 Z 值的点)。

当我阅读文档时,我读到了这个:

  /*!
     @method unprojectPoint
     @abstract Unprojects a screenspace 2D point with depth info using the receiver's current point of view and viewport.
     @param point The screenspace position to be unprojected.
     @discussion A point whose z component is 0 (resp. 1) is unprojected on the near (resp. far) clip plane.
     */
    public func unprojectPoint(_ point: SCNVector3) -> SCNVector3
Run Code Online (Sandbox Code Playgroud)

我不太清楚的是在谈论 Z 时使用的值 0 和 1 ....

z 分量为 0(分别为 1)的点在近(分别为远)剪裁平面上未投影。

当我在网上阅读时,我发现了这个问题: …

ios scenekit

3
推荐指数
1
解决办法
713
查看次数

标签 统计

scenekit ×2

3d ×1

ios ×1

mouse-picking ×1

opengl ×1