Как стать автором
Обновить

Комментарии 21

О, мой любимый способ рендерить текст) SDF вам идеально подходит, да. Почему то обычно его недооценивают, используют растр, мучаются с pixel perfect, вращением, размером текстуры и пр.
Жду еще статей, очень интересно.
Вам бы еще добавить звуковое сопровождение по маршруту и цены бы не было таким картам))
Мы работаем над этим)
имхо, столько жд путей в одном месте — любой вокзал и прорисован каждый путь — рисовать нет смысла
Очень даже есть. Когда тебе надо быстро прикинуть на какой путь (или, как минимум, участок вокзала) приходит твой поезд. Да и вообще, один путь — одна дорога — один полноценный самостоятельный элемент карты. Не надо их объединять.
Спасибо, очень интересно!
Я делаю похожий проект на WinPhone(и DirectX, соответственно).

У меня есть пара вопросов, буду очень рад, если ответите:

1) Если я правильно понял, то вы данные, полученные из OSM, триангулируете и генерируете тайлы через OpenGL. А как вы делаете обводку полигонов? Это специальный шейдер, дополнительные полигоны, или 2d рисование поверх полигонов?
2) А как рисуете одномерные объекты(на картинке линия — . — . -)?
3) Триангуляция делается(если делается) на самом телефоне, или заранее?
4) Вы используете свой код для триангуляции, или какую-то библиотеку(я использую clipper для пред-обработки и poly2tri для триангуляции)
5) В рамках одной карты, храните-ли данные сгруппированными по местоположению(то же квадродерево, например)?
6) Если да, то как организован offline поиск по карте? Используете ли вы какой-то отдельный строковый индекс, порядок обхода(если данные сгруппированы) или просто проходите по всем строкам?

Спасибо, за хорошие вопросы :)
1) Обводка делается по-разному. В большинстве случаев это полигон-подложка. Для линий дорог сейчас мы делаем обводку в шейдерах. Чтобы обводка не рисовалась поверх другой дороги на перекрестках, специальным образом модифицируем gl_FragDepth.
2) Все линии превращаются в полигональные сетки. Штрих-пунктирные линии образуются при помощи текстурных масок и альфа-блендинга.
3) Триангуляция происходит заранее, на этапе предподготовки данных.
4) sgitess от SGI GLU implementation
5) Да, геометрический индекс.
6) Да, отдельный поисковый индекс.
Спасибо! Познавательно.
Поставил OsmAnd — вот это реально праздник!

Maps.me — это бывший Maps with me? Жаль конечно что они продались мейлу…
Зато стали бесплатными
За хорошие карты двух долларов (или сколько они стоили?) не жалко.
поставил и то и др
рисование в OsmAnd выглядит… на троечку
статья про рисование, другие функции не смотрел
Статья про рисование и opengl. OsmAnd не использует OpenGL в Android версии вообще, а про рисование карт в OsmAnd рисуется гораздо больше деталей + hillshade + srtm, да и стили есть разные. Так, что непонятно, что сравнивать и что будет «на трочеку»?
(Я лицо предвзятое — являюсь автором OsmAnd).
В OsmAnd, при всем уважении к команде, отгрохавшей такой проект, рисование отвратительно медленное. Даже на хорошем железе. Да и интерфейс такой себе (а ля привет девяностые). Maps.me в этом значительно выигрывают.

А насчёт мейла… Да, я тоже их не люблю. Хочется верить, что проект все время будет относительно самостоятельным, без всевозможных тулбаров и прочего шлака.
Про интерфейс OsmAnd — вы версию 2.x пробовали?
У OsmAnd тормозит отрисовка, больше весят карты.
В свое время была задача нарисовать красивый трек поверх готовых карт от MS или Yandex, вот тогда опыт греб лопатой. До этого никогда не рисовал ничего через 3D.
В итоге написал свой триангулятор :)
А сейчас думаю переделать все для WP 8.1 на D2D и тайлы, что бы все по уму было.
Помню много лет назад начинал я изучать OpenGL. Из ускорителя у меня был 3dfx Voodoo2, на котором работал только Glide(ну вообще GL-подобный API) и какой-то Trident как основная видео, который умел(!) проксировать OpenGL вызовы в себя через DX (софтинка в комплекте шла).
Так я погружался в мир 3д первые два года.
Потом я лет 10 активно этим делом промышлял, и лет 10 как забросил.
Теперь, во времена расцвета OpenGL ES и WebGL — я просто вернулся в детство.

Но последний раз на openGL я делал именно рендеринг карт (Wikimapia), жаль что серверов с ускорителями в те мохнатые времена не было :(

Дебага вам и терпения ребят. Крепитесь и стойко держите оборону против багов.
Ну вообще я всегда хвалил Maps.Me, но. У ребят красивый рендер, стили карты ну почти идеал. Но. Под iOS у почти конкурента Galileo (у них тоже есть векторная карта) рендер менее красив, но работает почему то чуть быстрее, особенно на старом железе типа первого iPad. Ну и выбор kml для загрузки треков меня лично удивил, подавляющее большинство софта для навигации генерит или умеет импортировать GPX.
Читал что в этом году исходники откроете, или это деза была?
Это была не дезинформация:) Касательно сроков ждите официальных анонсов.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий