- •Урок 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 вектором, или просто нормализованным вектором. Такой вектор имеет длину равную единице.
Единичные вектора понадобятся довольно часто. При умножении двух нормализованных векторов мы получаем непосредственно синус или косинус угла между ними, соответственно осуществив операцию арксинус или или арккосинус, мы можем найти угол между векторами.
Также в DirectX есть такое понятие как нормали к поверхности. Нормалью к поверхности называется единичный вектор, исходящий из определенной вершины поверхности и перпендикулярный этой поверхности. Если поверхность не плоская а вогнутая или выпуклая, то нормали будут подобны в первом случае ежику из векторов, расходящихся в разные стороны, а во втором случае, нормали (если продолжить эти вектора в бесконечность) будут сходится в некую фокусную точку. В любом случае, каждая нормаль будет по возможности перпендикулярна части поверхности, лежащей в непосредственной близости от вершины из которой исходит нормаль.
Символические обозначения векторов
В
данных уроках мы иногда будем применять
следующие обозначения для векторов.
Обычный вектор мы будем обозначать
символом стрелки:
Нормализованный
вектор, то есть вектор, длинна которого
приведена к единице, мы будем обозначать
символом, с двумя треугольными
стрелками:
Такие
обозначения потребуется для сокращенного
обозначения векторов при использовании
их в формулах.
Преобразования матриц и операции с ними
Матрицей называется объект, состоящий из наборов чисел, сгруппированных в столбцы и строки. Матрицу можно рассматривать как обычное число, ведь одной переменной можно присвоить целую матрицу:
Математические операции с матрицами
Так как теперь матрица является своего рода числом, то с ним можно осуществлять различные математические опреции, а именно:
Сложение матриц
Вычитание матриц
Умножение матриц
Деление матрицы на число
Математически это выглядит следующим образом:
При сложении и вычитании все компоненты матрицы просто складываются и вычитаются, умножение матриц выполняется по правилам, установленным для умножения матриц. Результатом умножения двух матриц является третья матрица.
Важным свойством умножения матриц является то, что операция умножения матриц некомутативна, то есть всегда должен соблюдаться порядок умножения матриц, при этом имеет место неравенство:
Соответственно, такое же неравенство выполняется для любого количества умножений матриц.
Единичная матрица
В матрицах особую роль играет еденичная матрица. Такая матрица имеет следующий вид:
Если умножить какую-то матрицу на единичную, то исходная матрица не изменится. Единичная матрица выполняет такую-жероль как и единица в обычных числах. Единичная матрица является нормализованной, то есть имеет модуль равный единице.
Модуль матрицы
Для матрицы, так же как и для вектора определена операция вычисления модуля. В какой-то мере матрицу можно представлять как псевдо-вектор в некотором четырехмерном пространстве. Хотя представления матрицы как вектор не для всех случаев верны, — так как в одних случаях матрица может соответствовать такому представлению, а в других – нет, — но можно вычислить длину такого вектора, в таком случае модуль матрицы будет представлять из себя длину псевдо-вектора, находящегося в четырехмерном пространстве.
Модуль матрицы обозначается также, как и модуль вектора.
