J'ai utilisé GLKMathUnProject pour implémenter le picking de rayon afin que je puisse toucher un objet dans l'espace 3D. Maintenant ce que je voudrais faire est (par exemple) montrer une étiquette au-dessus de cet objet. J'ai donc besoin de convertir l'espace 3D en correctifs d'écran 2D (je sais que l'utilisation d'OpenGl et d'UIKit est une mauvaise idée et que le text to text est déjà implémenté).GLKMathProject: Tracer un UIView basé sur les correctifs OpenGl
J'ai utilisé la méthode suivante ci-dessous mais je pense qu'il me manque quelque chose. Je reçois sur un iPad L'article est devant moi, pour être honnête pas sûr de ce qu'il faut faire avec 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];
Quel est le problème? Vous devrez peut-être diviser ces coordonnées par 2,0 pour les affichages de la rétine. La coordonnée Z est inutile pour votre cas. Au fait, mixer OpenGL et UIKit est loin d'être une mauvaise idée. –
Oh ok, c'est rétine, et est-ce ok pour montrer des étiquettes au-dessus de 3d comme des noms et des trucs (dynamiques) textos tout semble être une surcharge – Burf2000
Veuillez poster comme solution que vous l'avez fixé – Burf2000