Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Результаты и защита курсовой работы



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

1. законченный программный проект в среде Visual Studio;

2. презентацию для ПК в электронном виде;

  1. отчет о курсовой работе в виде файла формата MS Word или аналогичном из Open Office.

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

Защита курсовой работы проводится до начала зачётной сессии. Защита может проходить открыто с приглашением преподавателей и студентов. Студент демонстрирует презентацию своей работы, затем показывает программный проект и решение поставленных задач на компьютере. Программный код должен быть отлажен, оттестирован и снабжен ясными и понятными комментариями. Отчёт оформляется в соответствии с правилами, описанными в п. 2.2. Время выступления 5-7 минут.

Последовательность выполнения работы

При выполнении курсовой работы рекомендуется придерживаться следующей последовательности шагов:

– выбор темы с помощью преподавателя (из утверждённого списка) или самостоятельно,

– разработка интерфейса и алгоритмов,

– разработка кода программы, её отладка и тестирование,

– подготовка презентации,

– подготовка текста отчёта,

– представление и обсуждение результатов в ходе семестра,

– защита курсовой работы.

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

Критерии оценки курсовой работы

Оценка за курсовую работу учитывает:

1. самостоятельность и оригинальность работы;

2. удобство и дружественность пользовательского интерфейса;

3. наличие системы подсказок и помощи;

4. качество комментариев в тексте программного кода;

5. собственно программный код, включающий применение различных возможностей среды и языка программирования: элементов управления, классов, работы с базами данных или файлами, графики и т.д.;

6. оформление курсовой работы с использованием современных компьютерных выразительных средств;

7. качество презентации, умение коротко и ясно рассказать о своей работе;

8. умение представить результаты работы в письменном виде;

9. понимание и знания, проявленные при ответах на вопросы во время защиты.

Рекомендуемые критерии оценки:

– «отлично» выставляется студенту, показавшему глубокие знания, примененные им при самостоятельном исследовании избранной темы, способному обобщить практический материал и сделать на основе анализа выводы;

– «хорошо» выставляется студенту, показавшему в работе и при ее защите полное знание материала, всесторонне осветившему вопросы темы, но не в полной мере проявившему самостоятельность в исследовании;

– «удовлетворительно» выставляется студенту, раскрывшему в работе основные вопросы избранной темы, но не проявившему самостоятельности в анализе или допустившему отдельные неточности в содержании работы;

– «неудовлетворительно» выставляется студенту, не раскрывшему основные положения избранной темы и допустившему грубые ошибки в содержании работы, а также допустившему плагиат.

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

Программные технологии компьютерной графики, предлагаемые для использования в курсовой работе

Для разработки графических программ для ОС Windows существует много различных инструментальных технологий, которые воплощают на практике разные методологии разработки программ [5]. Одну и ту же программу можно создать различными способами, в том числе и графическую программу. В курсовой работе могут применяться любые технологии разработки графических программ в среде ОС Windows: встроенный в операционную систему Windows API, популярный пакет программирования графики OpenGL, технологии Microsoft GDI+ и DirectX.

Графическое приложение, с одной стороны, использует некоторые общие методы и алгоритмы [6]. Важную роль играет знакомство с методами вычислительной геометрии [7]. С другой стороны, эти методы и алгоритмы должны обязательно соответствовать архитектуре компьютера и операционной системе [8]. Разумеется, можно писать программы с помощью Visual Studio, не понимая, как работает процессор, какова роль таких его расширений как MMX, SSE, SSE2 и т.д. [9]. Можно не понимать, как работает виртуальная память, как функционирует ОС. Но, в этом случае, говорить о профессионализме не приходится.

Рассмотрим вкратце некоторые технологии компьютерной графики.

Windows API

Разработка с помощью Windows API — хороший способ изучить компьютерную графику, имеющуюся в любой ОС семействаMS Windows. Слово API – это сокращение от английского Application Programming Interfaces, которое означает большой набор базовых функций для программирования в среде операционных систем семействаMS Windows. Из всего множества функций для компьютерной графики важны, прежде всего, функции для работы с GDI и DC.

GDI (Graphics Device Interface) – это интерфейс для представления различных графических объектов и передачи их драйверам устройств, таких как экран монитора, принтер или графический файл. GDI отвечает за отрисовку линий, прямоугольников, эллипсов, кривых, отображение шрифтов и обработку палитры.

Одно из преимуществ использования GDI вместо прямого доступа к оборудованию — это унификация работы с различными устройствами. Используя GDI, можно одними и теми же функциями рисовать на разных устройствах, таких, как экран или принтер, получая на них практически одинаковые изображения. Эта возможность лежит в центре большинства приложений для ОС Windows, которые не требуют быстрой и качественной графики.

Так, например, GDI не поддерживает сглаживание и антиалиасинг. В нем отсутствуют градиентные цветовые заливки. Также GDI не обеспечивает качественной анимации, поскольку в нём нет возможности синхронизации с кадровым буфером. Эту проблему можно решить, подготавливая самостоятельно кадры в оперативной памяти и затем копируя их на экран. Программы компьютерной графики часто используют такой способ рисования – «за экраном». Этот способ называется «двойной буферизацией». Также, в GDI нет растеризации для отрисовки 3D-графики.

Рисование с помощью Windows API включает в себя важное понятие «контекст устройства» DC (Device Context). Понятие контекста введено для описания того, где будет рисоваться изображение. Всего существуют пять типов контекста устройства — связанный с дисплеем (Display DC), принтером (Printer DC), контекст виртуального устройства в памяти (Memory DC), контекст метафайла (Metafile DC) и специальный вид контекста — информационный (Information DC).

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

 

1.5.2 GDI+

GDI+ — является значительно улучшенной по сравнению с GDI средой для 2D-графики, в которую добавлены такие возможности, как сглаживание линий (antialiasing), использование координат с плавающей точкой, градиентная заливка, внутренняя поддержка таких графических форматов, как JPEG и PNG, преобразования двумерных матриц и т. п.

GDI+ использует ARGB-цвета. То есть, к обычным трем цветам добавляется прозрачность. Эти возможности используются в пользовательском интерфейсе, начиная с ОС Windows XP, а их присутствие в базовом графическом слое облегчает использование систем векторной графики. С помощью GDI+ можно получать вполне качественные графические сцены. Рисование в GDI+ может происходить на том же контексте, что и GDI, поэтому возможно смешанное рисование и эволюционный перевод приложений из GDI в GDI+.

Подсистема GDI+ доступна как набор из, примерно, 600 функций, реализованных в динамической библиотеке gdiplus.dll. Эти функции «обёрнуты» в классы C++. При этом Microsoft не планирует оказывать поддержку для кода, который обращается к библиотечному набору напрямую, а не через классы и методы C++. Для полноценной работы приложений желательно скачать с сайта Microsoft специальный пакет обновления, иначе вполне может оказаться, что на компьютере установлена одна из старых версий библиотеки gdiplus.dll, — это может негативно сказаться на качестве изображений.

Что касается производительности приложений, использующих GDI+, то она оставляет желать лучшего даже по сравнению с GDI. Поэтому современные графические приложения, в которых важна высокая производительность, используют OpenGL или, что еще быстрее, DirectX, — это даёт программистам доступ к большему количеству аппаратных возможностей.

OpenGL

OpenGL (Open Graphic Library) - это библиотека функций, которая стала в настоящее время индустриальным стандартом и поддерживается многими ОС и разнообразными аппаратными платформами, начиная со смартфонов и планшетов, и заканчивая сверхмощными суперкомпьютерами.

Спецификация OpenGL пересматривается Консорциумом ARB (Architecture Review Board), который был сформирован в 1992 году. Консорциум состоит из компаний, заинтересованных в создании широко распространённого и доступного API. Членами ARB с решающим голосом являются производители профессиональных графических аппаратных средств SGI, 3Dlabs, Matrox и Evans & Sutherland (военные приложения), производители потребительских графических аппаратных средств ATI и NVIDIA, производитель процессоров Intel, и изготовители компьютеров и компьютерного оборудования IBM, Apple, Dell, Hewlett-Packard, а также один из лидеров компьютерной игровой индустрии id Software. Компания Microsoft, один из основоположников Консорциума, покинула его в марте 2003 года. Помимо постоянных членов, каждый год приглашается большое количество других компаний, становящихся частью OpenGL ARB в течение одного года.

Такое большое число компаний, вовлеченных в разнообразный круг интересов, позволило OpenGL стать прикладным интерфейсом широкого назначения с большим количеством возможностей. Библиотека OpenGL позволяет довольно просто создавать быстродействующие графические программы, использующие аппаратные возможности 3D-акселераторов. Эта библиотека применялась, например, при создании игры Quake. При создании программ с использованием OpenGL употребляется понятие контекста отображения (англ. Rendering context) подобно применению контекста устройства.

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

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

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

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

Каждый производитель имеет аббревиатуру, которая используется при именовании его новых функций и констант. Например, компания NVIDIA имеет аббревиатуру NV, которая используется при именовании ее новых функций, как, например, glCombinerParameterfvNV(), а также констант, например, GL_NORMAL_MAP_NV. Может случиться так, что определённое расширение могут реализовать несколько производителей. В этом случае используется аббревиатура EXT, например, glDeleteRenderbuffersEXT. В случае же, когда расширение одобряется Консорциумом ARB, оно приобретает аббревиатуру ARB и становится стандартным расширением. Обычно, расширения, одобренные Консорциумом ARB, включаются в одну из последующих спецификаций OpenGL. Список зарегистрированных расширений можно найти в официальной базе расширений.

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

В числе этих функций: переключение между экранными и мировыми координатами, создание текстур, рисование квадратичных поверхностей, составление мозаики прямоугольных примитивов, интерпретация кодов ошибок OpenGL, расширенный набор функций трансформации для установки точек обзора и более простого управления камерой и др. Также содержит функции для рисования дополнительных графических примитивов, таких как сфера, цилиндр, конус, диск и др. Функции библиотеки GLU очень легко найти в тексте программы по префиксу glu в названии функции.

Другие библиотеки, как, например, GLUT ( Utility Toolkit) и SDL (Simple DirectMedia Layer), созданы для реализации возможностей, недоступных в OpenGL. К таким возможностям относятся создание интерфейса пользователя (окна, кнопки, меню и др.), настройка контекста рисования (область рисования, использующаяся OpenGL), обработка сообщений от устройств ввода/вывода (клавиатура, мышь и др.), работа с файлами и кроссплатформенные возможности для работы с мультимедиа.

Обычно, каждый оконный менеджер имеет собственную библиотеку-расширение для реализации вышеописанных возможностей, например, WGL в Windows или GLX в X Window System, однако библиотеки GLUT и SDL являются кросс-платформенными, что облегчает перенос написанных приложений на другие платформы.

Такие библиотеки, как GLEW (The OpenGL Extension Wrangler Library) и GLEE (The OpenGL Easy Extension library) созданы для облегчения работы с расширениями и различными версиями OpenGL. Это особенно актуально для программистов в Windows, так как, заголовочные и библиотечные файлы, поставляемые с Visual Studio, находятся на уровне версии OpenGL 1.1, в то время как уже анонсирована версия OpenGL 4.1.

OpenGL имеет только набор геометрических примитивов (точки, линии, многоугольники) из которых создаются все трёхмерные объекты. Порой подобный уровень детализации не всегда удобен при создании сцен. Поэтому поверх OpenGL были созданы более высокоуровневые библиотеки, такие как Open Inventor и VTK (Visualization Toolkit ). Данные библиотеки позволяют оперировать более сложными трёхмерными объектами, что облегчает и ускоряет создание трёхмерной сцены.

GLM (OpenGL Mathematics) — вспомогательная библиотека, предоставляющая программистам на C++ классы и функции для выполнения математических операций. Библиотека может использоваться при создании 3D-программ с использованием OpenGL.

DirectX

DirectX — это набор API-функций, разработанных для решения задач, первоначально связанных с игровым видеопрограммированием под ОС Windows. Наиболее широко используется при написании компьютерных игр. Сейчас DirectX стал популярен и в других областях разработки программного обеспечения. К примеру, DirectX получил очень широкое распространение в инженерном и математическом ПО. Пакет средств разработки DirectX под Windows бесплатно доступен на сайте Microsoft. Зачастую обновленные версии DirectX поставляются вместе с игровыми приложениями, так как DirectX API обновляется достаточно часто, и версия, включённая в ОС Windows, обычно является далеко не самой новой.

Из всех представленных технологий, DirectX является самой сложной для программиста. Она оформлена в виде COM-объектов и их интерфейсов [10]. DirectX обеспечивает доступ ко всем аппаратным возможностям современных видеоадаптеров (расчеты геометрии и освещения, мультитекстурирование, антиалиасинг, шейдеры и многое другое). В настоящее время в Windows 7 поддерживается самая современная версия DirectX 11. Изображения, созданные с помощью этого мощного пакета, трудно отличить от фотографий.

 

Direct2d

Direct2d —одна из самых современные технологии компьютерной графики, о которых хотелось бы упомянуть, хотя бы коротко. Direct2d — ускоренный аппаратным обеспечением интерфейс программирования приложений(API) для двухмерной графики, который обеспечивает чрезвычайно высокую производительность и высококачественное отображение двухмерной геометрии, растровых изображений и текста. Direct2D API разработан компанией Microsoft для создания приложений под управлением операционной системы Windows и для взаимодействия с существующим кодом который использует GDI, GDI+ или DirectX.

В первую очередь Direct2D, функционирующий под новейшей ОС Windows 7, предназначен для разработчиков:

– крупномасштабных, предпринимательских приложений, в частности в области промышленной автоматизации;

– создающих наборы элементов управления и библиотек для программистов верхнего уровня;

– требующих высокопроизводительной и качественной прорисовки двухмерной графики;

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

Рисование в Direct2D можно совместить с рисованием GDI/GDI+. Компания Microsoft сообщила, что поддержка Direct2D будет включена в SP1 (Service Pack 1) для Visual Studio 10, выход которого планируется летом 2011 года.

CUDA

CUDA (Compute Unified Device Architecture) — программно-аппаратная архитектура, позволяющая производить вычисления с использованием графических процессоров NVIDIA, поддерживающих технологию GPGPU (General-purpose graphics processing units — «GPU общего назначения») — техника использования графического процессора видеокарты для общих вычислений, которые обычно проводит центральный процессор.. Архитектура CUDA впервые появились с выходом чипа NVIDIA восьмого поколения — G80 и присутствует во всех последующих сериях графических чипов соответствующего уровня.

CUDA SDK (CUDA Software Development Kit) позволяет программистам реализовывать на специальном упрощенном диалекте языка программирования Си алгоритмы, выполнимые на графических процессорах NVIDIA и включать специальные функции в текст программы на Cи. CUDA даёт разработчику возможность по своему усмотрению организовывать доступ к набору инструкций графического ускорителя и управлять его памятью, организовывать на нём сложные параллельные вычисления.

Технология CUDA использует grid-модель памяти, кластерное моделирование потоков и SIMD (Single Instruction, Multiple Data) — одиночный поток команд, множественный поток данных. Это реализует принцип компьютерных вычислений, позволяющий обеспечить параллелизм на уровне данных. Применяется в основном для высокопроизводительных графических вычислений и разработок NVIDIA-совместимого графического API. Написание курсовых работ по этим двум направлениям является очень актуальной темой, имеющей большую практическую ценность.

По состоянию на декабрь 2009 года, программная модель CUDA преподавалась в 269 университетах по всему миру. В России обучающие курсы по CUDA читаются в Московском, Санкт-Петербургском, Казанском, Новосибирском и Пермском государственных университетах, Международном университете природы общества и человека «Дубна», Объединённом институте ядерных исследований, Московском институте электронной техники и т.д.

Кроме того, в декабре 2009 года было объявлено о начале работы первого в России научно-образовательного центра «Параллельные вычисления», расположенного в городе Дубна, в задачи которого входят обучение и консультации по решению сложных вычислительных задач на GPU.


Поделиться:



Последнее изменение этой страницы: 2017-04-12; Просмотров: 298; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.028 с.)
Главная | Случайная страница | Обратная связь