1 Дисциплина: Методы и средства распознавания образов и визуализации Тема 3: Визуализация. Основы 3D компьютерной графики. Графические библиотеки.

Презентация:



Advertisements
Похожие презентации
OpenGL и Direct3D сравнение стандартов Выполнил: Пенкин А. Группа И-204.
Advertisements

Оптимизация графического движка на библиотеке OpenGL.
Компьютерная графика Информатика 5.класс. Компьютерная графика область деятельности, в которой компьютеры используются как инструмент для создания и обработки.
Компьютерная графика. Технологии 3D графики. DirectX, OpenGL, Glide, PhysX.
1 Муниципальное бюджетное общеобразовательное учреждение «Средняя общеобразовательная школа 29» Города Березники Пермского края Разработчик: учитель информатики.
Intro Галинский В.А. Физико-математический лицей 30 Computer Graphics Support Group 1 Введение в компьютерную графику URL:
1 Лекция 1 Введение в компьютерную геометрию и графику Доцент кафедры прикладной информатики к.т.н., доцент Рачков В.Е.
Компьютерная графика вчера и сегодня. Краткая история развития. Области применения Виды изображений Типы графических редакторов Муниципальное общеобразовательное.
Выполнил: Гусев Данил. Что такое программное обеспечение? Возможности современного ПК столь велики, что все большее число людей находят ему применение.
ГОУ НПО ПУ 31 Анисимова Т.В. Анисимова Т.В. Гурьевск 2010.
1 Диаграммы реализации (implementation diagrams).
Компьютерная графика. Компьютерная графика – Графика на компьютере или точнее с помощью компьютера. Компьютер используется как инструмент рисования. Можно.
Компьютерная графика область деятельности, в которой компьютеры используются как инструмент для синтеза (создания) изображений, так и для обработки визуальной.
Первоначально результатами работы ЭВМ были только числа на бумаге. Затем появились рисунки в режиме символьной печати.символьной печати С появлением новых.
Учитель информатики Кюкяйской СОШ,Сунтарского улуса, Республики Саха Федоров Александр Михайлович,2010 год.
Компьютерная графика и её виды Выполнила : Садовникова Анастасия Группа : ИФБ -11.
Растровая и векторная графика. - область деятельности, в которой компьютеры используются как инструмент для создания изображений, так и для обработки.
Группа 1 В наше время уже ни кого не удивишь качеством графики. Бывает такое качество графики где за чистую очень сложно определить, графический это или.
1 Растровые изображения на экране монитора. Компьютерная графика область деятельности, в которой компьютеры используются как инструмент для создания изображений,
Графической информации. Векторная графика Все компьютерные изображения, все форматы для их хранения и все программы для их обработки делятся на два больших.
Транксрипт:

1 Дисциплина: Методы и средства распознавания образов и визуализации Тема 3: Визуализация. Основы 3D компьютерной графики. Графические библиотеки

2 Компьютерные системы и модели Компьютерная графика – все, что связано с созданием и отображением визуальной информации с использование компьютера. Компьютерная графика базируется на следующих элементах: Оборудование (Hardware) Программное обеспечение (Software) Приложения (Application)

3 Трёхмерная графика Трёхмерная графика (3D от англ. three dimensions «три измерения») используется для описания и отображения объектов в трехмерном пространстве. Наиболее распространенное описание 3D моделей и произвольных поверхностей это полигональное представление. В качестве полигона обычно используется треугольник. Для описания вершин треугольника используются вектора в трехмерном пространстве (x, y, z). Преобразования в 3D графике базируются на использовании матриц преобразований: - поворота, сдвига, масштабирования. На экране монитора 3D графика представлена в виде плоского изображения - проекции. В настоящее время интенсивно ведутся разработки получения стерео-изображений как на экране, так и без их традиционного использования.

4 Компьютерная графика годы Этот период можно охарактеризовать следующими элементами: Использование векторных дисплеев для отображения графики. Появление первых графических процессоров. Разработка основ человеко-машинного взаимодействия. Использование светового пера для интерактивного взаимодействия с компьютером. Использование каркасных моделей для описания и отображения 3D графики. Разработка базовых алгоритмов компьютерной графики.

5 Работы Айвена Сазерленда (Ivan Sutherland) Большой вклад в развитие компьютерной графики вносят работы Айвена Сазерленда (Ivan Sutherland) из Массачусетского технологического института. Им создан программно-аппаратный комплекс позволяющий рисовать на экране электронно-лучевой трубки графические примитивы – точки, отрезки, окружности. Реализованы базовые действия с примитивами: перемещение, копирование и т.д. Фактически реализован первый векторный редактор. С точки зрения развития компьютерного оборудования в это время появляется понятие дисплейный процессор – display processor (DPU) для регенерации изображения на экране монитора.

6 Компьютерная графика годы Этот период можно охарактеризовать как зарождение растровой графики. Появляются 2D и 3D графические стандарты GKS - International Organization for Standardization (ISO). Появляются первые рабочие станции (Workstation) и персональные компьютеры (PCs). Растровая графика характеризуется как массив (the raster) элементов (pixels) в буфере кадров (frame buffer). Растровая графика позволяет перейти от каркасного отображения объемных моделей к закрашенным полигонам.

7 Компьютерная графика годы В этот период происходит повышение реализма за счет использования следующих технологий: сглаживание - smooth shading; использование растровых изображений (карт) для моделирования окружающей среды - environmental mapping; использование растровых изображений для формирования карт глубин (моделирование неровностей поверхности) - bump mapping.

8 Компьютерная графика годы Разработка платформенно-независимого программного интерфейса 2D-3D графики OpenGL API. В эти годы появляются первые полнометражные компьютерные фильмы (Toy Story). Появляются новые аппаратные возможности графических карт: текстурирование (texture mapping); наложение смешивание (blanding); накопление буфера шаблонов (accumulation, stencil buffer).

9 Компьютерная графика 2000 – годы Усиление вычислительной мощности способствует повышению фотореализма. В области разработки и производства графических карт и ускорителей доминируют такие компании как Nvidia, ATI, 3DLabs. Появляются специализированные игровые приставки – Game boxes и Game play station. В киноиндустрии все шире применяется компьютерная графика. Совершенствуются пакеты Maya, 3ds Max, Lightwave. Появляются облачные сервисы рендеринга – RenderMan Pixar, MentalRay.

10 Техническая графика. САПР Техническая графика – область, в которой в первую очередь стала активно применяться компьютерная графика. Современные пакеты САПР позволяют создавать конструкторские документы на основе набора графических примитивов, а также с использованием изображений стандартных, типовых и унифицированных деталей и узлов.

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

12 Визуализация в науке Компьютерная графика, ставшая самостоятельным научным направлением, проникает сегодня во все сферы интеллектуальной деятельности человека, включая кино и телевидение, издательские системы, космос и авиацию, медицину, экологический мониторинг, научные исследования и образование. Многие алгоритмы машинной графики названы по фамилиям авторов – алгоритмы отсечения Сазерленда (Sazerland), прямые Брезенхейма и Брассини, кривые Безье, поверхности Кунса, Цао Ена и т.д. Этот список постоянно пополняется новыми алгоритмами, и соответственно именами их авторов. Научный аспект компьютерной графики связан с моделированием динамических процессов, диагностикой и распознаванием образов.

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

14 Игровые приложения С технической точки зрения за последние 25 лет графические технологии прошли полный круг. Если помните, первые трехмерные игры, такие как DOOM и QUAKE, использовали программный растеризатор. Затем была усовершенствована аппаратура фиксированного конвейера трехмерной графики, игры стали больше полагаться на аппаратуру, куда переместился конвейер, что привело к значительно меньшему контролю над процессом визуализации.

15 Игровые приложения Теперь мы можем программно управлять каждым пикселем и это ошеломляющая концепция. Итак, шейдеры замкнули круг; мы получили скорость аппаратных решений вместе с гибкостью программных. Я предполагаю, что следующим этапом развития графических аппаратных средств станут полностью переконфигурируемые и перепрограммируемые ядра в видеопроцессоре. Копия экрана эпизода компьютерной игры SKYRIM

16 Графические интерфейсы программирования Программирование этих одинаковых для всех графических приложений рутинных операций на стандартных языках программирования каждым отдельным прикладных программистом нецелесообразно, поэтому с самых первых лет существования компьютерной графики разрабатывались стандартизованные библиотеки макросов или подпрограмм, которые могли включаться в прикладную программу и реализовывать базовые графические функции. Современное название таких библиотек – графический интерфейс прикладного программирования (graphics Application Programmers Interface – API).

17 Графические интерфейсы программирования Для обеспечения переносимости программного обеспечения все API реализовывались как графические стандарты (1-е поколение до начала 90-х годов 20-го столетия). Известны следующие стандартные наборы функций и соответствующих библиотек интерактивного графического программирования: 3D Core Graphics System (1977), GRAFOR -ГРАФОР (1979) GKS, GKS 3D Graphical Kernel System (1988) PHIGS, PHIGS+ Programmer's Hierarchical Interactive Graphics System (1988) PEX and PEXlib (PHIGS+ for X-window) (1989) Эти стандарты и библиотеки разрабатывались в основном академическими учреждениями и впоследствии внедрялись в промышленность, причем достаточно туго и замедленно.

18 Графические API из индустрии (2-е поколение) Взрывной характер развития информационных технологий и электроники в начале 80-х годов породил массу предприятий, которые разрабатывали и производили различные графические устройства, которые требовали стандартизации управления и совместимости с интерактивными графическими системами. Silicon Graphics, позже SGI, которая разработала свой собственный графический интерфейс GL, который затем был сделан публичным стандартом OpenGL (Open Graphics Library), Сейчас развитие этого стандарта управляется общественной организацией OpenGL ARB (Architecture Review Board). Одним из наиболее распространенных интерфейсов программирования является Direct3D фирмы Microsoft (1995), как часть мультимедиа интерфейсов DirectX2-3, Dx5, Dx6, Dx7-Dx11, которые является популярной платформой для разработчиков компьютерных игр. Общее название у интерфейса WGF (Windows Graphics Foundation), который развивается непосредственно компанией Microsoft в сотрудничестве с разработчиками игр и графических процессоров.

19 Шейдеры и языки программирования шейдеров Интерфейсы графического программирования с фиксированными функциями к середине 80-х использовались достаточно широко в промышленности и научных учреждениях, но фиксированный набор функций с ограниченными возможностями не позволял их использовать для генерации реалистичных изображений в задачах компьютерной анимации, синтетической фотографии и кинематографии. Эти потребности служили отправной точкой разработки процедурных языков программирования шейдеров, которые позволяли реализовать практически неограниченную функциональность в обработке графических данных для генерации реалистичных изображений.

20 Шейдеры и языки программирования шейдеров Для OpenGL можно перечислить: PixelFlow Shading Language (1998) как расширение OpenGL SGI Interactive Shading language (2000) как расширение OpenGL Расширения для шейдерной обработки вершин и фрагментов для OpenGL версий 1. x (ARB, EXT, ATI, NV, Apple) Stanford Real-Time Shading Language (2001) OGL Shading language (GLSL) для OpenGL 2.0 (3Dlabs, ARB) Таким же образом компания Микрософт развивала свой корпоративный интерфейс графического программирования DirectX7, который был аналогичен по фиксированным функциям OpenGL 1.1: Версия DirectX 8 получила ограниченные по возможностям шейдеры вершин и пикселей (Vertex and Pixel shaders – VS 1.x, PS 1.x) Версия DirectX 9 получила расширенные шейдеры VS/PS 2. x and VS/PS 3.0 Версии DirectX 10 и DirectX 11 получили многофунциональные шейдеры для всех типов примитивов, включая высокоуровневые криволинейные фрагменты поверхностей (для OS Vista & Windows 7).

21 Трехмерные системы координат. Проекции. Отображение трехмерной графики неразрывно связано с трехмерными системами координат. Ортогональная (прямоугольная) система координат, наиболее часто используемая система координат на плоскости или в пространстве. Такая система координат в пространстве образуется тремя взаимно перпендикулярными осями координат OX, OY и OZ. Оси координат пересекаются в точке O, которая называется началом координат, на каждой оси выбрано положительное направление, указанное стрелками. Прямоугольную систему координат связывают с именем Декарта (René Descartes или лат. Renatus Cartesius). Соотвественно используются термины декартова (картезианская) система координат (Cartesian coordinate system).

22 Декартовы трехмерные системы координат Y Z X Y X Z Левосторонняя трехмерная система координат Правосторонняя трехмерная система координат Принято оси X и Y располагать в плоскости экрана. Тогда ось Z может быть направлена на наблюдателя или вглубь экрана. В этом случае говорят о двух типах систем координат: левосторонней и правосторонней. Их названия определяются направлением оси Z относительно осей X и Y. Чтобы определить это направление, можно воспользоваться правилом левой и правой руки. Для этого необходимо расположить пальцы одной руки вдоль положительного направления оси X, и согнуть их против часовой стрелки к положительному направлению оси Y. В этом случае большой палец показывает направление оси Z.

23 Векторы в трехмерном пространстве a b c Начало Конец Векторы обеспечивают удобный механизм задания направления в трехмерном пространстве. Например, необходимо задать ориентацию грани, направление камеры, указать направление распространения световых лучей. Кроме этого векторы очень удобны для моделирования физических величин, которые характеризуются модулем и направлением. Вектор нормали используется для расчетов освещенности поверхностей.

24 Матрицы. Преобразования координат Большинство приложений 3D-графики базируется на использовании матриц. В математике, матрицы прямоугольник группы чисел называется elements. Размер матрицы выражается в число строк на число столбцов. В 3D- графике, наиболее распространенный тип матрицы 4 на 4, которая содержит 16 значений с плавающей точкой.

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

26 Визуализация Каркасная модель Wireframe. Удаление невидимых линий (Hidden Line)

27 Визуализация Закрашивание граней с учетом освещения (Fasets). Имитация гладких поверхностей закрашиванием (Smooth + Highlights).

28 Визуализация Материал – ProMaterials: Water, Type – Steram/River, Color – Tropical. Визуализатор – mental ray.

29 Графический конвейер Большинство систем компьютерной графики построено на использовании графического конвейера. Описание сцены в трехмерном приложении Стадия геометрических преобразований Генерация треугольников Модельные преобразования Освещение Проверка глубины Стадия рендеринга (Renderin pipeline) Сортировка по Z – буферу и смещение текстур Наложение текстур Закраска треугольников Сглаживание Вывод изображения сцены на экран

30 Стадия рендеринга Этапы стадии рендеринга: сортировка по Z-буферу (так называемый «буфер глубины») и смешение текстур; наложении текстурной карты на объект; закраска треугольников. Для выполнения этой задачи используются три модели - плоское закрашивание (по Ламберту) и закрашивание по Гуро и по Фонгу. Модель с плоским закрашиванием заключается в равномерном однородном закрашивании каждого треугольника одним цветом (обычная заливка).

31 Графические библиотеки DirectX – это мультимедийная библиотека, позволяющая напрямую работать с аппаратным обеспечением компьютера. Разработка компании Microsoft. Тесное взаимодействие DirectX и оборудования с драйверами, написанными производителями оборудования, дают возможность разрабатывать программный код, не вдаваясь в подробности работы аппаратной части. Остановимся подробнее на библиотеке Direct3D отвечающей за работу с трехмерной графикой. В ранних версиях DirectX Graphics состоял из двух частей – DirectDraw (рисование двумерной графики) и Direct3D (трехмерная графика). Начиная с восьмой версии, DirectDraw вошла в состав Direct3D. DirectX включает в себя уровень абстракции – HAL (Hardware Abstraction Layer), позволяющий приложению работать с любым оборудованием компьютера, независимо от производителя.

32 Microsoft XNA Microsoft XNA (англ. XNA's Not Acronymed) - набор инструментов с управляемой средой времени выполнения (.NET), созданный Microsoft, облегчающий разработку и управление компьютерными играми. XNA стремится освободить разработку игр от написания «повторяющегося шаблонного кода» и объединить различные аспекты разработки игр в одной системе. Набор инструментов XNA был анонсирован 24 марта 2004 на Game Developers Conference в Сан-Хосе, Калифорния. Первый Community Technology Preview XNA Build был выпущен 14 марта Платформа XNA является надстройкой над Microsoft Visual Studio, позволяющей значительно упростить создание игр для операционной системы Windows, игровой приставки Xbox360 и в скором времени медиаплеера Zune. Основная целевая аудитория XNA на данный момент – разработчики, интересующиеся созданием игр и мультимедиа приложений и не являющиеся профессиональными программистами.

33 OpenGL Библиотека набора утилит OpenGL (GLUT, от GL Utility Toolkit) - это интерфейс для программистов, создающих приложения OpenGL, не зависящие от системы управления окнами. Благодаря разработчикам GLUT мы имеем возможность использовать единый интерфейс для работы с окнами независимо от платформы. Приложения OpenGL, использующие GLUT могут быть с легкостью перенесены с платформы на платформу, без многочисленных переделок исходного кода. GLUT значительно облегчает написание кода приложений и дополняет библиотеку OpenGL.

34 Литература 1.Есенин, Сергей Анатольевич. DirectX и Delphi: разработка графических и мультимедийных приложений / С. А. Есенин. СПб.: БХВ-Петербург, Поршнев, Сергей Владимирович. MATLAB 7. Основы работы и программирования: учебник: доп. УМО вузов по университетскому политехническому образованию в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению "Информатика и вычислительная техника" / С. В. Поршнев. М.: Бином, Херн, Дональд. Компьютерная графика и стандарт OpenGL / Д. Херн, М. П. Бейкер. М.: Издательский дом "Вильямс", Эйнджел, Эдвард. Интерактивная компьютерная графика. Вводный курс на базе OpenGL / 2-е изд. М. : Издательский дом "Вильямс", 2001.