В августе 2015 года Роман опубликовал на портале isicad.ru обзорную статью «Ядерные технологии в CAD». В январе текущего года Роман представил свой проект «Создание облачного сервиса для 3D проектирования и дизайна помещений на базе ядра C3D и WebGL»: развитие этого проекта отражено в публикуемой сегодня статье.
С удовольствием повторю слова из моего предисловия к предыдущей статье Р. Колесникова: автор демонстрирует ценную склонность и способность к солидному обоснованию своих решений, что придаёт его статьям дополнительно полезный обзорно-справочный характер.
Рис. 1.
Идея проекта родилась во время разработки программы БАЗИС-Мебельщик. Развитие функциональности эластичных параметрических моделей привело к мысли о создании проекта, в котором будет возможно с помощью таких моделей создавать как саму конструкцию помещения, так и элементы мебели внутри неё. Одновременно с этим происходил бурный рост технологий Web-разработки, которые сделали возможным разрабатывать и поддерживать сложные САПР, работающие в браузере. Большое влияние оказали также пользователи системы БАЗИС, постоянно выражающие желание использовать создаваемые в ней модели в интернет-магазинах. Эти факторы привели к созданию платформы, предназначенной для визуализации моделей и моделирования помещений на основе элементов, которая будет работать в браузере без установки.
Как видно из названия, WebPlanner – это облачный сервис, поэтому для работы в нем как в качестве пользователя, так и в качестве администратора нет нужды что-либо скачивать и устанавливать на своем компьютере. Достаточно веб-браузера для выхода в Интернет, и все возможности программы будут находиться «на кончиках ваших пальцев». Вы можете это сделать из любой операционной системы, будь то Windows, Mac или Linux, и с любого устройства – компьютера или планшета. К тому же программа не просто работает через Интернет, она также взаимодействует через всемирную сеть. Вы можете редактировать проект, все изменения в котором будут в реальном времени видны заказчику, находящемуся в другом городе, и при этом он также сможет принимать участие в корректировании проекта. Вы можете создать проект на рабочем компьютере, а продолжить редактирование на ноутбуке без необходимости копирования файлов на флешку. При этом вы будете всегда уверены, что работаете с самой последней версией документа. Все изменения мгновенно сохраняются на сервере, и даже аварийное отключение вашего компьютера не приведет к потере данных. Web-сервис легко интегрируется с другими интернет-сервисами, поэтому вы сможете поделиться ссылкой на удачный ракурс модели с друзьями и коллегами или рассчитать смету ремонта на основе актуальных цен.
Планировщик помещений
Одной из важнейших частей программы является планировщик помещений, который позволяет моделировать как простые комнаты, так и сложные многокомнатные и многоэтажные помещения. Планировщик использует инструменты динамического отображения размеров, благодаря которым вы можете выделить любой элемент конструкции (комнаты, стены, двери, окна, элементы интерьера), увидеть все связанные с ним размеры и редактировать их в интерактивном режиме (рис. 2, 3).Рис. 2
Рис. 3
В созданном помещении вы можете размещать элементы интерьера и точно позиционировать их по размерам. При этом автоматически осуществляется анализ пересечений объектов, предотвращающий наложение объектов друг на друга. Планировщик умеет изменять размеры изделий, зеркально отображать их и выбирать разные варианты исполнения. Важно отметить, что все функции планировщика единообразно работают как на 2D проекциях, так и на произвольных ракурсах камеры, обеспечивая комфортную работу пользователя. Программа также поддерживает полноэкранный режим работы, в котором область редактирования разворачивается на весь экран и позволяет лучше сконцентрироваться на процессе проектирования.
Визуализация
Для качественной визуализации проектов в браузере используется технология WebGL, на основе которой разработана собственная платформа визуализации, которая реализует реалистичное освещение и затенение объектов, симуляцию свечения источников света и рассеянного освещения, отображение микрорельефа поверхностей (рис. 4, 5). В WebPlanner реализованы сложные эффекты, применяемые в современных играх, такие как зеркальные отражения на поверхностях и плавные тени от осветительных приборов, которые работают в реальном времени и не требуют дополнительного времени для получения реалистичной картинки – вы всегда видите модель в наилучшем качестве.Рис. 4
Рис. 5
В процессе работы вы можете выбирать различные варианты визуализации, например, «в цвете» или «чертеж». Помимо этого, вы можете использовать несколько вариантов навигации по помещению, таких как «обзор», «прогулка» и «план». Для управления освещением в сцене любой объект можно сделать светящимся и настроить его яркость и цвет (рис. 6, 7).
Рис. 6
Рис. 7
Система визуализации хорошо оптимизирована и позволяет интерактивно передвигаться по сложным помещениям с большим количеством элементов интерьера. Она «умеет» автоматически отключать сложные эффекты во время быстрого вращения сцены, если производительности вашего компьютера недостаточно для отрисовки сложной сцены. Пользователи последних версий браузеров могут увидеть более качественные визуальные эффекты, благодаря поддержке последней версии технологии WebGL 2.0.
Каталоги моделей
Для того чтобы использовать пользовательские модели, например, расставлять мебель, изготавливаемую определенной мебельной фирмой, нужно создать каталог моделей. Для создания собственных каталогов моделей в программу встроен менеджер каталогов (рис. 8, 9, 10). Он позволяет импортировать модели из множества программ моделирования. В настоящее время поддерживаются такие популярные форматы обмена файлов, как 3DS, OBJ, DAE, STL, STEP, IGES, VRML.Рис. 8
Рис. 9
Рис. 10
Наибольшее внимание было уделено поддержке собственных форматов системы БАЗИС – самой известной системы для проектирования мебели и комплексной автоматизации всего мебельного производства. WebPlanner имеет возможность импорта моделей и фрагментов, созданных в модулях БАЗИС-Мебельщик и БАЗИС-Шкаф. В связке с модулем «Менеджер Прайс-Листов» реализована синхронизация каталога моделей с прайс-листом. При этом автоматически передаются все группы, модели и параметры материалов, а также выгружаются используемые текстуры. В модуле БАЗИС-Мебельщик реализованы API-интерфейсы в подсистеме скриптов. Это позволяет пользователям более гибко настраивать экспортирование моделей, используя язык сценариев JavaScript.
Помимо формата файлов системы БАЗИС поддерживаются форматы систем Компас 3D, самой популярной отечественной MCAD, и бесплатного профессионального пакета для 3D моделирования Blender. В загруженных моделях можно настраивать все параметры материалов и способ установки в помещение, к примеру, установить внутрь стен для окон и дверей, или установить на стены – для розеток и выключателей. В моделях может быть назначена произвольная анимация (в том числе иерархическая) и расставлены источники света.
Интересными особенностями являются возможности задания параметрического изменения размера изделий и их симметрии. Это позволяет размещать одну модель для нескольких вариантов ширины/высоты и левого/правого исполнения изделия. Если модель имеет несколько вариантов исполнения в цветовой и ценовой гамме, ей можно назначить набор свойств, каждое из которых определяет несколько вариантов материалов и коэффициенты коррекции стоимости изделия. Таким образом, при установке подобной модели пользователю будут доступны несколько вариантов исполнения, при изменении которых будут меняться необходимые материалы и размеры. По завершении работы все параметры и рассчитанная цена отобразятся в спецификации.