12 - 2016

C3D VISION. Визуализатор для САПР

Аркадий Камнев

Здравствуйте! Меня зовут Аркадий Камнев, я работаю в компании C3D Labs и хочу рассказать о новом модуле, который сделает жизнь большого числа программистов лучше. Интересуют подробности? Тогда давайте я объясню, зачем этот модуль нужен.

Аркадий Камнев

Если компания ведет разработку инженерного софта с использованием 2D­ и 3D­ге­ометрии, параметризации данных и различных конвертеров для чтения и записи моделей в форматы CAD­систем, то для осуществления непосредственной функции взаимодействия с пользователем, скорее всего, потребуется специальный компонент — модуль визуализации. Это такая программная библиотека, которую динамически можно подключить к любому проекту в MS Visual Studio на языке C++ и применять в нужных целях, например для вывода на экран красивых 3D­моделей, причем делать это быстро и качественно!

C3D VISION. Визуализатор для САПР

Здесь есть один очень важный момент: все, кто занимался рендерингом при разработке САПР и пробовал использовать сторонние визуализаторы для этих целей, так или иначе сталкивались с проблемами сочетаемости универсальных движков для визуализации и разрабатываемых приложений. Объясняется это тем, что большинство визуализаторов, представленных на рынке программного обеспечения, создавалось для игровой и анимационной индустрии. На деле оказывается, что для CAD­, CAM­ и CAE­систем такое ПО не совсем подходит. Именно поэтому мы решили создать специализированный визуализатор C3D Vision. Его главное преимущество состоит в том, что разработчики САПР делают вспомогательное решение для таких же разработчиков САПР. Мы отлично понимаем потребности отрасли и не понаслышке знакомы с особенностями данного сегмента, ведь мы являемся частью софтверной группы АСКОН, которая разрабатывает популярную CAD­систему КОМПАС­3D.

C3D VISION. Визуализатор для САПР

Вообще говоря, если разработчику нужно добавить в приложение визуализацию, то в таком случае имеется несколько вариантов развития событий. Первый — проводится анализ доступных на рынке программного обеспечения опенсорсных решений для визуализации двухмерных и трехмерных геометрических данных и выбирается наиболее подходящее из них. Очевидное преимущество данного выбора — цена покупки, которая в идеальном случае равна нулю. На практике же часто получаем дополнительную плату за доработки, технические консультации и поддержку. Если изначальные бюджеты организации этого не позволяют, то возрастают риски включения в основу ПО неподходящего решения.

Второй вариант — это создание собственного визуализатора. Он хорош тем, что разработчики будут знать программный код, отвечающий за рендеринг, как свои пять пальцев, но компания потеряет десятки и сотни часов труда специалистов, которым, кстати, нужно ежемесячно платить зарплату (в том числе и за поддержку разработанного непрофильного функционала САПР). Есть и более весомый аргумент в пользу того, чтобы отказаться от данного варианта — это смещение фокуса разработки от основного ноу­хау программы, несущего главную ценность для пользователя, в сторону интерфейсной части САПР. Несомненно, GUI — это очень важный компонент любой современной PLM­системы, но его создание легко ускорить за счет использования унифицированных методов и процедур, широко представленных платными пакетами.

И вот мы плавно подошли к третьему варианту — использованию коммерческих движков для визуализации данных, в частности модуля C3D Vision, входящего в состав набора C3D Toolkit для разработчиков инженерного программного обеспечения. Конечно, может ошибочно показаться, что визуализация является новой функциональностью геометрического ядра C3D Modeler. Но это не так. С одной стороны, четвертый компонент действительно замкнул линейку инструментальных средств от C3D Labs для разработки инженерного софта. А с другой — C3D Vision представляет собой самостоятельный программный модуль, который можно лицензировать и использовать независимо от остальных компонентов ядра C3D.

Свойства C3D Vision

При отрисовке трехмерной сцены модуль визуализации C3D Vision оперирует полигональными моделями, при этом сцена представляется в виде дерева графов и делится на сегменты. Каждый узел графа имеет свои характеристики:

  • абсолютную и относительную матрицы — используются при разработке механизмов наследования родительских характеристик дочерними элементами сцены. Позволяют сегментировать сцену в произвольном порядке, формировать связи между элементами сцены в заданном контуре и централизованно управлять группами элементов, объединенными по какому­либо признаку;
  • ссылочное представление на геометрию — используется для экономии вычислительных ресурсов при отрисовке сцены с большим количеством повторяющихся элементов. Позволяет загрузить в оперативную или видеопамять отображение элемента, прописать для него ссылку и далее ссылаться на это представление каждый раз при появлении аналогичного элемента в трехмерной сцене;
  • массив представлений геометрии — применяется для ускорения отрисовки элементов сцены с динамически изменяющейся геометрией. Позволяет задавать различные представления геометрии для одних и тех же элементов трехмерной сцены и настраивать механизмы их отрисовки в зависимости от выбранного пользователем режима работы приложения, стиля отображения 3D­модели, а также при селектировании элементов, подсвечивании активных элементов из дерева построения и т.д.

Основываясь на этих базовых принципах, C3D Vision предоставляет разработчикам САПР инструменты для отрисовки статичной графики с заранее заданной точностью тесселяции — параметром, который определяет, насколько качественно будут построены полигоны, составляющие основу визуального представления 3D­модели. Плюс к этому модуль визуализации C3D позволяет рассчитывать сразу несколько триангуляционных сеток для разных уровней детализации сцены LOD и плавно переключаться между ними по мере удаления предметов от камеры.

C3D VISION. Визуализатор для САПР

C3D VISION. Визуализатор для САПР

C3D VISION. Визуализатор для САПР

В состав библиотеки C3D Vision включен целый набор специализированных функций для управления ориентацией сцены и настройки отображения геометрической модели: каркас, только видимые ребра, тонированная модель с ребрами и без. Для всех перечисленных режимов доступна функция перспективного отображения сцены, которая в активном состоянии также позволяет перемещаться внутри 3D­модели. Дополнительно можно задавать различные свойства объектам модели, такие как видимость, прозрачность, цвет, текстуры, материал и т.д.

C3D VISION. Визуализатор для САПР

C3D VISION. Визуализатор для САПР

Используя функционал C3D Vision, можно работать с текстами и настраивать OpenGL, например включать шейдеры, вертикальную синхронизацию или акселерацию графических расчетов за счет использования возможностей видеокарты.

Для разработчиков САПР, пользователи которых не готовы (или не приучены) работать с медленными приложениями, в модуле визуализации присутствует тонкая настройка динамической сцены. Во время панорамирования и вращения C3D Vision может скрывать ребра геометрических моделей, осуществлять сглаживание полигонов, и даже исключать из расчетов незначительные элементы визуальной сцены, а также объекты, находящиеся за пределами сцены.

C3D VISION. Визуализатор для САПР

C3D VISION. Визуализатор для САПР

Модуль визуализации C3D — это удобный инструмент, который позволяет разрабатывать программное обеспечение для работы со сложными визуальными сценами. Использовать C3D Vision просто, визуальные сцены с ним получаются яркими и красивыми, а приложения на его основе работают быстро, обеспечивая таким образом необходимый уровень комфорта пользователям при работе с большими геометрическими моделями в разрабатываемых САПР.

Более подробно ознакомиться с устройством нового технологического продукта от C3D Labs можно, прочитав статью Эдуарда Максименко, которая опубликована в этом же номере журнала «САПР и графика».

Популярные статьи

Будущее CAM-систем

Статья знакомит с современным состоянием функционала CAM-систем, делает своеобразный экскурс в прошлое программного обеспечения для станков с ЧПУ, дает прогноз развития технологий, рынка и возможностей CAM-систем к 2020 году

Новая линейка профессиональной графики NVIDIA Quadro — в центре визуальных вычислений

Компания NVIDIA обновила линейку своих профессиональных графических карт Quadro. Новая архитектура Maxwell и увеличенный объем памяти позволяют продуктивно работать с более сложными моделями в самых высоких разрешениях. Производительность приложений и скорость обработки данных стали вдвое выше по сравнению с предыдущими решениями Quadro

OrCAD Capture. Методы создания библиотек и символов электронных компонентов

В этой статье описаны различные приемы и способы создания компонентов в OrCAD Capture, которые помогут как опытному, так и начинающему пользователю значительно сократить время на разработку библиотек компонентов и повысить их качество