Рабочая Версия для ПК
Рабочая Версия для Android
Разработка леталки на javascript для GS
Проект основан на фреймворке BABYLON.JS.
Что сделано:
03.06.2021
Загрузка мозаики звезд в формате .basis для поддержки мобильной версии программы.
02.06.2021
Каталог звезд stars.json. Режим выбора объектов сцены, планет, звезд при нажатии левой клавиши мыши + Left Shift.
01.06.2021
Звездное небо(мозаика(dds, 86 Mb) от ПК леталки, подгружается несколько секунд), планеты луна,венера,марс,юпитер,сатурн .
27.05.2021
Расчет времени суток, движения солнца, управление временем, навигация по карте для телефонов, визуализация неба в разное время суток.
19.05.2021
Карта рассчитанных тайлов поверхности и рельефа.
Для того, чтобы программа знала какие тайлы есть в папках MAPS и DEM, в файле tiles_map.json в виде массива хранятся сигнатуры базовых тайлов. Сигнатуры записываются при выполнении команды js десктопной леталки. После переноса новых тайлов в веб леталку, их нужно вырезать из файла tiles_map.json в корне программы десктопной леталки и дополнить файл tiles_map.json на страничке веб леталки.19.05.2021
Cоздание слоя домов c учетом рельефа.
- В десктопной леталке нужно создать geojson файл со значениями высот в вершинах домов. Команда создания: addHouses js name F vector V, V - имя входного векторного файла, F - имя выходного geojson файла.
- В web леталке импортировать geojson файл обычным способом.
- В house_list.json прописаь новый слой с флагом "heights":"1". Например: {"file":"kaz_emb.houses", "heights":1 }. Этот слой будет загружаться, только при включенном рельефе.
18.05.2021
Горячие клавиши
- WSAD - управление камерой с клавиатуры
- F2 - Установить предыдущее положение камеры
- Shift+F2 - Установить следующее положение камеры
- Ctrl+F2 - Установить начальное положение камеры
- F4 - Запомнить положение камеры
- R - Установить положение камеры из файла camera.ini (Прописать новое положение камеры в файл camera.ini можно из F12/console после старта программы, или после нажатия клавиши F4)
- Q - Проволочный режим
- T - Установить положение камеры 'Вид сверху'
- Shift+T - Установить положение камеры 'На север'
- Shift+левая клавиша мыши - показать имя объекта под курсором.
18.05.2021
Создание собственных тайлов поверхности и рельефа
Добавление тайлов поверхности и рельефа:- В десктопной леталке, установить камеру в центре области, для которой будут созданы тайлы поверхности
- Настроить отображение слоев.
- Ввести команду js rgb radius R level0 L level1 H, где R - радиус области в метрах, L - грубый уровень(по умолчанию 10), H - детальный уровень(по умолчанию 19).
- В папке maps будут созданы тайлы поверхности.
- Подключить библиотеку рельефа командой demlib, ввести команду js dem radius R level0 L level1 H.
- В папке dem будут созданы тайлы рельефа.
- Перенести папки maps и dem с содержимым в корень JS леталки.
- Пример 1: js rgb radius 1000 level0 10 level1 19
- Пример 2: demlib load file "data/dem_lib.txt" js dem radius 5000 level0 10 level1 19
24.03.2021
Пакетное создание слоя домов.
- Правила создания слоев домов прописываются в отдельном файле.
- При импорте домов выбирается два файла вместо одного: GeoJSON и ljson.
- Следует учитывать ограничения на лимит памяти в браузерах.
22.03.2021
Оптимизация вывода объектов с помощью octree
10.02.2021
- Список слоёв домов, прописываются в scene/house_list.json.
- Если текстура стен не прямоугольная, в scene/house_mats.json указывается параметр ratio.
29.01.2021
- Материалы для слоя домов, прописываются в scene/house_mats.json.
- При импорте слоя домов задается индекс материала для крыши и стен.
- Можно написать выражение с именем поля или просто число. Например : :ETAG+1
01.01.2021
- Загрузка слоя домов из scene/scene.houses.
- Сохранение слоя домов.
- Загрузка слоя моделей из scene/scene.meshes.
- Сохранение слоя моделей.
- Файл описания моделей scene/meshes.lst.json
- Поэтажка, подписи у моделей. См. scene/meshes.lst.json
- PRS Редактирование моделей с помощью gizmo.
28.12.2020
- Поддержка WEBGPU. Это новое API которое придет на смену WebGL. Пока доступно в ночных сборках браузеров. Ускоряет рендеринг.
- Загрузка слоев домов в формате GeoJSON. Файлы этого формата можно импортировать из любого формата GDAL-утилитой ogr2ogr.exe
- Проекция только lonlat.
- В полях условие, высота можно написать выражение с именем поля geojson файла или просто число. Например : :ETAG*3+1 или :KOD_RAYON>=4.
- Чтобы встроить леталку, нужно
- Задать в html файле элемент <canvas id="gscreen"> </canvas>
- В css файле: #gscreen { width: 100%; height: 100%; touch-action: none; }
- Вызвать nav3d()
20.12.2020
- Для полноценной отладки мне нужно защищенное соединение с SSL. Пока не работают функция геолокации и камера дополненной реальности на телефоне.
- На мобильных устройствах протестировано на Android в браузерах Chrome/Yandex/Opera/Firefox/Edge. На Firefox пока не работает многопальцевый тачскрин. На остальных работает нормально.
- Навигация по сцене на ПК: Правая, левая клавиши, колесико мыши, стрелки на клавиатуре. Иконки навигации.
- Навигация по сцене на мобильных устройствах и ПК c тачскрином: Приближение, удаление, вращение двумя пальцами, перемещение - одним пальцем.
- Многоуровневая отрисовка тайлов b.tile.openstreetmap.org / basemap.geo4.me / core-sat.maps.yandex.net.
- Отрисовка слоя домов. Т.к. ресурсы ограничены, видимость домиков я ограничил 5 км.
Придется делать более мелкие слои домов, например по районам города..
Для примера создал слой пятиэтажек на Казань. - Отрисовка и настройка 3D моделей. Для показа возможностей по кнопке Set Mesh можно установить модель в сцену.
В меню сверху, можно выбрать одну из трех моделей (аналог поэтажки), и включить режим редактирования положения модели.