2010-02-02 15 views
7

Scrivo un'applicazione Android AR e il mio motore funziona ma contiene uno strano comportamento che non riesco a ottenere. Sto sovrapponendo una superficie OpenGL sull'immagine della fotocamera e sto posizionando gli oggetti 3D nella vista di conseguenza. Se utilizzo dati fittizi per la posizione dei miei oggetti AR, cioè LAT 10 LON 10 diventa x = 10 y = 10 sulla superficie OpenGL, la sovrapposizione funziona perfettamente. Tuttavia, se utilizzo le coordinate GPS dirette per la mia LAT e LON (ad esempio LAT 12.34567890 LON 100.23456789), tutti i miei oggetti si muovono intorno alla loro posizione o non appaiono affatto. So che ci sono problemi nell'utilizzo di punti mobili e del framework OpenGL, ma ho letto e sto ancora avendo problemi a fermare questo comportamento. Qualcun altro ha avuto questo problema? Dovrei usare un fattore di scala tra il mio GPS e la superficie openGL, in caso affermativo, quali valori sono buoni? Ho provato a ridimensionare il mio LAT e LON di 1000000 per eliminare il virgola mobile, ma non è stato d'aiuto e la performance è stata terribile.Realtà aumentata - Mappatura da GPS a OpenGL

Sono così vicino a farlo funzionare, che qualsiasi aiuto sarebbe molto apprezzato.

risposta

1

figura quale 1x1 o 'scatola' 0.5x0.5 gradi le coordinate prime sono quindi sottrarre che scatola, in modo che le coordinate sono ora relativi alla 'scatola' invece di tutto il mondo.

Così LAT 12.34567890 LON 100.23456789 è in casella (12.100), con coordinate (0.34567890, 0.23456789). Dovrai passare il (0.34567890, 0.23456789) a OpenGL.

L'accuratezza di ~ 1m di un galleggiante con intervallo di +/- 180 gradi è alquanto approssimativa, e una volta che si inizia a eseguire tutte le operazioni con le matrici di OpenGL, le cose iniziano a ruotare piuttosto male.

+0

Ciao genpfault Grazie per la risposta. Mi hai fatto pensare a una linea diversa. Ho iniziato a pensare che il renderer stesse rovinando tutto, ma poi mi sono ricordato della regola d'oro, "non è il loro codice, è mio". Dopo aver adottato un approccio più metodico, ho scoperto che il valore di rotazione che sto usando stava introducendo il jitter, quindi ho bisogno di filtrarlo ancora un po '. Spero di esserci quasi passato e di averlo rilasciato ... – Snowwire

Problemi correlati