Разработанные 3D и графические приложения

Разработка программы для виртуальной анатомии человека

Реализация проекта: 2010-2012.
Технологии: C++, OpenGL, C#, WPF 3.5, COM, TAO Framework, GLSL.
Заказчик: QuintSysteme GmbH (Austria).

Описание проекта
 

Целью проекта являлось создание специальной программы позволяющей визуализировать: внутренние органы и ткани человека; лимфатическую, кровеносную и нервную системы; другие анатомические модели.

Разработанная программа посредством COM-технологии соединялась с программой, управляющей медицинским оборудованием, и отображала текущее состояние пациента и статус работы медицинского оборудования заказчика. Например, был разработан специальный режим анимации, в ходе которого моделировались действия измерительного оборудования, отображалось в динамике электромагнитное поле, моделировались движущиеся элементы оборудования и т.д.

Для визуализации диагностики органов с помощью средств шейдерной графики выполнялась подсветка, мерцание, изменение геометрий и текстур.


 

Разработка программного модуля для создания одежды с использованием выкроек

Реализация проекта: 2010-2011.
Теги: QCAD, pattern designer, Delaney triangulation, tailor, Hord3D, выкройки, лекала, моделирование построения одежды, моделирование создания одежды, визуализация манекенов, виртуальная примерочная, сшиватель одежды, триангуляция Делоне, создание виртуальной юбки, создание виртуальных штанов, создание виртуального свитера, создание виртуальной майки.
Технологии: C#, .Net, Marshaling, С++, QCAD, Delaney triangulation, Hord3D, DXF file format.
Заказчик: Quakeup Media Production, Inc. (Canada).

Описание проекта

Целью проекта являлось построения трехмерной модели одежды для человека, расположенной вокруг манекена, с использованием выкроек (лекал).
В ходе выполнения проекта, решались следующие задачи:
1) загрузка в программу выкроек, сохраненных в DXF формате;
2) дискретизация выкроек с использованием алгоритмов триангуляции Делоне;
3) «сшивание» выкроек в местах, обозначенных швами;
4) расположение сшитых выкроек вокруг манекена.
Таким образом, был создан инструмент, позволяющий выполнить виртуальный пошив одежды с учетом индивидуальных особенностей и размеров человека.


 

 

Разработка модуля учета коллизий между одеждой и манекеном при виртуальной примерке одежды

Реализация проекта: 2011.
Теги: collision detection CUDA, обработка коллизий на видеокарте, обработка коллизий CUDA, алгоритм учета коллизий, примерка одежды, виртуальная примерочная, примерка одежды в режиме реального времени, столкновение манекена с одеждой.
Технологии: С++, С, CUDA, QCAD.
Заказчик: Quakeup Media Production, Inc. (Канада).

Описание проекта

Целью проекта являлось создание модуля обрабатывающего взаимодействие между манекеном (человеком) и сшитой моделью одежды, т.е. решающего задачу учета коллизии между соответствующими мешами. Это необходимо для того, чтобы примеряемая одежда на подвижном или неподвижном манекене не проваливалась внутрь, входе растяжений или сжатий материала при примерке одежды (например, во время движения ног или рук; на плечах под действием сил тяжести и т.д.).
При этом главной задачей ставилась оптимизация разработанного алгоритма для максимально-возможного его ускорения. Эта задача была успешно выполнена с применением CUDA технологии и реализации алгоритма для обработки на видеокарте.
Таким образом, в результате внедрения разработанного модуля появилась возможность выполнять качественную примерку одежды в режиме реального времени.


 

Ускорение обрабатываемых изображений в программном комплексе

Реализация проекта: 2010-2011.
Теги: Ray-tracing, трассировка лучей, BVH, CUDA, Spectral Studio, создание фотореалистичных изображений, обработка изображений, эффекты для изображений, программы для обработки изображений, WPF c#, GPU, C++.
Технологии: C#, С++, CUDA API (SDK).
Заказчик: Spectral Pixel (Belgium).

Описание проекта

Целью проекта являлось ускорение получения формируемых изображений в программном комплексе Spectral Studio ©. Программный комплекс предназначен для создания фотореалистичных изображений объектов, на базе их трехмерных моделей.
Для этого была разработана GPU-версия модуля «Aurora Renderer», включающего новую CUDA реализацию трассировщика лучей (Ray-tracer). В рамках оптимизации и ускорения его работы была создана и внедрена специальная BVH (Bounding Volume Hierarchy) структура.
Таким образом, после всех этапов оптимизации модуля «Aurora Renderer» было достигнуто в среднем 10 кратное ускорение при создании изображений на видеокартах.


 

Визуализация работы DNS-сети

Реализация проекта: 2010-2011.
Теги: визуализация онлайн данных, трехмерная визуализация в интернете, визуализация интернет трафика, визуализация распределенных данных, Processing Java.
Технологии: Processing 1.2, Java SE, OpenGL (JOGL), GLSL.
Заказчик: Dyn, Inc. (USA).

Описание проекта

Цель проекта — визуализация в реальном времени динамически изменяемой информации, расположенной на серверах компании DYN. Обрабатываемые данные – информация о загруженности сети, числе запросов пользователей, местоположении и направлении адресов запросов, загруженности отдельных серверов, информации по трафику и т.п. Форма визуализации данных должна была быть в трехмерном и в двухмерном виде.
В трехмерном виде вывод информации осуществлялся в виде эффектов на глобусе земли: динамически распространяемые лучи, эффекты затенения и мерцания, установка флажков компании, изменение текстур, создание цветовых градиентов и переливов от серверов и т.д. Были реализованы все возможности по управлению сцены — повороты, масштабирование, горячие клавиши управляющие видимостью отображаемых данных и т.д.
В дополнение, всю информацию необходимо было выводить в виде динамически-обновляемых графиков и таблиц.


 

Разработка технического задания на программу для визуализации движения электронной почты на серверах компании DYN

Реализация проекта: 2013.
Теги: визуализация распределенных данных, трехмерная визуализация в интернете, визуализация графа, движение электронной почты, разработка технического задания, трехмерная веб визуализация.
Технологии: OpenGL, GLSL.
Заказчик: Dyn, Inc. (USA).

Описание проекта
Необходимо было создать концепт программы для отображения движения электронной почты от отправителя до конечного адресата при использовании серверов компании DYN с учетом оговоренных технических особенностей и ограничений по ресурсам и срокам разработки. Сложность поставленной задачи заключалась в следующем: 1) исходные данные представляли собой разнородную информацию, хранящуюся на различных серверах в интернете; 2) объем исходных данных был большим и при этом постоянно-обновляемым; 3) необходимо было, чтобы каждый пользователь компании, имел возможность просмотра этой информации через Web в наглядном виде, включая 3D.
В результате проведенной работы, был разработан концепт отображения данных, описаны технические требования, технологии и оценены ориентировочные сроки, необходимые для реализации этого проекта. Помимо этого были также представлены примеры реализаций и доступные OpenSource решения.


 

Разработка нового backend для специализированного набора функционала OSL

Реализация проекта: 2013-2014.
Теги: графические эффекты, низкоуровневая адаптация CPU кода для GPU, создание бэк-энда, LLVM, LLVM-IR, OpenGL, С++, GLSL, CUDA, PTX, OpenShadingLanguage(OSL), OpenImageIO, Unix.
Технологии: C++, OpenGL, GLSL, CUDA, PTX, LLVM, LLVM-IR.
Заказчик: Spectral Pixel (Belgium).

Описание проекта

Целью проекта являлось создание нового бэк-энда для специализированного набора функционала шейдерного языка OpenShadingLanguage (изначально существует только в CPU реализации, используя LLVM для оптимизации и генерации бинарного кода). Задача была значительно усложнена необходимостью получить исполняемый на GPU код, что должно было ускорить работу основного приложения.
Таким образом были исследованы и проанализированы основные подходы к решению данной задачи:
1) Прямая конвертация OSL исходных кодов в GLSL шейдерный язык;
2) Получение промежуточого GPU адаптированного LLVM-IR байткода, с последующей его линковкой на libdevice для генерации PTX;
3) Получение промежуточной LLVM-IR структуры, ее адаптация для GPU архитектуры, с последующей ручной записью в GLSL шейдеры.
В силу специфики основного приложения, был выбран третий путь реализации.
В результате был получен генератор GLSL кода для специфицированного набора функционала OSL, с сохранением промежуточной оптимизации OSL для применения на шейдерных сетях, что дало многократный прирост производительности.


 

Разработка программы-студии для обработки изображений с использованием пользовательских графических фильтров

Реализация проекта: 2011.
Теги: Шейдеры, обработка изображений, эффекты для изображений, программы для обработки изображений, GLSL, дерево эффектов, visual node network, WPF C#, фильтры для изображений.
Технологии: C#, WPF 3.5, OpenDiagram, GLSL.
Заказчик: Spectral Pixel (Belgium).

Описание проекта

Целью проекта являлось создание программы для обработки изображений с использованием графических шейдеров. В программе создавалась последовательность GLSL шейдеров, каждый из которых выполнял определенный графический эффект над изображением, например, цифровой шум или смазывание изображения. Организована такая структура шейдеров была в виде специальной сети, называемой «visual node network». Такая организация позволила: выстраивать дерево эффектов для обработки изображений; интерактивно изменять параметры каждого эффекта; визуализировать результаты применения построенного дерева эффектов и заданных для них параметров.
Результатом работы программы являлось создание GLSL-кода соответствующего построенному дереву эффектов. Получение этого кода позволяет выполнять обработку такого эффекта на видеокарте и для любого другого изображения. Это существенно сокращает время обработки и разгружает центральный процессор, при создании, например, промышленной серии эффектов для киноиндустрии.

Интерфейс пользователя был реализован с применением технологии WPF для операционной системы Windows XP.