Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика Домашнее задание 1.doc
Скачиваний:
2
Добавлен:
19.11.2019
Размер:
138.75 Кб
Скачать

2.4. Компонент Graphics

Графическая часть библиотеки Microsoft.Xna.Framework.Graphics основана на принципе работы библиотеки DirectX. Подход в реализации программ при помощи графического конвейера XNA Framework полностью исключает работу с фиксированным конвейером, присущим всем программам с использованием DirectX. Как вы помните, DirectX до последней девятой и десятой версии имел два конвейера: фиксированный и программируемый. Второй конвейер характерен тем, что все работы с вершинами объектов, пикселями текстур, материалом, светом, матрицами происходил посредством шейдеров. Тогда как в фиксированном конвейере можно было и не использовать шейдеры.

Рис. 2.3. Работа Content Pipeline в XNA Framework

В XNA Framework используются только программируемый конвейер и шейдеры. Все операции со светом, материалом, матрицами, текстурами и т. д. необходимо производить только через шейдеры. В связи с этим в XNA Framework предусмотрены два разных класса – BasicEffect и Effect.

Первый класс BasicEffect позволяет не писать и не использовать код шейдера или, в крайнем случае, не писать супермощные шейдерные программы. Тогда все вышеперечисленные операции будут выполняться в простом штатном режиме, а система сама будет обрабатывать данные с внутренними значениями по умолчанию. Такой подход позволяет создавать игры не только профессиональным, но и начинающим программистам.

Второй класс Effect представляет полный спектр возможностей по работе с шейдерами всех трех версий. По умолчанию применяется вторая и выше версия шейдеров, при желании можно использовать и первую версию шейдеров, но только для компьютерных систем. Приставка Xbox 360 работает лишь со второй и выше версиями шейдеров.

3. Матрицы

Программирование трехмерной графики невозможно себе представить без использования матриц. Матрица – это двухмерный массив данных, заполненный определенными значениями. Матрицы позволяют легко и быстро производить любые манипуляции с вершинами объектов в пространстве. С помощью матриц можно связать несколько однородных операций над вершинами, что в результате позволяет выполнить колоссальные по объему математические вычисления за небольшой промежуток времени. Более того, матрицы можно использовать и в описании координатных систем для переноса, масштабирования, вращения и трансформации объектов в пространстве.

Размерность матрицы может быть любой, но в компьютерной графике типичной размерностью является матрица 4 × 4, где имеются четыре строки и четыре столбца.

(1)

Если вам необходимо определить положение элемента внутри матрицы, то нужно сначала указать, в какой именно строке находится этот элемент, а затем указать, в каком столбце он располагается. В итоге получается, что искомый элемент матрицы с размерностью m × n находится в строке m столбца n.

3.1. Сложение и вычитание матриц

Все математические операции над матрицами основаны на знаниях, которые мы изучали в школе. Единственным условием в сложениях и вычитаниях матриц является их одинаковая размерность. Чтобы сложить между собой две матрицы, необходимо просто сложить поэлементно обе матрицы между собой, а результат записать в отдельную матрицу:

(2)

Вычитание двух матриц происходит по той же схеме:

(3)