我已經使用GLKMathUnProject來實現射線拾取,以便我可以觸摸3D空間中的對象。現在我想要做的是(例如)在該對象上方顯示一個標籤。所以我需要將3D空間轉換爲2D屏幕corrds(我知道使用OpenGl和UIKit是一個糟糕的主意,並且已經實現了紋理文本)。GLKMathProject:繪製基於OpenGl的UIView Corrds
我在下面使用了下面的方法,但是我想我錯過了一些東西。我得到一臺iPad,該項目是在我的面前,說實話不知道該怎麼帶z:
{922.111,763.055,0.990884}
GLKVector3 x = GLKMathProject(building.position, _baseModelViewMatrix, _projectionMatrix, viewport);
NSLog(@"%@", NSStringFromGLKVector3(x));
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(x.x, x.y, 50, 20)];
label.text = @"TEST";
[self.view addSubview:label];
問題是什麼?您可能需要將這些座標除以2.0來顯示視網膜。 Z座標對你的情況沒用。順便說一下,OpenGL和UIKit混合使用遠非壞主意。 –
噢好吧,這是視網膜,它可以顯示標籤上面的3d像名稱和東西(動態)發短信一切似乎過度殺傷 – Burf2000
請張貼解決方案, – Burf2000