Разработка виртуального музея минералогии на платформе Unity

 

Посещение виртуальных музеев за последние два года увеличилось в связи с эпидемиологической обстановкой. Поэтому особо остро стал вопрос о создании виртуального музея на базе Минералогического музея Института наук о Земле ЮФУ (http://geo.sfedu.ru/?page_id=191). Так как экспонатами музея являются минералы, размеры которых варьируются от 1-2 сантиметров в диаметре, до 1,5 метров, необходимо было найти способ перенесения реальных образцов в виртуальные. Для этого был использован 3D-сканера 3D Systems Sense 2.

Конечно, сделать доступным трехмерное изображение каждого из 4 тысяч имеющихся экспонатов нереально, поэтому для детального рассмотрения были выбраны 100 образцов минералов из каждого класса и не более одного из каждой минеральной разновидности. При виртуальном туре по музею посетитель может подойти к витринам с минералами выбранного класса и, «взяв в руку», рассмотреть экспонат со всех сторон, приблизить с максимальным увеличением, узнать название минерала, химическую формулу, диагностические свойства, привязку (место, где образец был отобран).

Для создания виртуального музея используется среда Unity-3d (unity.com). Входящие в нее средства существенно упрощают разработку приложений, связанных с трехмерной графикой. Пост обработка полученных 3D моделей происходила с помощью встроенных функций редактора 3D Systems Sense, программ 3Ds Max и Blender.

На данном этапе разработки проекта выполнено сканирование части образцов и создан прототип виртуального музея. Сканирование образцов проводилось с использованием 3D-сканера 3D Systems Sense 2.

Основными характеристиками сканера 3D Systems Sense 2 являются:              

       Рабочее расстояние, то есть дистанция сканирования от 20 до 160 см. Следует учитывать, что темные и блестящие объекты эффективнее сканировать с минимального расстояния.

       Точность на расстоянии в 50 см составляет 1 мм. Чем больше объект, тем выше погрешность.

       Сканер захватывает текстуру в FullHD.

У сканера есть недостатки.

       Главный из них — специфические требования к освещению объекта. 3D-сканер не оснащен собственной системой подсветки и весьма чутко реагирует на колебания освещения. Соответственно, на цветных сканах отчетливо видны яркие области, куда падает свет из окна или от осветительного прибора.

       Второй негативный момент: если объект лежит на столе, дно объекта и столешница сливаются с мягким переходом. Отделить столешницу от объекта может быть сложно.

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

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

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

Следующей задачей стало изучение способов хранения данных, используемых при разработке на платформе Unity. Вот некоторые из различных способов и методов сохранения данных для проектов Unity:

·       Независимый от платформы: Одним из способов сохранения данных в Unity3D независимым от платформы способом является использование класса PlayerPrefs. PlayerPrefs — это статический класс, и он очень прост в использовании, но не надежен.

· Persistence - сохранение и загрузка данных с помощью DontDestroyOnLoad, PlayerPrefs.

· Серверная сторона: Вы также можете использовать сервер для сохранения данных (например, комбинацию баз данных PHP и MySQL).

·       SQLite (встроенная база данных для вашего приложения).

·   Объект сценария: это контейнер данных. Полезно для неизменных данных. Подходит для больших объемов данных.

Самыми подходящими способами были выбраны создание базы данных на SQLite и хранение данных в JSON-файлах. У каждого подхода есть свои плюсы и минусы.

JSON: это текстовый файл, так что работать с ним просто.

·       можно легко изменить данные из любого текстового редактора;

·  не требуется писать дополнительный код для соединения с БД и запросам к ней;

·       легко можно передать файл другому человеку, а тот без труда начнёт с ним работать.

SQLite: это одно из полноценных СУБД, которые появились, когда людям стало не хватать текстовых файликов.

·       данные структурированы;

·       быстрый доступ к данным, даже если их очень много;

·     дополнить и изменить данные можно во много раз быстрее (не надо считывать и записывать каждый раз весь файл, только пару байтов);

·       встроенные проверки на типы данных.

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


 

Рисунок – минерал Друза Марказит

 

 

Рисунок – пост обработанная 3d модель минерала