Здравствуйте, уважаемая комиссия. Меня зовут Попов Владимир



жүктеу 31.26 Kb.
Дата30.01.2019
өлшемі31.26 Kb.
түріДоклад

Здравствуйте, уважаемая комиссия. Меня зовут Попов Владимир.

Слайд 1


Разрешите представить мой про­ект: мультиплатформенная реали­за­ция компьютерной графики.

Целью проекта было создание набора библиотек, необходимых для компиляции под различные операционные си­с­темы: с поддержкой различных компиля­то­ров.

Версия для DOS предполагает созда­ние собственного конвейера ренде­ринга.

Для создания приложения, работа­ющего под DOS, необходимо было эму­ли­ровать часть функций Windows API.

Также было необходимо эмули­ро­вать часть интерфейса Micro­soft Direct3D.

Не менее важная задача — создать демонстрационную программу.

СЛАЙД 2


Рассмотрим архитектуру про­грам­мы. Программа-приложение опирается на ре­сурсы библиотеки. Если прило­жение ком­пили­руется под Windows, то используется Direct3D. Если программа компилируется под DOS, то используется эмуляция Direct3D — конвейера рен­де­ринга и его API. Кон­вейер опирается на графические би­бли­о­теки, которые зависят от компи­лятора.

Здесь представлена СТРУКТУРА ПРО­ЕК­ТА. Файлы рас­сор­ти­рованы по зависимости от платформы и компилятора. Низко­уро­вневая гра­фи­ка в GCC использует библи­отеку GRX, а в BORLAND пришлось написать собственную, под­дер­жи­ва­ю­щую режи­мы SVGA.


СЛАЙД 3


Ядром программы является конвейер рендеринга. Он разделен на несколько этапов. Для сокрытия пересе­кающихся по­верхностей используется ал­горитм z-бу­фера, основанный на ана­ли­зе z-коор­динат рисуемых пикселей.

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

Для эмуляции интерфейса Direct3D были создано несколько классов, анало­гичных классам Direct3D.

Они предназначены для безопасного создания и удаления объектов, обеспе­че­ния рендеринга, хране­ния вершин и их нормалей.


СЛАЙД 4


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

Для достижения реалистичного осве­щения создается палитра цветов. Ис­пользуется ре­жим с 256 цвета­ми.

Для вычисления освещения треуголь­ника используется модель Ламберта.

СЛАЙД 5


Итак, был создан набор пере­но­си­мых библиотек, позво­ля­ющий ис­поль­зовать эле­менты технологии DirectX.

Был создан конвейер рендеринга.

Было эмулировано некоторое под­мно­жество функций Windows API И Microsoft Direct3D.

Были созданы версии библиотеки под 2 платформы и 3 компилятора.

Была создана тестовая программа.
Теперь разрешите перейти к демон­стра­ции.
Вначале рассмотрим DOS версию про­граммы, скомпилированную под GCC.

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

С помощью кнопок мы можем пере­ключать изображения объектов. Напри­мер, нажмем кнопку 2. Изображение сме­нилось на изображение цилин­дра. Нажмем кла­вишу 6 — изображение сме­няется на изо­бражение его прово­лоч­ной модели. Можно посмо­треть и дру­гие объекты.

Теперь запустим Windows-версию, использующую возможности аппаратного ускорения DirectX. Конечно, скорость рабо­ты программы увеличивается, однако, при отсутствии аппаратного уско­ре­ния и на одной и той же машине мы полу­чали даже большую скорость ра­боты у DOS32-прило­жения.



Выйти из программы можно при нажа­тии на клавишу 5 или клавишу Esc.

Спасибо за внимание. Если есть вопросы, я готов на них ответить.





Достарыңызбен бөлісу:


©kzref.org 2017
әкімшілігінің қараңыз

    Басты бет