Il problema Screen-a-mondo sulla iPhon e
Conversione di coordinate schermo-mondo in OpenGLES un compito facile?
Ho un modello 3D (cubo) reso in un EAGLView e voglio essere in grado di rilevare quando sto toccando il centro di una data faccia (Da qualsiasi angolo di orientamento) del cubo. Suona abbastanza facile ma non lo è ...
Il problema:
Come si riferiscono con precisione screen-coordinate (punto di contatto) alla più coordinate (a posizione nello spazio 3D OpenGL)? Certo, la conversione di un dato punto in una "percentuale" dello schermo/asse del mondo potrebbe sembrare la soluzione logica, ma i problemi sorgerebbero quando ho bisogno di zoomare o ruotare lo spazio 3D. Nota: ruotando lo zoom & lo zoom in avanti e indietro nello spazio 3D cambierà la relazione delle schermate 2D con le coordinate 3D del mondo ... Inoltre, dovresti tenere conto della "distanza" tra il punto di vista e gli oggetti nello spazio 3D . All'inizio, questo potrebbe sembrare un 'compito facile', ma questo cambia quando si esaminano effettivamente i requisiti. E non ho trovato esempi di persone che lo fanno su iPhone. Come si fa normalmente?
Un 'facile' compito ?:
Certo, si potrebbe intraprendere il compito di scrivere un'API di agire come un intermediario tra schermo e il mondo, ma il compito di creare un tale quadro richiederebbe alcuni gravi design e probabilmente impiegherebbe del "tempo" per fare - NON qualcosa che può essere con una persona in 4 ore ... E 4 ore è la mia scadenza.
La domanda:
- Quali sono alcuni dei modi più semplici per sapere se ho toccato posizioni specifiche nello spazio 3D nel mondo iPhone OpenGL ES?
AFAIK questo non è un problema banale a meno che non lo abbiate risolto prima o a meno che non ci sia già un supporto integrato nell'ambiente (che non sembra essere il caso). So che sembra più facile di quello che è, abbiamo avuto la stessa discussione con i miei colleghi. – zoul