El problema-Screen-a mundo en el iPhon e
La conversión de coordenadas de la pantalla al mundo en OpenGLES es una tarea fácil?
tengo un modelo 3D (cubo) dictada en un EAGLView y yo quiero ser capaz de detectar cuando estoy tocando el centro de una cara dada (Desde cualquier ángulo de orientación) del cubo. Suena bastante fácil pero no lo es ...
El problema:
¿Cómo me relaciono con precisión las coordenadas de pantalla (punto de contacto) a las coordenadas mundiales (una ubicación en el espacio 3D OpenGL)? Claro, la conversión de un punto dado en un 'porcentaje' de la pantalla/eje del mundo puede parecer la solución lógica, pero surgirían problemas cuando necesite hacer zoom o rotar el espacio 3D. Nota: al girar & al acercar y alejar el espacio 3D, cambiará la relación de los coords de la pantalla 2D con los coords mundiales tridimensionales ... Además, debe permitir la "distancia" entre el punto de vista y los objetos en el espacio 3D . Al principio, esto podría parecer una 'tarea fácil', pero eso cambia cuando realmente se examinan los requisitos. Y no he encontrado ejemplos de personas haciendo esto en el iPhone. ¿Cómo se hace esto normalmente?
Un 'fácil' tarea ?:
Claro, se podría llevar a cabo la tarea de escribir una API para actuar como un intermediario entre la pantalla y el mundo, pero la tarea de crear un marco de este tipo requeriría algunos graves diseño y probablemente tomaría "tiempo" para hacer - NO es algo que puede ser one-manned en 4 horas ... Y 4 horas pasa a ser mi fecha límite.
La pregunta:
- ¿Cuáles son algunas de las maneras más simples de saber si tocaba lugares específicos en el espacio 3D en el mundo iPhone OpenGL ES?
AFAIK esto no es un problema trivial a menos que lo haya resuelto antes o a menos que ya haya compatibilidad integrada en su entorno (lo que no parece ser el caso). Sé que parece más fácil de lo que es, hemos tenido la misma discusión con mis colegas. – zoul