项目要剪辑的点 Space 手动 SceneKit
Project Points To Clip Space Manually SceneKit
我找不到这方面的任何文档,所以我决定作为一个问题。我正在使用 SceneKit 渲染几个立方体,当我点击这些立方体时,我想转到 2D 屏幕。我认为如果当您点击立方体时,它会构建一个 2D 形状,该形状会变大并填满屏幕以进行过渡,那会非常酷。我以前在 OpenGL 中做过类似的事情,我只是将立方体点转换为剪辑 space,然后在那里构建形状。
为此,您需要模型视图和投影矩阵以及立方体点的位置。在 SceneKit 中有什么办法可以做到这一点吗?我可以得到几何点和相机的模型视图和投影矩阵吗?
如有任何见解,我们将不胜感激。
谢谢
每个节点都有一个 transform
和 worldTransform
属性,因此很容易创建一个 model
然后一个 modelView
转换。或者您可以只使用 -[SCNNode convertPosition:fromNode:]
等转换实用程序。最后 SCNCamera
公开 -projectionTransform
.
或者您可以使用 -[SCNSceneRenderer projectPoint:]
.
替换所有内容
我找不到这方面的任何文档,所以我决定作为一个问题。我正在使用 SceneKit 渲染几个立方体,当我点击这些立方体时,我想转到 2D 屏幕。我认为如果当您点击立方体时,它会构建一个 2D 形状,该形状会变大并填满屏幕以进行过渡,那会非常酷。我以前在 OpenGL 中做过类似的事情,我只是将立方体点转换为剪辑 space,然后在那里构建形状。 为此,您需要模型视图和投影矩阵以及立方体点的位置。在 SceneKit 中有什么办法可以做到这一点吗?我可以得到几何点和相机的模型视图和投影矩阵吗?
如有任何见解,我们将不胜感激。 谢谢
每个节点都有一个 transform
和 worldTransform
属性,因此很容易创建一个 model
然后一个 modelView
转换。或者您可以只使用 -[SCNNode convertPosition:fromNode:]
等转换实用程序。最后 SCNCamera
公开 -projectionTransform
.
或者您可以使用 -[SCNSceneRenderer projectPoint:]
.