Заголовок слайда отсутствует - ded32.net.ru

advertisement
МУЛЬТИПЛАТФОРМЕННАЯ РЕАЛИЗАЦИЯ
КОМПЬЮТЕРНОЙ ТРЕХМЕРНОЙ ГРАФИКИ
Попов Владимир, группа П-92
Цель проекта
Создание набора библиотек 3D графики
для работы под различные платформы
(DOS16, DOS32 и Windows)
Задачи
 Планирование архитектуры для единой работы
с несколькими компиляторами
(Borland C++, GNU GCC, MS Visual C++)
 Создание конвейера рендеринга примитивов
 Эмуляция подмножества функций Windows API
 Эмуляция подмножества интерфейса
Microsoft Direct3D 8.0
 Создание демонстрационной программы
АРХИТЕКТУРА БИБЛИОТЕКИ 3D ГРАФИКИ
Программа-приложение
Подмножество интерфейса
Direct3D
Конвейер рендеринга
Microsoft
Direct3D 8.0
Низкоуровневая
графическая
библиотека
Библиотека GrX
Windows-версия
(Visual C++)
DOS16-версия
(Borland C++)
DOS-версия
(GNU GCC)
КОНВЕЙЕР РЕНДЕРИНГА
Освещение
(модель
Ламберта)
Матричная
Трансформация
y
Скан-конверсия
примитивов
Удаление
невидимых
элементов
Пиксели
x
Алгоритм
z-буфера
Буфер
цвета
z
Объекты
Копирование из XMM
Экран
монитора
ДИАГРАММА НАСЛЕДОВАНИЯ КЛАССОВ
Direct3DCreate8()
IUnknown
IDirect3D8
CreateDevice()
IDirect3DDevice8
CreateVertexBuffer()
Отношение управления
Отношение наследования
IDirect3DVertexBuffer8
АЛГОРИТМ СКАН-КОНВЕРСИИ
Скан-строки
Общие точки
ТРУДНОСТИ И ИХ РЕШЕНИЯ
ФОРМИРОВАНИЕ ЦИЛИНДРА
СОЗДАНИЕ ЦВЕТОВЫХ ПАЛИТР
y
0
a
h
Цветная (3-3-2) палитра
255
x
x1 y1 z1
z
3
0
6
8
x2 y2 z2
Красный
x1 = x2 = cos a
y1 = h / 2
y2 = -h / 2
z1 = z2 = sin a
0
Зеленый
Синий
Черно-белая палитра
63
ПРИМЕР РАБОТЫ ПРОГРАММЫ
ВЫВОДЫ
 Были созданы версии под Win32, DOS16 и DOS32
для компиляторов Borland C++ 3.1, GNU GCC
и MS Visual C++ 6.0
 Были эмулировано некоторое подмножество функций
Windows API
 Было эмулировано некоторое подмножество
интерфейса Microsoft Direct3D 8.0
 Был создан конвейер рендеринга
 Была создана платформно-независимая
демонстрационная программа
Download