Более 60% всех продуктов, которые продаются такими компаниями asDuPont, BASF или ICI для клиентов являются аморфными, кристаллическими или полимерно твердыми. В целях оптимизации производственных процессов, минимизации энергопотребления и разработки эффективных стратегий управления выполняется численное моделирование процессов, происходящих в среде этих материалов. Моделирование процессов может быть сделано в различное время и различных пространственных масштабах. Одновременно с эмпирическими или полуэмпирических моделями, которые используются на макроуровне, могут эффективно применяться и модели на микроуровне.
В отличие от эмпирических моделей, моделирование на микроуровне позволяют рассматривать свойства материала и геометрию аппарата. В последние два десятилетия использование метода дискретных элементов (DEM) на микроуровне находится в состоянии искусства. В DEM каждая частица рассматривается как отдельный независимый элемент. Для получения нужных результатов моделирования число моделируемых дискретных элементов в системе должно быть достаточно большим, и во многих случаях это может быть больше, чем миллионы частиц.
Визуализация результатов DEM моделирования играет важную роль в изучении поведения твердых процессов. Тем не менее, визуализация миллионов движущихся частиц является вычислительно сложной задачей, которая требует много времени для рендеринга непрерывной картинки (более 30 кадров в секунду). Упрощенная реализация подсистемы визуализации приводит к большой загруженности системы и неспособности выводить данные в реальном времени. Таким образом, были разработаны и внедрены дополнительные алгоритмы визуализации в новом инструменте моделирования.
Визуализация дискретных элементовГранулированный материал, который моделируется при помощи DEM, может быть эффективно представлен в виде набора сферических объектов. Эти сферы как-то распределены в трехмерном пространстве, имеют различные диаметры и изменить свое положение с течением времени. Самый распространенный способ визуализировать такие системы является использование в графической библиотеки OpenGL, где частицы представлены в виде в полигональных сфер. Тем не менее, этот режим визуализации имеет относительно малый коэффициент масштабируемости. Увеличение числа частиц приводит к уменьшению четкости визуализации. Таким образом, получается проблематично использовать этот режим для DEM моделирования. Для того, чтобы найти корень проблемы и использовать альтернативный визуализацию, должны быть проанализированы иные подходы формирования изображения.
Видеокарта генерирует изображения с помощью конвейерного последовательности операций, как это показано на рисунке 1. Фактором ограничения является его медленный этап. Таким образом, первый шаг в оптимизации графических приложений заключается в выявлении самого медленного этапа прорисовки.
В настоящее время широко распространено программное средство для идентификации узких мест графического конвейера это программа gDEBugger . Это позволяет отключать различные этапы графического конвейера OpenGL и наблюдать изменения в производительности. Эта методология требует использования некоторых счетчиков производительности, которые позволяют измерить общую производительность. Графические процессоры вместе с счетчиками кадров/сек, как правило, лучшие показатели для этой цели.
Из анализа производительности был сделан вывод, что узким местом полигональных сферах находится в стадии затенения вершин. Каждый многоугольную область представлена в виде множества вершин, которые впоследствии должны быть визуализированы. Таким образом, количество оказываемых примитивов в большинстве случаев увеличивается на два порядка. Лучший способ оптимизировать этот этап графического конвейера является представление сфер, как “точечных спрайтов”. Основная идея этой оптимизации является отображение сферу из одной вершины с помощью специальных вершинные и фрагментов шейдеров. Такой подход уменьшает общее количество вершин в десятки раз, увеличивается частоту кадров и может привести к генерации более реалистичного изображения. На рисунке сравниваются различные режимы визуализации.
Тесты производительностиРезультаты тестов производительности для полигональных и точечных режимов спрайтов сравниваются на рисунке 3. Полигональные сферы были прорисованы с помощью функции gluSpherewith (134 вершины на сферу). Тестирование проводились на видеокарте Intel GMA X4500.
Как можно видеть на рисунке 3, производительность режиме спрайтов значительно выше, чем при рисовании сферы стандартным алгоритмом. На графической карты GMA X4500 режим спрайт позволяет визуализировать до 100000 сфер в реальном времени (более 30 кадров в секунду).
Выбор отдельной частицыДля многих исследовательских целей важно контролировать положение отдельной частицы. Для этого был реализован режим выбора частиц. В этом режиме частица или частицы могут быть указаны с помощью мыши. После этого информация о выбранных частицах выводится в дополнительном поле.
Основной проблемой режима выбора является определение частицы по заданным координатам мыши (проверка попадания). Для этого при обработке нажатия мыши используется уравнение прямой, проходящей через экран в трехмерном пространстве моделирования. Эта прямая ограничена ближней и дальней плоскостью отсечения (точки N ANDF), как это показано на рисунке 4.
Координаты точек N и F рассчитываются следующим образом:
где Xobj, Yobj, Zobj - координаты точки; U – неиспользуемая переменная, включена для представления системы в матричном виде; Р – матрица проекции OpenGL, который определяет параметры обзора; MVM - OpenGL матрица модели, она указывает положение камеры; Xwin, Ywin являются двумерные координаты MouseCursor; Wview, Hview – ширина и высота окна просмотра; Zview является параметром который должен равняться -1 или 1, чтобы получить соответственно координаты N и F. ЗаключениеПредставленное в этой работе программное обеспечение способно выполнять высококачественную визуализацию сыпучих материалов. Такие материалы могут быть представлены в виде частиц, состоящий из большого количества более мелких частиц. Таким образом, одним из наиболее важных требований к новым инструментом является оптимальное использование графических карт. В целях повышения эксплуатационных характеристик нового пакета программного обеспечения, была предложена и реализован расширенный подход рендеринга. Этот подход основан на режиме рендеринга точек спрайта. Проведенные нагрузочные тесты подтвердили эффективность новой программы.