Сегодня все, кто занимается рендерингом при разработке САПР и пробует использовать сторонние визуализаторы, так или иначе сталкиваются с проблемами сочетаемости универсальных движков для визуализации и разрабатываемых приложений. Объясняется это тем, что большинство визуализаторов, представленных на рынке программного обеспечения, изначально создавались для игровой и анимационной индустрий. На деле оказывается, что для CAD-, CAM- и CAE-систем такое ПО не совсем подходит. Именно поэтому в C3D Labs было принято решение о создании специализированного визуализатора C3D Vision.
Его главное преимущество состоит в том, что разработчики САПР делают вспомогательное решение для таких же разработчиков САПР.
Мы отлично понимаем потребности отрасли и не понаслышке знакомы с особенностями данного сегмента, ведь компания C3D Labs является частью софтверной группы АСКОН, которая разрабатывает популярную CAD-систему КОМПАС-3D.
Вообще говоря, если перед разработчиком ставится задача добавить в приложение визуализацию, то он может остановиться на одном из нескольких вариантов развития событий. Первое, что можно сделать — это провести анализ доступных на рынке программного обеспечения опенсорсных решений для визуализации двухмерных и трехмерных геометрических данных и выбрать наиболее подходящее из них. Очевидное преимущество здесь — цена покупки, которая в идеальном случае равна нулю. На практике же часто получаем дополнительную плату за доработки, технические консультации и поддержку. Если изначальные бюджеты организации этого не позволяют, то возрастают риски включения в основу ПО неподходящего решения.
Второй вариант — это создание собственного визуализатора. Он хорош тем, что разработчики будут знать программный код, отвечающий за рендеринг, как свои пять пальцев, но компания потеряет десятки и сотни часов труда специалистов, которым, кстати, нужно ежемесячно платить зарплату (в том числе и за поддержку разработанного непрофильного функционала САПР). Есть и более весомый аргумент в пользу того, чтобы отказаться от данного варианта — это смещение фокуса разработки от основного ноу-хау программы, несущего главную ценность для пользователя, в сторону интерфейсной части САПР. Несомненно, это очень важная составляющая любой современной PLM-системы, но её создание легко ускорить за счет использования унифицированных методов и процедур, широко представленных платными пакетами.
И вот мы плавно подошли к третьему варианту — использованию коммерческих движков для визуализации данных, в частности модуля C3D Vision, входящего в состав набора C3D Toolkit для разработчиков инженерного программного обеспечения. Конечно, может ошибочно показаться, что визуализация является новой функциональностью геометрического ядра C3D Modeler. Но это не так. С одной стороны, четвертый компонент действительно замкнул линейку инструментальных средств от C3D Labs для разработки инженерного софта. А с другой — C3D Vision представляет собой самостоятельный программный модуль, который можно лицензировать и использовать независимо от остальных компонентов ядра C3D.
Свойства C3D Vision
При отрисовке трехмерной сцены модуль визуализации C3D Vision оперирует полигональными моделями, при этом сцена представляется в виде дерева графов и делится на сегменты. Каждый узел графа имеет свои характеристики:
- Абсолютную и относительную матрицы — используются при разработке механизмов наследования родительских характеристик дочерними элементами сцены.
- Позволяют сегментировать сцену в произвольном порядке, формировать связи между элементами сцены в заданном контуре и централизованно управлять группами элементов, объединенными по какому-либо признаку.
- Ссылочное представление на геометрию — используется для экономии вычислительных ресурсов при отрисовке сцены с большим количеством повторяющихся элементов.
- Позволяет загрузить в оперативную или видеопамять отображение элемента, прописать для него ссылку и далее ссылаться на это представление каждый раз при появлении аналогичного элемента в трехмерной сцене.
- Массив представлений геометрии — применяется для ускорения отрисовки элементов сцены с динамически изменяющейся геометрией.
- Позволяет задавать различные представления геометрии для одних и тех же элементов трехмерной сцены и настраивать механизмы их отрисовки в зависимости от выбранного пользователем режима работы приложения, стиля отображения 3D-модели, а также при селектировании элементов, подсвечивании активных элементов из дерева построения и т.д.
Основываясь на этих базовых принципах, C3D Vision предоставляет разработчикам САПР инструменты для отрисовки статичной графики с заранее заданной точностью тесселяции — параметром, который определяет, насколько качественно будут построены полигоны, составляющие основу визуального представления 3D-модели. Плюс к этому модуль визуализации C3D позволяет рассчитывать сразу несколько триангуляционных сеток для разных уровней детализации сцены LOD и плавно переключаться между ними по мере удаления предметов от камеры.
В состав библиотеки C3D Vision включен целый набор специализированных функций для управления ориентацией сцены и настройки отображения геометрической модели: каркас, только видимые ребра, тонированная модель с ребрами и без. Для всех перечисленных режимов доступна функция перспективного отображения сцены, которая в активном состоянии также позволяет перемещаться внутри 3D-модели. Дополнительно можно задавать различные свойства объектам модели, такие как видимость, прозрачность, цвет, текстуры, материал и т.д.
Используя функционал C3D Vision, можно работать с текстами и настраивать OpenGL, например включать шейдеры, вертикальную синхронизацию или акселерацию графических расчетов за счет использования возможностей видеокарты.
Для разработчиков САПР, в которых скорость взаимодействия с пользователем имеет критичное значение, в модуле визуализации присутствует тонкая настройка динамической сцены. Во время панорамирования и вращения C3D Vision может скрывать ребра геометрических моделей, осуществлять сглаживание полигонов, и даже исключать из расчетов незначительные элементы визуальной сцены или объекты, находящиеся за пределами сцены.
Модуль визуализации C3D — это удобный инструмент, который позволяет разрабатывать программное обеспечение для работы со сложными визуальными сценами. Использовать C3D Vision просто, визуальные сцены с ним получаются яркими и красивыми, а приложения на его основе работают быстро, обеспечивая таким образом необходимый уровень комфорта пользователям при работе с большими геометрическими моделями в разрабатываемых САПР.
Автор: Аркадий Камнев
Источник: http://isicad.ru/