Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Введение в трехмерную графику

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

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

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

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

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

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

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

На данный момент имеется две графические библиотеки, которые можно рассматривать как основные – DirectX корпорации Microsoft и OpenGL – компании Silicon Graphics.

DirectX – совокупность технологий, разработанных корпорацией Microsoft с целью превратить Windows в оптимальную платформу для мультимедийных приложений и компьютерных игр с полноцветной графикой, видео, трехмерной анимацией и объемным звуком. История появления технологии DirectX уходит к 1995 году, когда под пристальное внимание корпорации попала британская компания RenderMorphics с небольшим проектом, представленным на обычной выставке. Этот проект умел отображать неплохие трехмерные объекты в реальном времени на обычном персональном компьютере, доступном каждому. После приобретения данной компании, Microsoft приступает к разработке графической библиотеки под Windows 95. Данная разработка вылилась в создание нового прикладного программного интерфейса (API – Application Programming Interfaces), который дал разработчикам игр более прямой доступ до аппаратного обеспечения, увеличив тем самым производительность игр под Windows. Мы будем рассматривать девятую версию DirectX.

Вообще, DirectX – набор API функций, предоставляющий низкоуровневый интерфейс к аппаратным средствам (ускорители 3D графики, звуковые и сетевые платы) персонального компьютера. Этот набор функций позволяет не привязываться жестко к тем или иным аппаратным средствам и не требует написания аппаратно-зависимого кода (если аппаратные средства не поддерживают каких-либо возможностей, то они эмулируются на программном уровне).

DirectX представляет собой набор следующих основных компонент:

  • DirectX Graphics (компонент, который управляет всем графическим выводом; этот API предоставляет функции для работы с 2D и 3D рисованием)
  • DirectInput (компонент, включающий поддержку (API) таких устройств ввода как клавиатура, мышь, джойстик)
  • DirectPlay (компонент, поддерживающий работу с коммуникационной средой (сетью); не зависит от сетевого протокола и метода соединения)
  • DirectSound (компонент, позволяющий микшировать звук в реальном времени и предоставляющий прямой доступ к звуковой карте)
  • DirectShow (компонент для работы с новой периферией – цифровыми фото и видеокамерами)

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

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

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

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

Рис. 2.3

Следует отметить, что операция масштабирования производится относительно начала координат. В результате преобразования объект может стать меньше/больше в размерах и ближе/дальше от начала координат. Пропорции объекта также могут измениться при масштабировании с различными коэффициентами: . Для сохранения пропорций необходимо, чтобы масштабные коэффициенты были равны: .

Точка плоскости может быть повернута на произвольный угол относительно начала координат и перейдет в новую точку

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

.

Домножим правую и левую части уравнений на .

.

Используя простейшие тригонометрические свойства прямоугольного треугольника , следует заметить, что , а . Таким образом, формула «перевода» точки в точку поворотом на угол относительно начала координат будет:

.

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

.

Так треугольник с координатами вершин после поворота на угол 45 градусов по часовой стрелке относительно начала координат () будет иметь новые значения координат вершин: .

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

 


Подобным образом матрица отражения относительно прямой (ось ординат) будет иметь вид . Точка при отражении относительно оси ординат преобразуется в точку .

Отражение относительно прямой осуществляется с помощью матрицы . Точка в результате такого отражения преобразуется в точку .

Рассмотренные выше аффинные преобразования переноса, масштабирования, вращения и отражения можно записать в матричной форме следующим образом: , где - координаты преобразованной точки, - координаты исходной точки, - вектор сдвига (translate), - матрица масштабирования (scale), - матрица вращения (rotate), - матрица отражения (minor). К сожалению, операция переноса (сдвига) реализуется отдельно (с помощью сложения) от масштабирования, поворота и отражения (с помощью умножения). Тем не менее, существует возможность, чтобы все эти элементарные преобразования (перенос, масштабирование, вращение, отражение) можно было реализовать с помощью только операций умножения матриц. Данная возможность реализуется с помощью так называемых однородных координат точки.

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

Теперь точки плоскости можно описывать трехэлементным вектором, а матрицы преобразования должны иметь размер 3х3. В общем случае преобразование точки в новую точку можно представить следующим образом .

<== предыдущая лекция | следующая лекция ==>
Лекция №1. Количеством информации называют числовую характеристику сигнала, отражающую ту степень неопределенности (неполноту знаний) | Инфляция и ее показатели. Инфляция («inflation» - от итальянского слова «inflatio», что означает «вздутие») представляет собой устойчивую тенденцию роста общего уровня цен
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 747; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.034 сек.