我希望能够在触摸屏幕的位置放置一个对象。
OpenGL“相机”始终放置在3D世界中的原点(0,0)上,但是它可以朝不同的方向看。我要放置的物体应始终与相机/原点保持一定距离,例如50个单位的距离。
这就是我获取接触点的方式:
- (void)handleLongGesture:(UILongPressGestureRecognizer *)gesture {
CGPoint touchPoint = [gesture locationInView:self.view];
float theScale;
if ([[UIScreen mainScreen] respondsToSelector:@selector(nativeScale)])
theScale = [[UIScreen mainScreen] nativeScale];
else if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
theScale = [[UIScreen mainScreen] scale];
else
theScale = 1.0;
float x = theScale * touchPoint.x;
float y = theScale * touchPoint.y;
这是“视图/模型”矩阵:
GLKMatrix4 viewMatrix = GLKMatrix4Identity;
viewMatrix = GLKMatrix4Scale(viewMatrix, 1, 1, 1);
viewMatrix = GLKMatrix4RotateX(viewMatrix, -self.rotationX);
viewMatrix = GLKMatrix4RotateY(viewMatrix, -self.rotationY);
这是MVP矩阵:
GLKMatrix4 vpMatrix = GLKMatrix4Multiply(self.projectionMatrix,
viewMatrix);
所以我想我需要使用矩阵从2D点检索3D点吗?