项目要剪辑的点 Space 手动 SceneKit

Project Points To Clip Space Manually SceneKit

我找不到这方面的任何文档,所以我决定作为一个问题。我正在使用 SceneKit 渲染几个立方体,当我点击这些立方体时,我想转到 2D 屏幕。我认为如果当您点击立方体时,它会构建一个 2D 形状,该形状会变大并填满屏幕以进行过渡,那会非常酷。我以前在 OpenGL 中做过类似的事情,我只是将立方体点转换为剪辑 space,然后在那里构建形状。 为此,您需要模型视图和投影矩阵以及立方体点的位置。在 SceneKit 中有什么办法可以做到这一点吗?我可以得到几何点和相机的模型视图和投影矩阵吗?

如有任何见解,我们将不胜感激。 谢谢

每个节点都有一个 transformworldTransform 属性,因此很容易创建一个 model 然后一个 modelView 转换。或者您可以只使用 -[SCNNode convertPosition:fromNode:] 等转换实用程序。最后 SCNCamera 公开 -projectionTransform.

或者您可以使用 -[SCNSceneRenderer projectPoint:].

替换所有内容