Как стать автором
Поиск
Написать публикацию
Обновить

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

Скажите, кто у вас придумал, что если пользователь елозит по карте и случайно оказывается над другой страной, его сразу нужно перекинуть на другой домен, типа .by или .kz? Особенно пикантно это выглядит когда смотришь что-то рядом с границей. Одно неосторожное движение и ты иноагент иностранец.

Имхо, из серии "когда коту делать нечего": зачем пользователю видеть лишний "шум" на карте? Он в приложение карт заходит не ради фотореализма. Посмотрите на Яндекс, они, например, развивают более точную отрисовку дорог (особенно важно для сложных развязок). Сейчас вот глянул - у вас автобусы как будто по обочине гоняют... Пока 2ГИС использую только при выборе заведений в незнакомом городе - там поменьше накруток в отзывах, чем в Яндексе.

Да, за конкурентами, мы, конечно, активно наблюдаем и стараемся не отставать, а где-то и опережаем их (было уже несколько фич, которые Яндекс сделал после нас). Думаю, тени вы и у них скоро увидите.

Реалистичные дороги у нас есть уже во многих городах - в той же Москве. Их, кстати, видно на некоторых скринах в статье. Пока только они включены не у всех пользователей. Возможно, вы как раз не попали в эту выборку. А вот в мобильном приложении реалистичные дороги включаются в режиме навигатора.

При некотором масштабе у вас тени оторваны от объектов. Выглядит так, как будто дома висят в воздухе.

Спасибо. Это известный артефакт, как раз обусловленный bias, описанным в статье.
Его удалось снизить вдвое в версии движка, которая скоро пойдет в релиз. Проблема станет менее заметной :)

Есть мысль рендерить дополнительно карту высот (не глубины, именно расстояние до уровня моря для каждого пикселя) в экранном пространстве, и чем ближе пиксель к земле, тем меньше bias. Выше определённого порога bias постоянный. И зависимость нелинейная. По идее так мы как‑бы «притянем» кончики теней у оснований объектов к этим самым объектам, и удалим тем самым артефакт полностью в 99% случаев.

Почему бы эти тени просто не запечь в WebP/JPG? На карте объекты же неподвижны, зачем тут реалтаймовые тени?

Да, у вас есть там момент, что при приближении дома вырастают из 2D в 3D — так можно сделать появление этих запечённых теней через анимацию с прозрачностью. И всё — жрать ресурсы будет по минимуму, а тени можно посчитать качественно трасировкой, даже с GI, безо всяких фейковых AO.

А если надо сделать регулируемое/привязанное к реальности положение Солнца (но нужно ли это в картах?) — можно просто заранее отрендерить карты для разных минут в разные дни, хранить на сервере, и подгружать плавненько. Весить они будут копейки.

Когда/если будете добавлять едущий 3D транспорт (на основе реалтаймовых данных) — можно обойтись запечеными тенями и парой хитростей — и тени будут падать на этот транспорт.

Спасибо за классное предложение. Мы рассматривали и полное запечение теней (так называемые lightmap) и частичное их кэширование в риалтайме, но тут есть ряд моментов:

  • Во-первых, динамика, которую вы упомянули. У нас уже начали появляться анимированные модели (колеса обозрения, ветряные мельницы, всякие атртракционы). И ещё много чего шевелящегося на подходе.

  • Динамическое направление света уже работает в 2gis.ru. Можете сравнить направление тени с тем, что вы видите из окна. Меняется сейчас, правда только азимут.Более того, освещение в 2gis можно конфигурировать стилями и это могут делать сторонние пользователи нашего движка (он общедоступный).

  • Чтобы запечь LightMap, каждому объекту нужна UV-развертка. С этим будет очень много проблем, начиная от доп потребления памяти и заканчивая тем, что многие объекты генерируются в реальном времени.

  • Предположение о малом весе таких карт для меня выглядит не очень обоснованным :) Тем более, если запекались бы разные направления света.

  • Вопрос подготовки данных. Это, возможно, самое сложное во всей этой штуке. Про это можно написать отдельную большую статью. И тут трудности были бы в первую очередь даже не техническими, а интеграционными, поскольку были бы вовлечены разные команды, а риалтаймовые тени работают сами по себе.

Кстати да, на днях сам заметил что тени стали располагаться правильно, в зависимости от времени суток. Но есть нюанс -- высота теней не сильно соответствует действительности, хотя расположение -- очень даже.

В целом хорошее нововведение. Есть некоторые шерохаватости, вроде таких, когда тени от очень высоких домов исчезают, если от них карту далеко отодвинуть, но всё это терпимо.

Всё-то вы заметили :)
Да, потому что сейчас тайлы для отрисовки выбираются одинаково для основной сцене и для теней. Это сделано с целью экономии загрузки данных. Возможно, что-то с этим сделаем, но не в ближайшее время.

Какие в итоге размеры теневой карты используются (в том числе на разных устройствах)? Какой у них формат - 16 бит, 32 бит, float?

На большинстве устройств рисуем в 24 бита (+8 съедает stencil). Это стандартная для WebGL конфигурация.

Без поддержки текстур глубины на WebGL1 получается 32 бита, так как идёт запаковка глубины в RGBA-текстуру c 4-битовыми каналами.

как только всандалили деревья - стало невозможно нормально пользоваться. скоро 2GIS даже в браузерке будет просить минимум RTX4090?

По идее оно может наблюдать за FPS и снижать деталлизацию в случае, если она ниже 30 к/с. Плюс можно собрать статистику, на каком устройстве с какой скоростью оно работает и подбирать под это настройки графики автоматом.

В 3ds max когда вертишь слишком тяжелую модель он начинает упрощать отображение, чтобы удержать FPS на приемлемом уровне.

Тут не имею права не согласиться. Контента на карте стало очень много.

Во-первых, мы работаем над рядом оптимизаций по количеству вершин на экране включая более комплексное LOD-ирование и разного рода culling.

Во-вторых, как и советует @VBDUnit у нас в обозримом будущем появятся автоматически переключаемые пресеты графики, пока правда мы прицеливаемся на хитрую оценку производительности устройства при инициализации.

2Гис пошел вслед за яндексом, сделав из легких и быстрых карт какого-то монстра, забывая, что навигаторы очень часто работают очень далеко не на топовом железе - на магнитолах, например. Или когда они работают в смартфоне во время поездки - он разряжается мгновенно. Нельзя ли сделать переключалку, чтобы все красивости убрать, и оставить только быстрый функционал?

Эта статья, вообще говоря, про веб-версию карты.

Но если вы подняли вопрос мобильного приложения, то там коллеги уже довольно давно добавили именно такую переключалку. Настройки -> Карта -> Эффекты на карте

О, за информацию о переключении - спасибо. Не знаете, случаем - не планируется ли ещё начать предупреждать заранее о том, какую полосу надо занять на перекрёстке? Сейчас это можно узнать только почти заехав на сам перекрёсток и времени/возможности на перестроение часто уже нет.

Поддерживаю.
Еще с детальной разметкой дорог есть нюанс - одна видна только при сильном зуме, что довольно бесполезно - на ходу карта отдалена и зумить ее на ходу на магнитоле - банально опасно. Если бы перекресток вылезал где-то в уголке призумленный или что-то типа того (чтобы заранее видеть разметку перекрестка) - было прямо классно.

Вот тут вам не подскажу. Совсем не моя компетенция. Может быть, кто-то из мобильного отдела и забежит в наш тред, но сомневаюсь. Могу только сказать, что разные работы по улучшению навигатора тоже, конечно, ведутся.

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

Последние годы впечатление, что карты занимаются какой-то ерундой украшательской вместо улучшение UX в разных сценариях и оптимизации для разных устройств. В итоге красиво только в Москве/Питере на компе с топовыми процом и видеокартой. У меня 2ГИС тормозит на топовом IvyBridge, RX 580 и 32 Гб ОЗУ - да это не свежее железо, но карты то почему тормозят? Это же не Alan Wake 2 с фотореалистичной графикой?
Работа вашей карты в Android Auto так задобала, что перешёл на Яндекс и очень доволен, там мелкие моменты, с которым сталкиваешься каждый день, проработаны куда лучше, а все эти ваши тени - ну правда до лампочки, если каждый запуск карты - это боль. И да, не понимаю, почему нельзя отключить все эти спец эффекты к чёрту.

Мне тоже ни к чему эти тени, мне нужно видеть все максимально четко, контрастно и быстро на маленьком экране.

Честно говоря, это выглядит как фишка ради фишки. Посмотрел все изображения в новости и практически на всех трехмерные объекты на ближнем плане перекрывают все, что находится на дальнем. Для карты это совсем не удобно и скорее отвлекает (при этом, метки объектов на дальнем плане отображаются сквозь объекты на переднем). Теперь к этому добавятся тени, на которые я бы как обычный пользователь даже внимания не обратил, если бы мне не сказали. Получается, карты из, собственно, карт превращаются в 3D рендер, который выглядит красиво, но пользоваться я им не буду. На мой вкус, двухмерная карта + street view удобнее для ориентирования.

Год назад понимал вопос, что есть проблема с пригородными маршрутами и мол какие-то внутренние решения не позволяют отобразить маршруты за границами городского района, и все точки за пределами скатывается на границе. И мол что то будет исправлено и информация на карте не будет выглядеть как бред собачий. Но год прошёл, а воз и ныне там...

Не хотите осветить существующие проблемы?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий