Сайт по программированию на C++
и информационным технологиям
3D программирование
Вопросы к экзамену
-
Структура программы для вывода 3D-графики. 3D-программа как конечный автомат.
-
Конвейер визуализации. Операции над вершинами и пикселями.
-
Инициализация среды DirectX, создание объекта, представляющего устройство вывода, задание параметров вывода.
-
Структура оконного приложения в ОС Windows. Создание окна и организация обработки оконных сообщений.
-
Основные графические примитивы и операции по их рисованию.
-
Буферы вершин. Формат данных о вершине. Вывод графических примитивов из буферов вершин.
-
Буфер индексов. Совместное использование буфера вершин и буфера индексов.
-
Пространственные сетки. Геометрия сетки. Подгруппы и буфер атрибутов пространственных сеток. Рисование пространственных сеток.
-
Оптимизация пространственных сеток. Оптимизация по атрибутам. Использование данных о смежности граней пространственных сеток.
-
Создание пространственных сеток программным способом. Загрузка сеток из файлов. Клонирование пространственных сеток.
-
Векторы в трёхмерном пространстве. Представление векторов в библиотеке DirectX. Стандартная позиция векторов. Нулевой вектор и базовые орты.
-
Равенство векторов. Вычисление модуля вектора. Нормализация вектора. Сложение и вычитание векторов. Умножение вектора на скаляр.
-
Скалярное произведение векторов и его геометрическая интерпретация.
-
Векторное произведение векторов.
-
Матрицы. Равенство матриц. Умножение матрицы на скаляр. Сложение и вычитание матриц.
-
Правило умножения матриц.
-
Единичная матрица. Инвертирование матриц. Транспонирование матриц.
-
Матрицы в библиотеке DirectX: класс D3DXMATRIX.
-
Использование матриц 4x4 для представления преобразований координат. Использование вектора-строки 1x4 для представления точек и векторов. Векторы 1x4 в однородном пространстве. Отображение векторов из однородного пространства в трехмерное.
-
Матрица параллельного переноса.
-
Матрица вращения относительно осей X, Y, Z.
-
Матрица масштабирования.
-
Комбинирование преобразований координат. Специальные функции преобразования точек и векторов, заданных объектом класса D3DXVECTOR3 библиотеки DirectX.
-
Описание плоскостей в трёхмерном пространстве. Вектор нормали. Уравнение плоскости.
-
Представление плоскостей в библиотеке DirectX: класс D3DXPLANE. Определение взаимного расположения точки и плоскости.
-
Способы задания плоскостей в трёхмерном пространстве. Нормализация плоскостей.
-
Определение точки плоскости, ближайшей к заданной. Перпендикуляр к плоскости в заданной точке.
-
Математическое представление луча в трёхмерном пространстве.
-
Определение пересечения луча и плоскости в трёхмерном пространстве.
-
Виртуальная камера. Окно проекции и плоскости отсечения.
-
Локальное пространство модели. Размещение модели в мировом пространстве.
-
Преобразование из мирового пространства в пространство вида.
-
Преобразование проекции: проецирование из пространства вида в пространство проекции.
-
Преобразование порта просмотра.
-
Проектирование класса виртуальной камеры. Движение камеры в пространстве.
-
Интерактивный выбор объектов в программах трёхмерной графики. Пересечение луча и ограничивающей сферы.
-
Множественный выбор объектов в программах трёхмерной графики.
-
Управление цветом объектов в программах трёхмерной графики. Типы освещения.
-
Моделирование освещения сцены в программах трёхмерной графики. Задание отражающих свойств материала и определение нормалей к поверхности.
-
Моделирование источников света при визуализации трёхмерных сцен.
-
Использование шрифтов и вывод текста.
-
Связь текстур с фрагментами трёхмерных объектов.
-
Создание текстур и разрешение текстурирования.
-
Применение фильтров для уменьшения искажений при наложении текстур.
-
Использование текстур с различной степенью детализации.
-
Режимы адресации текстур.
-
Применение шейдеров в конвейере визуализации.
-
Основы мультитекстурирования.
-
Входные и выходные данные пиксельного шейдера.
-
Использование эффекта смешивания пикселей.
Файлы поддержки (.h, .lib): http://yadi.sk/d/f6b9QLw19LS26
Лабораторная работа №1. Настройка среды разработки. Создание примера 3D-программы.
http://yadi.sk/d/dkjLRrwU9LP5p
----------------------------------------------------------------------
Лабораторная работа №2. Рисование графических примитивов. Вычисление координат вершин.
http://yadi.sk/d/P18ybnwc9LPgs
----------------------------------------------------------------------
Лабораторная работа №3. Построение полигональных моделей.
http://yadi.sk/d/KK57MrfI9LQ9f
----------------------------------------------------------------------
Лабораторная работа №4. Пространственные сетки.
http://yadi.sk/d/MZZMjbX99ijY3
----------------------------------------------------------------------
Лабораторная работа №5. Модельно-видовые преобразования, преобразования проецирования, преобразование окна просмотра.
http://yadi.sk/d/0yk4W7xiA7qLS
----------------------------------------------------------------------
Лабораторная работа №6. Интерактивное управление сценой.
http://yadi.sk/d/nyDrOholAN93w
----------------------------------------------------------------------
Лабораторная работа №7. Выбор объектов с помощью мыши.
http://yadi.sk/d/k-Vy1jn_BHz6N
----------------------------------------------------------------------
Лабораторная работа №8. Массивы обратной связи OpenGL.
http://yadi.sk/d/BZaxymRmBY8mZ
----------------------------------------------------------------------
Лабораторная работа №9. Множественный выбор.
http://yadi.sk/d/aTI5sh64BY8nE
----------------------------------------------------------------------
Лабораторная работа №10. Цвет и освещение.
http://yadi.sk/d/vqKYJyFDBY8p4
----------------------------------------------------------------------
Лабораторная работа №11. Битовые образы OpenGL.
http://yadi.sk/d/TKYmhkteBY8pW
----------------------------------------------------------------------
Лабораторная работа №12. Использование шрифтов и вывод текста (обновлено 15.11.2014).
https://yadi.sk/i/ODWNTPKkcita9
----------------------------------------------------------------------
Лабораторная работа №13. Использование текстур
https://yadi.sk/d/8D78z3v9dBfEN
----------------------------------------------------------------------
Лабораторная работа №14. Мультитекстурирование
https://yadi.sk/d/y0aR8CNYdALTf
----------------------------------------------------------------------
Лабораторная работа №15. Разработка 3D-симуляторов
https://yadi.sk/d/8tuc_QGrdALX7
----------------------------------------------------------------------
Лабораторная работа №16. Использование спецэффектов освещения и тумана.
http://yadi.sk/d/xXsZYSHFEVjxG
----------------------------------------------------------------------
Лабораторная работа №17. Использование смешивания пикселей и сглаживания геометрических примитивов.
http://yadi.sk/d/jWzk_sYXEVkDW
----------------------------------------------------------------------
Лабораторная работа №18. Шейдеры (обновлено 24.12.2014).
https://yadi.sk/d/WpbfkYondbjgt
----------------------------------------------------------------------