Научная статья на тему 'Оптимизация алгоритмов компьютерного моделирования трехмерного физического пространства'

Оптимизация алгоритмов компьютерного моделирования трехмерного физического пространства Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
106
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Кальдин Дмитрий Александрович, Мурашев Денис Аркадьевич, Клинаев Юрий Васильевич, Терин Денис Владимирович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Оптимизация алгоритмов компьютерного моделирования трехмерного физического пространства»

Кальдин Д.А.,

ФГБОУ ВПО «Саратовский государственный технический университет

имени Гагарина Ю.А.», аспирант diman_ne@mail.ru

Мурашев Д.А.,

Энгельсский технологический институт (филиал) ФГБОУ ВПО «Саратовский государственный технический университет имени Гагарина

Ю.А.», к.ф.-м.н, доцент murashev@mail.ru

Клинаев Ю.В.,

Энгельсский технологический институт (филиал) ФГБОУ ВПО «Саратовский государственный технический университет имени Гагарина

Ю.А.», д.ф.-м.н, профессор klinaev@techn.sstu.ru

Терин Д.В.

Энгельсский технологический институт (филиал) ФГБОУ ВПО «Саратовский государственный технический университет имени Гагарина

Ю.А.», к.ф.-м.н, доцент terinden@mail.ru

Оптимизация алгоритмов компьютерного моделирования трехмерного физического пространства

В природе существует множество взаимосвязанных объектов, визуальное моделирование которых вместе с окружающим физическим пространством является одним из эффективных методов их изучения. Такие технологии моделирования основаны на реализации математического описания трёхмерных объектов в динамике их взаимодействия с помощью специальных программ, - так называемых «движков». Наибольшее развитие такие программы получили в игровых приложениях. Игровой движок — это центральный программный компонент интерактивных приложений с графикой, обрабатываемой в реальном времени [1]. Основной задачей движка является обеспечение полноценного функционирования моделируемого трёхмерного окружения.

Не затрагивая индустрию компьютерных игр, можно выделить следующие направления развития и применения алгоритмов виртуализации:

• моделирование физических процессов в сложных системах, близких

к окружающему пространству нашей или другой планетной системы;

• проведение экспериментов с людьми, но без их участия, например, в

медицинских целях; • тренировка навыков специализированного персонала, например, пожарных, врачей, военных и т.п., - разработка компьютерных тренажёров;

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

Основной частью движка давно принято считать визуализатор, поскольку именно то, что мы видим и формирует у нас самое глубокое впечатление. Для отображения виртуальной трёхмерной среды на экране компьютера необходимо программно реализовать определённый алгоритм и формат представления данных о трёхмерной пространстве. О проблемах моделирования пространства

Геометрическое описание окружающей среды не является сложной задачей и в наипростейших случаях математическое моделирование пространственного расположения физических объектов сводится к описанию объектов трёхмерного пространства координатами их точек с той или иной точностью. Но настолько подробное описание, при всей его полезности и информативности, не может достаточно удобно обрабатываться. Одной из причин этого являются потребные значительные вычислительные мощности для обработки, хранения и обеспечения передачи координатной и иной информации (цвет, чёткость, яркость, контрастность и т.п.), в зависимости от качества компьютерной визуализации реального объекта и технических требований к приложению моделирования.

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

Рассмотрим наиболее распространённые из них.

Двоичное разбиение пространства (Binary Space Partition, BSP). BSP-дерево — это структура данных, используемая в трехмерной графике. В BSP-дереве каждый узел связан с разбивающей прямой или плоскостью в 2-мерном или 3-мерном пространстве соответственно. При этом все объекты, лежащие с фронтальной стороны плоскости относятся к фронтальному поддереву, а все объекты, лежащие с оборотной стороны плоскости относятся к оборотному поддереву [2]. Таким образом, мы не обрабатываем всю модель мира в каждом проходе алгоритма, а лишь только видимую её часть. Недостатком данного алгоритма принято считать необходимость замкнутости моделируемого пространства. Ниже проиллюстрировано дерево для двухмерного случая пространства.

В1 А

В2 V ,

Рис. 1. Данные в ВБР-дереве Z-буферизация — в компьютерной трёхмерной графике способ учёта удалённости элемента изображения. Представляет собой один из вариантов решения «проблемы видимости». Очень эффективен и практически не имеет недостатков, если реализуется аппаратно. Основной недостаток Z-буферизации состоит в потреблении большого объёма памяти: в работе используется так называемый буфер глубины или Z-буфер [2]. Наглядное представление хранимых данных отражено ниже.

Рис. 2. Данные в Z-буфере

Ray casting, Метод «бросания лучей» — один из методов рендеринга в компьютерной графике, при котором сцена строится на основе замеров пересечения лучей с визуализируемой поверхностью [3]. Обладая отличной скоростью, этот метод отличается крайне низкой точностью вычислений, что ограничивает его применение лишь для узкого круга локальных задач.

Перспективы развития.

Для создания оптимальной и адекватной модели окружающего пространства необходимо чётко представлять аппаратные возможности современных компьютеров и тенденции их развития. Анализируя этапы развития вычислительной техники за последние два десятка лет [4], можно заключить, что приоритетными являются следующие преимущества:

• многопоточность вычислительных операций,

• высокая производительность вычислений на графических адаптерах,

• доступность больших объёмов, как оперативной, так и

энергонезависимой видов памяти.

Ориентируясь на эти особенности, можно с большей уверенностью заниматься разработкой новых и усовершенствованием уже существующих алгоритмов.

За базовую структуру хранения окружающего пространства примем двоичные деревья. Но чтобы обеспечить наибольшую производительность при большей насыщенности и точности объектов виртуального мира необходимо переопределить логическую модель ветвей и листьев «дерева».

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

Имея в своём распоряжении достаточный объём оперативной памяти, можно интегрировать в двоичное дерево алгоритм z-буферизации, что уже используется в современных продуктах [5]. Но помимо параметра удалённости объектов, следует хранить информацию о важности и размере объекта. Например, на расстоянии 100 м от наблюдателя, десятиэтажное здание будет хорошо видно и его нужно видеть, а вот спичечный коробок на таком же расстоянии будет не заметен (или вовсе не нужен, если модель строится для изучения архитектуры). Не обрабатываемые бесполезные объекты освобождают ресурсы вычислительных систем для более детального моделирования нужных объектов или для увеличения числа моделей.

Оценка производительности.

fps, кадров/с

50

1 ■ BSP

2 ■ BSP + многопоточность

3 ■ BSP + z-буферизация

4 BSP-I-расширенная

г-буферизация

5 ■ BSP + все оптимизации

тест, NB

Рис. 3. Диаграмма производительности Описанные оптимизации алгоритма двоичного разбиения пространства были реализованы и протестированы. Использовалось виртуальное пространство со среднестатистическим набором объектов больших и малых размеров. Тестирование проводилось на современной платформе на базе двухъядерного процессора производства фирмы Intel 2012 года. Анализ проводился по количеству кадров изображения просчитанных вычислительной системой за секунду. Взяты средние

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

Заключение

Проведённые эксперименты говорят о том, что некоторые улучшения скорости обработки удаётся получить, прибегнув к комбинации алгоритмов и проведя их оптимизацию и расширение.

С другой стороны, одновременное использование всех оптимизаций не даёт результат равный сумме приростов производительности в каждом отдельном случае. Это объясняется перекрёстными издержками каждого метода (затраты времени на служебные операции), что и приводит к этой нелинейности.

Важно заметить и то, что не все алгоритмы успешно поддаются распараллеливанию.

Усиление влияния тех или иных оптимизаций, в зависимости от области применения и объектов моделирования, должно дать больший прирост производительности.

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

Литература

1. Игровой движок [Электронный ресурс] // Википедия, свободная энциклопедия [сайт]. URL: http://ru.wikipedia.org/wiki/Игровой_движок (дата обращения: 10.09.2012).

2. Методы Z-сортировки [Электронный ресурс] // Википедия, свободная энциклопедия [сайт]. URL: http://ru.wikipedia.org/wiki/Категория:Методы_Z-сортировки (дата обращения: 10.09.2012).

3. Ray casting [Электронный ресурс] // Википедия, свободная энциклопедия [сайт]. URL: http://ru.wikipedia.org/wiki/Ray_casting (дата обращения: 10.09.2012).

4. Леонид Черняк Многоядерные процессоры и грядущая параллельная революция. - «Открытые системы» , № 04, 2007

5. Quake engine [Электронный ресурс] // Wikipedia, the free encyclopedia [сайт]. URL: http://en.wikipedia.org/wiki/Quake_engine (дата обращения: 05.10.2012).

i Надоели баннеры? Вы всегда можете отключить рекламу.