Научная статья на тему 'Компьютерное моделирование комбинации из трехмерных объектов'

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

CC BY
222
99
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МОДЕЛИРОВАНИЕ / ПРОГРАММИРОВАНИЕ / АЛГОРИТМ / АППРОКСИМАЦИЯ / ВИЗУАЛИЗАЦИЯ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Исаев Андрей Львович, Андросова Екатерина Евгеньевна

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

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Исаев Андрей Львович, Андросова Екатерина Евгеньевна

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

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

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №10-2/2016 ISSN 2410-700Х_

УДК 004.925

Исаев Андрей Львович

канд. техн. наук, доцент МГТУ им. Н.Э. Баумана Андросова Екатерина Евгеньевна студент МГТУ им. Н.Э. Баумана г. Москва, РФ E-mail: isaeval@bk.ru

КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ КОМБИНАЦИИ ИЗ ТРЕХМЕРНЫХ ОБЪЕКТОВ

Аннотация

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

Ключевые слова

Моделирование, программирование, алгоритм, аппроксимация, визуализация.

Компьютерное моделирование в настоящее время является одной из важных стадий разработки любого технического устройства независимо от размера и сложности. Его использование позволяет значительно сократить затраты и время на проектирование дорогостоящих изделий. Обычно для этого используются различные широко распространенные универсальные программы и инструменты: 3DS Max, Blender, Maya, AutoCAD [1,с.23]. Они являются достаточно эффективными и высокопроизводительными. Однако, большинство из них являются довольно сложными для обычного пользователя. Таким образом, часто актуальной является задача разработки более адекватного широкому кругу пользователей программного обеспечения (ПО) для компьютерного моделирования. Разработка такого ПО может быть обеспечена использованием графических возможностей широко известных и доступных систем программирования [2,с.6].

В данной статье предлагается пример разработки подобного ПО - специализированной программы моделирования трехмерных объектов.

Программа обеспечивает:

• добавление в графическую сцену трехмерных объектов, таких как цилиндры, сферы, конусы, параллелепипеды, плоскости и т.д.;

• манипулирование объектами (движение, поворот, масштабирование);

• манипулирование сценой (поворот и движение камеры);

• добавление и манипулирование несколькими источниками света (чем больше источников света, тем более реалистичной будет выглядеть сцена).

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

Существует много способов аппроксимации трехмерных объектов. Например, некоторые из них:

• неструктурированный набор точек;

• набор многоугольников,

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №10-2/2016 ISSN 2410-700Х_

• полигональная сетка;

• подразделение поверхностей;

• параметрические поверхности;

• неявные поверхности;

• булевы операции, применяемые к простым формам;

• граф кривых с радиусами.

Для внутреннего представления трехмерного объекта в разрабатываемой программе выбраны полигональные сетки. Их легко задать, и они не занимают большого места в памяти. В качестве полигона выбран треугольник. Треугольник - наиболее простая геометрическая фигура, им легко манипулировать и рассчитывать его параметры. Доказано, что область любой формы можно гарантированно разбить на множество треугольников.

После ввода параметров трехмерной фигуры она превращается в набор треугольников (этот процесс называется триангуляцией). При этом используется разработанный алгоритм триангуляции, результат выполнения которого - вектор треугольников, в соответствии с введенными параметрами прямоугольника, правильного многоугольника или параллелепипеда. На рис. 1 представлены схема и результат работы этого алгоритма.

Рисунок 1 - Простой алгоритм триангуляции

Для объектов, более сложных, чем цилиндр, необходим более сложный алгоритм. На рис. 2 представлена схема алгоритма, который разработан для сфер, конусов и усеченных конусов.

Рисунок 2 - Алгоритм триангуляции для сфер, конусов и усеченных конусов

На рис. 3 можно увидеть результат работы алгоритма для сферы и конуса с разной точностью триангуляции. Точность триангуляции, или плотность треугольников, является важным параметром, так как чем больше треугольников во внутреннем представлении объекта, тем более реалистичным он будет выглядеть.

Исследование занимаемой памяти и времени работы этого алгоритма можно увидеть на рис. 4. Очевиден вывод, что чем большая точность триангуляции указана, тем больше времени (4а) и памяти (4б) требуется для получения и хранения полигональной сетки.

После получения набора треугольников, представляющих объект, к ним нужно применить удаление невидимых поверхностей: для отображения только объектов, видных из точки зрения камеры Наиболее популярными алгоритмами удаления невидимых поверхностей являются: • алгоритм художника;

• алгоритм с упорядоченным списком ребер;

• алгоритм, использующий z-буфер;

• трассировка лучей.

_МЕЖДУНАРОДНЫЙ НАУЧНЫЙ ЖУРНАЛ «СИМВОЛ НАУКИ» №10-2/2016 ISSN 2410-700Х_

В разработанной программе обеспечивается быстрое создание новых объектов. При этом степень реалистичности вида объектов не высока, поэтому выбран алгоритм, использующий z-буфер [3,с.5]. Он прост в реализации и не включает сортировку, что обеспечивает соответственно быстрое время работы.

Рисунок 5 - Схема алгоритма, использующего Z-буфер.

Рисунок 6 - Однотонная закраска (вверху) и закраска методом Гуро (внизу).

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

габариты пространства изображения фиксированы. На рис. 5 представлена схема алгоритма, использующего z-буфер.

Последний шаг визуализации объекта - это его закраска: заполнение треугольников определенным цветом в соответствии с их позицией относительно источника света. После нее объект выглядит трехмерным на двумерном экране. Полезно реализовать два вида закраски: однотонную закраску (каждый треугольник одного цвета) и более реалистичную, но медленную закраску методом Гуро [4,с.3] — она основана на вычислении нормалей и интерполяции интенсивностей. На рис. 6 можно увидеть результат этих двух видов закраски.

Разработанная программа создания сцен из трехмерных объектов позволяет моделировать различные конструкции. Это иллюстрирует пример, представленный на рис.7, где показан условный проект космической станции. Конструкция станции может изменяться. Возможно добавление и удаление различных элементов, изменение их размеров и формы и т.д. Это позволяет быстро и с минимальными затратами оценить различные варианты компоновки и состава проектируемой станции.

Рисунок 7 - Пример работы программы Список использованной литературы:

1. Сиденко Л.А. Компьютерная графика и геометрическое моделирование: Учебное пособие. СПб.: Питер, 2009.

2. Исаев А.Л., Куров А.В. Машинная графика в среде программирования Delphi: Учебное пособие. М.: Изд. МГТУ, 2006. 56с.

3. Gregory Massal. Depth buffer - the gritty details [Электронный ресурс] // Codermind In a coder's mind. URL. http://www.codermind.com/articles/Depth-buffer-tutorial.html.

4. Кулагин Д.А. Модели затенения. Плоская модель. Затенение по Гуро и Фонгу [Электронный ресурс] // Компьютерная графика. Теория, алгоритмы, примеры на С++ и OpenGL. URL. http : //compgraphics.info/3 D/lighting/shading_model .php.

© Исаев А.Л., Андросова Е.Е., 2016

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