Question

J'ai créé une application de carte qui utilise une très grande image comme carte. Il montre des carreaux haute résolution lorsque l'utilisateur zoome dans une certaine mesure et un bitmap inférieur de l'image entière lors du zoom out après 50%. Cela fonctionne bien, sur mon droïde d'origine, parfois je peux voir un très léger décalage en raison des nouvelles tuiles entraînées dans et depuis le collecteur des ordures.

Je pense maintenant à la façon dont les ouverts seraient une meilleure façon de rendre. Je ne l'ai jamais touché auparavant, mais d'après ce que j'ai lu dans différents turoiaux, il semble que je pourrais créer un quad qui a environ 8 faces, et permettre de réduire afin qu'il ne puisse que les images qui sont actuellement visibles à l'écran.

Cela éliminerait-il complètement le décalage? Dans mon application de test, j'ai maintenant des carreaux chargés sur le démarrage de l'application, mais je peux dire que le décalage est dû aux carreaux dessinés pour la première fois. Merci.

Était-ce utile?

La solution

J'ai écrit une vue de carte basée sur OpenGL et c'est génial si je le dis moi-même. Malheureusement, c'est pour un projet commercial, donc je ne peux pas offrir de code. Je peux cependant vous dire qu'il a 1 fil de rendu, un pool de 8 threads de téléchargement de carreaux et (le plus pertinent pour votre question) 1 thread de stockage qui charge et enregistre des carreaux au NAND Flash ou à la carte SD. Le rendu se fait une tuile à la fois, chaque tuile étant 2 triangles (il n'y a pas de quads dans ES). C'est encore très rapide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top