- •Урок 1. Простейшее приложение DirectX11
- •Инициализация DirectX:InitDevice
- •Отображение сцены:Render
- •Цикл обработки сообщений
- •Очистка объектов:CleanupDevice
- •Цикл обработки сообщений
- •Обзор приложения
- •Дополнение к уроку. Настройка среды разработки
- •Заключение
- •Урок 2. Вывод 3d геометрии на экран в DirectX11
- •Обзор архитектуры для вывода геометрии в DirectX11
- •Инициализация геометрии: InitGeometry
- •Инициализация геометрии – создание вершин: InitGeometry
- •Создание буфера глубины: zBuffer
- •Отображение геометрии: Render
- •Обзор приложения
- •Обзор шейдера для нашего приложения
- •Заключение
- •Урок 3. Математические основы Direct3d
- •Знакомство с базовыми 3d представлениями данных
- •Норма вектора
- •Нормализованный вектор
- •Символические обозначения векторов
- •Преобразования матриц и операции с ними
- •Математические операции с матрицами
- •Единичная матрица
- •Модуль матрицы
- •Нормализованная матрица
- •Матрицы трансформаций
- •Матрицы, используемые в DirectX
- •Заключение
- •Урок 4. Установка матриц трансформаций и камеры в DirectX11
- •Урок 5. Процедурная генерация моделей для DirectX11
- •Процедурная генерация
- •Определение формата исходных данных
- •Обзор приложения
- •Заключение
- •Урок 6. Установка источников освещения DirectX11
- •Урок 7. Текстуры в Direct3d11
- •Урок 8. Загрузка мешей в DirectX11
- •Урок 9. Шейдеры в Direct3d11
- •Урок 10. Различные шейдеры DirectX11
- •Шейдеры
- •Шейдер для эффекта bump
- •Шейдер для эффекта металлической поверхности
- •Использование нескольких шейдеров в приложении
- •Обзор приложения
- •Заключение
Нормализованная матрица
Матрица может быть нормализована на 1, в таких случаях она будет называться нормализованной и её модуль будет равен 1.
Все матрицы вращения являются нормализованными матрицами. При этом сколько вращений бы не происходило, то есть сколько бы таких матриц не перемножалось, их модуль не изменится. Так что последовательность нескльких вращений можно комбинировать в одну матрицу:
Матрицы трансформаций
Трансформации бывают трех видов это:
Вращение
Масштабирование
Перемещение
Матрицы трансформаций пригодятся для помещения объекта в нужное место 3d пространства. Причем последовательность таких операций следующая: Сначала мы масштабируем объект, затем поворачиваем объект на нужный угол, потом перемещаем. Если последовательность будет другая, то результат будет непредсказуем, и где объект окажется в 3d пространстве, вы сможете определить сами, если, конечно найдете этот объект. Матрицы вращения бывают для нескольких осей. В основном нужна матрица для вращения вокруг вертикальной оси, она такая:
Матрица мастшабирования может быть симметричной и несимметричной. Для второго случая матрица выглядит так:
Несимметричное масштабирование означает, что мы вытягиваем объект в одну сторону больше чем в другие. Если вы хотите пропорционально масштабировать объект, то сделайте все компоненты матрицы x, y, z равными друг другу. Матрица для перемещения выглядит так:
Матрицы, используемые в DirectX
Для того, чтобы осуществить все необходимые преобразования с объектом, в DirectX существуют три матрицы. Первая из них располагает в нужном месте 3d пространства объект, остальные две используются для правильного размещения объекта с учетом расположения камеры и перспективы. Итак существуют три матрицы:
Мировая матрица
Матрица камеры
Матрица проекций
В системе DirectX для этих матриц сделаны следующие обозначения: matrix World, View, Projection. Мировая матрица соответственно равна трем матрицам трансформаций, рассмотренным в предыдущем разделе, умноженным друг на друга.
На рисунке представлено влияение матрицы трансформаций: объект был масштабирован и перемещен из начала координат в нужную точку 3d пространства.
Влияение матрицы камеры: все объекты были повернуты таким образом, как будто на них осущствляется взгляд из определенной точки, находящейся в том месте где находится камера.
Влияние матрицы проекций: объекты располагаются и отображается с нужной перспективой.
Заключение
В данном уроке мы произвели небольшой экскурс в математику. Для работы в DirectX11 без всего этого просто не обойтись. Вы узнали, что кроме обычных чисел существуют также числа в виде векторов и матриц. В математике существует специальный раздел, посвященный векторному и тензорному исчислению, соответственно вы можете найти всю необходимую дополнительную информацию. В следующем уроке мы непосредственно применим полученные навыки и установим матрицы для трансформаций, для камеры и проективную матрицу, результатом чего будет являтся то, что мы будем иметь возможность рассматривать сцену с различных точек трехмерного пространства.
