На чем написан 3D движок сайта 2Гис?

[Удален]
390

Очень нравится механика 3D движка сайта 2ГИС.

Как повторить в упрощенном виде, без всех их примочек? Сколько часов работы потребуется?

Есть предположения нейросети:

C++: Многие высокопроизводительные 3D движки, особенно те, которые требуют низкой задержки и высокой производительности, пишутся на C++. Это связано с тем, что C++ позволяет эффективно управлять памятью и имеет низкие накладные расходы.

C#: .NET Framework и Unity3D, популярная платформа для разработки игр и 3D приложений, используют C#. Если 2ГИС использовали Unity или создали свой движок на основе .NET, то C# мог быть основным языком.

JavaScript: Для веб-приложений JavaScript является наиболее распространенным языком. Если 3D движок 2ГИС работает непосредственно в браузере, то он, вероятно, написан на JavaScript или использует WebAssembly, который позволяет запускать код на других языках в браузере.

WebGL: WebGL - это JavaScript API, который позволяет создавать и отображать 3D графику в веб-браузере. Если 2ГИС использует WebGL, то значительная часть кода движка будет написана на JavaScript.


[Удален]
#1

На сайте 2гис  пишут:


В работе мы используем C++, Golang и Python. Основные расчетные бэкенды написаны на C++17, а еще у нас развитый CI, регулярные релизы и большие планы по развитию API.


3D-движок — большой и сложный проект, который содержит более полумиллиона строк высокопроизводительного кода на C++20, а также активно взаимодействует с современными GAPI: Vulkan/Metal/OpenGL.

Собираем этот код с помощью CMake, свежими версиями компиляторов (Clang, GCC, MSVC) в различных IDE – кому что удобней.

Поставляем наш продукт как кроссплатформенную библиотеку с документированным API, также предоставляем набор утилит для обработки и подготовки картографических данных. 

Также не забываем про качество нашего продукта. Пишем и поддерживаем различные тесты: от простых модульных до сложных e2e скриншотных тестов, запускаемых на ферме с реальными мобильными устройствами.

Основные задачи команды связаны с обработкой и отрисовкой большого количества 3D-объектов — генерацией геометрии, написанием шейдеров и эффектов, работой с бинарными данными карты (векторными тайлами) в собственном формате.

Основной стек

  • C++20, Python 3, CMake — для разработки и тестов.
  • Jira, Bitbucket Stash и Jenkins – для задач, ревью и сборки на CI.

SA
На сайте с 12.04.2024
Offline
42
#2
Там код не проблема в принципе, главное это карта. Это самое ценное. 
Много проектов как у тебя у людей в головах, но всё упирается в карту. 
И не многие даже крупные компании могут себе это позволить, тот же Диди взять.
Разумеется 2гис тебе не даст на ней работать. Если надо - рисуй сам. А это годы работы и десятки топографов и программистов. Миллионы согласований. 
По коду. На с++ тяжело писать, проблема с утечкой памяти как злой рок висит над каждым блоком. На с# с этих проблем нет. Тогда почему они пишут на с++? Видимо так сложилось изначально что других программистов не было, вот и стали писать на нём. 
Найти хороший программистов, заставить их работать слаженно, в команде, это ещё одна огромная проблема в программировании. Я знаю несколько стартапов в прошлом, которые не могли собрать команду и закрывались только по этому.
Короче, тебе надо повращаца в этой сфере самому и всё поймёшь))
[Удален]
#3
SeoA #:
И не многие даже крупные компании могут себе это позволить

Дело в 3d технологии webGL, она работает на мощности ПК,  на смартах не работает. Поэтому 2гис сделали другой движок для приложения, куда всех и зовут.

SeoA #:
главное это карта. Это самое ценное. 

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

[Удален]
#4
Интересный момент, Яндекс 3д карты не требуют авторизации, и у них нет эффекта скольжения (когда перемещаешь карту мышкой) как в 2гис. 

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий