SceneKit – 用于1:1的orthographicProjection指向SceneKit位置比率

必须使用什么orthographicProjection才能在SceneKit中以1:1的方式制作2D应用程序SceneKit指向屏幕点/像素比率?

示例:我想在屏幕上放置一些(200,200),我想使用带有(200,200,0)的SCNVector。 我需要什么orthographicProjection呢?

如果您想要一个场景空间单位对应于屏幕空间点的正投影,则需要一个投影,其中左剪裁平面为零,右剪裁平面位于屏幕的点宽度。 (同上/下,近/远无关紧要,只要你将物体放在你设置的近/远处。)

为此,设置自己的投影矩阵可能最简单,而不是确定orthographicScale和相机位置对应于您需要的尺寸:

 GLKMatrix4 mat = GLKMatrix4MakeOrtho(0, self.view.bounds.size.width, 0, self.view.bounds.size.height, 1, 100); // z range arbitrary cameraNode.camera.projectionTransform = SCNMatrix4FromGLKMatrix4(mat); // still need to position the camera for its direction & z range cameraNode.position = SCNVector3Make(0, 0, 50);