Программирование в Pascal




Скачать 368.57 Kb.
НазваниеПрограммирование в Pascal
страница1/3
Дата публикации04.03.2013
Размер368.57 Kb.
ТипКурсовая
litcey.ru > Информатика > Курсовая
  1   2   3

Размещено на http://www.allbest.ru/

Федеральное агентство по образованию РФ

Государственное образовательное учреждение высшего профессионального образования

Смоленский государственный университет


Курсовая работа по теме:

Программирование в Pascal. Моделирование 3D-объектов


Смоленск

2011 г.

Введение
Программная реализация построения изображения трехмерных объектов встречается все реже. Это вызвано большими затратами ресурсов вычислительной машины. В последнее время активно ведётся разработка систем построения объемных изображений, использующих графический процессор современных видеоадаптеров взамен центрального процессора. Сегодня эффективность видеоадаптеров для таких вычислений намного выше и позволяет строить более сложные и реалистичные сцены, но в то же время имеет ряд недостатков. Основным аспектом аппаратной визуализации в первую очередь является ориентация на скорость исполнения задачи, получение качественного результата задача второстепенная. Кроме того накладываются ограничения набором инструкций адаптера, предусмотренным производителем. Программную обработку можно встретить в основном в системах моделирования компании Autodesk. Иногда программное построение изображений имеет некоторые преимущества по сравнению с аппаратной реализацией – одним из главных особенностей является как разбиение процесса на множество потоков (распараллеливать, вследствие большого объема однотипных вычислений), и как следствие использовать в многопроцессорных системах. Как противопоставление, используя программные методы моделирования и построения изображения, программист ограничивается только собственной фантазией – примером такого продукта является система визуализации изображения V-Ray. Система V-ray позволяет моделировать крайне реалистичное освещение в трехмерных сценах, отражения и рассеивания света, и, вследствие, требует большего количества расчетов. Аппаратное построение по сравнению с программным наследует большинство основных принципов реализации – от расчета и построения нормалей до формирования z-buffer – отличие в выполнении расчетов на видеоадаптере, высвобождая центральный процессор для других задач.

Трехмерное моделирование или 3D графика позволяет решать множество задач и применяется различных сферах деятельности. Это как строительство – результатом может быть модель будущего дома, как частного, так и многоквартирного, офисного здания, или же любого промышленного объекта. Кроме того, визуализация активно применяется в дизайн-проектах интерьеров. Объемное изображение спроектированного сооружения отличается фотографической точностью и позволяет лучше представить себе, как будет выглядеть проект, воплощенный в жизни, внести определенные коррективы. 3D модель обычно производит гораздо большее впечатление, чем все остальные способы презентации будущего проекта. Передовые технологии позволяют добиваться потрясающих результатов. 3D модели популярны так же набирают популярность среди веб-дизайнеров. Многие конструкторы уже давно перешли от использования линейки и карандаша к современным трехмерным компьютерным программам. На основе трехмерного моделирования основаны и множество систем автоматизированного проектирования (САПР) для визуализации результатов, реализуемых математическим обеспечением для демонстрации тех или иных физических процессов. Постепенно новые технологии осваивают и другие компании, прежде всего, производственные и торговые, но не так активно.

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

^ Этапы развития компьютерной графики
Представление данных на мониторе компьютера в графическом виде впервые было реализовано в середине 50-х годов для больших ЭВМ, применявшихся в научных и военных исследованиях. Первые вычислительные машины не имели отдельных средств. Для работы с графикой, однако, уже использовались для получения и обработки изображений. Программируя память первых электронных машин, построенную на основе матрицы ламп, можно было получать узоры. В середине 1960-х гг. появились разработки в промышленных приложениях компьютерной графики. Графикой на тот момент занимались только при выводе на принтер, в этот период были заложены основные математические основы. Так, была разработана цифровая электронная чертёжная машина, немногим позже были представлены и первые системы автоматизированного проектирования. В 70-х годах начали появляться персональные компьютеры, т.е. появился доступ пользователя к дисплеям. Роль графики резко возросла, но наблюдалось очень низкое быстродействие компьютера, ввиду чего подавляющее большинство программ писалось на ассемблере. Но уже спустя совсем немного времени, в 80-х годах появились персональные компьютеры, позволяющие выводить графические объекты на экраны мониторов, что позволило использовать машинную графику в качестве инструмента специалистам различных областей, не связанных с программированием. Увеличение памяти и скорости обработки информации в персональных ЭВМ, создание видеокомплексов с широким набором программ машинной графики, возможность управления ими в диалоговом режиме способствовали дальнейшему расширению применения машинной графики. Важную, практически определяющую роль в этом процессе сыграл выпуск компанией Apple компьютеров Macintosh. Они были для своего времени настоящей революцией. Во-первых, Macintosh серийно поставлялся с цветным монитором. Во-вторых, его операционная система обладала наглядным, визуальным интерфейсом (своего рода аналог более поздней ОС Windows). И в-третьих, их мощности было достаточно для обработки графических изображений. Именно поэтому Macintosh сразу заслужил внимание множества профессиональных художников и дизайнеров, которые сменили карандаш и кисть на мышь и клавиатуру. С тех пор графический способ отображения данных стал неотъемлемой принадлежностью подавляющего числа компьютерных систем, в особенности персональных. Графический интерфейс пользователя сегодня является стандартом “де-факто” для программного обеспечения разных классов, начиная с операционных систем. Результат многолетнего развития технологий данного рода индустрии можно ежедневно наблюдать в повседневной жизни в неожиданных местах – от старой доброй растровой графики до векторной графики и 3D.

Для упрощения работы с графикой в настоящий момент существует ряд программных и аппаратных решений, позволяющих сконцентрироваться на основной задаче. На рынке широко представлены всевозможные графические акселераторы и массивы быстрой памяти. Ведущие производители электронных компонентов, такие как Intel и AMD, поддерживают обработку изображения на уровне процессорной техники (MMX, 3D Now), следовательно, становится возможным реализация «медленных», но дающих лучшее качество изображения алгоритмов. Среди средств, упрощающих написание программной части корпорация Microsoft предлагает два решения. Первое это DirectX, без которого не в состоянии работать подавляющее большинство приложений игровой индустрии. DirectX - это набор готовых классов, процедур, функций, структур и констант. DirectX представляет собой интерфейс программирования приложений ориентированный на упрощенное использование аппаратных мультимедиа-решений компьютера, а так же подразумевает прямой доступ к ним. DOS позволяла разработчику получить прямой доступ к видеокарте, клавиатуре/мыши/джойстику и прочим частям системы, в то время как новая ОС, Windows, с её защищённой моделью памяти, предоставляла более стандартизованный, но в то же время весьма ограниченный и накладный доступ к устройствам. Вторым решением для разработчиков является Microsoft XNA - набор инструментов с управляемой средой времени выполнения .NET для DirectX, облегчающий разработку и управление компьютерными играми и графическими приложениями. Использование этого продукта позволяет избежать многих технических трудностей и отстраниться от написания подсистемы вывода графики – остается подгрузить уже заранее подготовленные структуры объектов (модели) и описать их взаимодействие в процессе работы приложения.

Существует ряд конкурирующих решений, таких как OpenGL - открытая графическая библиотека. Это довольно мощный независимый от языка программирования, кросс-платформенный программный интерфейс для написания приложений, использующих как двумерную, так и трёхмерную компьютерную графику. Он включает в себя более 250 функций для рисования сложных трёхмерных сцен из простых примитивов, довольно часто используется при создании компьютерных игр, САПР, систем виртуальной реальности, а так же визуализации в научных исследованиях. Существенным преимуществом платформы являются эффективные реализации OpenGL для Windows, Unix-платформ, PlayStation 3 и Mac OS, в отличие от DirectX, применимого только в среде Windows. Еще одной важной особенностью среды является возможность исключительно программной реализации спецификации OpenGL одной из которых является библиотека Mesa в случае отсутствия аппаратных средств либо скудной производительности последних. Для программиста OpenGL хорош не только своей сравнительной простотой реализации и наглядной простотой кода, но и большим выбором дополнительных библиотек, позволяющим расширить возможности среды. Яркими представителями являются GLU и GLUT.




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


Рисунок 1
Задача трёхмерного моделирования - описать эти объекты и разместить их в сцене с помощью геометрических преобразований в соответствии с требованиями к будущему изображению. Математическая либо векторная пространственная модель превращается в плоскую (растровую) картинку. Если требуется создать фильм, то обрабатывается целая последовательность таких картинок - кадров. Как структура данных, изображение на экране представлено матрицей точек. Таким образом, процесс получения изображения преобразует трёхмерную векторную структуру данных в плоскую матрицу пикселов. Этот шаг часто требует очень сложных вычислений, особенно если требуется создать иллюзию реальности.

При работе с трехмерной графикой используется несколько видов систем координат. Для отображения двумерных объектов использовалась соответствующая система координат с двумя осями – горизонтальной осью X и вертикальной осью Y. Экранная система координат для двумерной графики имеет начало (точку 0,0) в левом верхнем углу монитора, положительная часть оси X располагается справа от начала координат, положительная часть оси Y – снизу.

Для работы с трехмерными объектами необходима еще одна ось – ось Z (рис.2). Существует несколько вариантов трехмерных систем координат, в частности, распространены так называемые правосторонняя и левосторонняя системы.


Рисунок 2
Особенность этой системы координат заключается в том, что начало координат можно сопоставить с левым нижним углом монитора, положительная часть оси X находится справа от начала координат, положительная часть оси Y – сверху, а положительная часть оси Z – спереди. А это значит, что видимая часть оси Z – это её отрицательная часть. Эта часть оси находится как бы «в глубине монитора», в то время как положительная часть находится «спереди монитора». В двумерной системе координат существует понятие точки – ее координаты задаются двумя значениями – X и Y. Точки существуют и в трехмерной системе координат – они задаются уже тремя значениями – X, Y, Z.

Точки используют для того, чтобы задавать координаты вершин многоугольников (полигонов), в частности – треугольников. Так, треугольник, задан тремя точками – A, B, C. Как правило, более сложные трехмерные объекты строятся именно из треугольников.

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

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

Несколько граней, из которых состоит трехмерный объект, называются сеткой. "Сетка" представляет собой набор треугольников.

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

Существует особый вид векторов – нормали. Нормали могут быть построены для граней и для вершин объекта. Нормали для граней перпендикулярны этим граням. Они используются при расчете цвета объекта и исключения нелицевых граней.

В трёхмерной компьютерной графике все объекты обычно представляются как набор поверхностей или частиц. Минимальную поверхность (некоторую плоскость, ограниченную набором точек и ребер) иногда называют полигоном. Любой полигон можно представить в виде набора из координат его вершин. Так, у треугольника будет 3 вершины. Координаты каждой вершины представляют собой вектор (x, y, z). Умножив вектор на соответствующую матрицу, мы получим новый вектор. Сделав такое преобразование со всеми вершинами полигона, получим новый полигон, а преобразовав все полигоны, получим новый объект, повёрнутый/сдвинутый/масштабированный относительно исходного.

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



  1   2   3

Похожие:

Программирование в Pascal iconПрограмма элективного курса «Программирование на языке Turbo Pascal» 9 класс
Предлагаемый элективный профильный курс предназначен для тех, кто хочет освоить программирование в среде Turbo Pascal. Курс предполагает...
Программирование в Pascal iconЛабораторная работа 3 тема: Программирование на pascal. Разработка...
Цель: научиться составлять задачи, содержащие повторяющиеся действия на на языке программирования pascal
Программирование в Pascal iconЛабораторная работа 1 Арифметические операции и математические функции языка Pascal
Целью лабораторной работы является получение практических навыков в программировании выражений и использовании математических функций...
Программирование в Pascal iconЛабораторная работа 1 Арифметические операции и математические функции языка Pascal
Целью лабораторной работы является получение практических навыков в программировании выражений и использовании математических функций...
Программирование в Pascal iconРешение задач в области управления техническими системами требует...
Программирование документов и приложений ms office в Delphi. Управление ms word, ms excel через ole objects. 54
Программирование в Pascal iconЧто такое программирование?
Программирование — область информатики, посвященная разработке программ управления компьютером с целью решения различных информационных...
Программирование в Pascal iconМетодические указания по подготовке к зачету для студентов заочной формы обучения см21
Предмет и цели линейной оптимизации. Математическое программирование. Линейное программирование (ЛП)
Программирование в Pascal iconГоу впо «Тюменский государственный университет» Нижневартовский экономико-правовой...
Предмет и цели линейной оптимизации. Математическое программирование. Линейное программирование (ЛП)
Программирование в Pascal iconУчебно-методический комплекс для студентов заочной формы обучения Тематика дисциплины
Предмет и цели линейной оптимизации. Математическое программирование. Линейное программирование (ЛП)
Программирование в Pascal iconМетодические указания к курсовому проектированию по дисциплине «Прикладное программирование»
Прикладное программирование: Методические указания к курсовому проектированию по дисциплине «Прикладное программирование»/ Сост.:...
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
litcey.ru
Главная страница