Создать систему синтетического видения

Я хотел бы добавить эту функцию в мое приложение для Android: https://en.wikipedia.org/wiki/Synthetic_vision_system

Короче говоря, я считаю, что это карта высот местности. Мне особенно нужна помощь с рендерингом местности. Остальная часть дисплея я могу выполнить.

После дня Google я, кажется, не ближе. Похоже, мои исследования указывают на использование opengl, heightmaps и SRTM. Однако я понятия не имею, как связать все это вместе. Ни один из примеров Java не является специфичным для Android.

В качестве альтернативы, возможно, с использованием openstreetmaps и наложения плиток, но я не могу установить, возможно ли это в 3D.

Приложение будет представлять собой движущуюся карту, основанную на GPS-положении самолета. По мере движения самолета над землей местность впереди будет обновляться.

Может ли кто-нибудь указать мне правильное направление?

1 ответ

Решение

Я могу порекомендовать вам использовать векторный формат с несколькими слоями. Например, слой глубины, слой типа ландшафта и слой объектов. Чтобы построить 3D из этих данных, вам нужно разделить карту на маленькие плитки и загрузить данные в память только для видимой области. Ваш 3D-строитель проанализирует эти данные. Например, простой рендерер (с использованием OpenGL)... Вы создаете сетку размером с плитку и с достаточным количеством вершин. Затем вы анализируете слой глубины и перемещаете каждую вершину вдоль оси Z так, как это необходимо. После того, как вам нужно установить цвет, как это указано в типе слоя. И, наконец, вам нужно создавать и размещать объекты, такие как данные слоя объекта (это уже встроенные сетки). Когда вы строите нужные плитки, вы передаете их рендереру.

Другие вопросы по тегам